summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp1
-rw-r--r--ProtoLibraries.bp6
-rw-r--r--apct-tests/perftests/core/src/android/graphics/perftests/TypefaceSerializationPerfTest.java4
-rw-r--r--apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java14
-rw-r--r--apex/jobscheduler/framework/java/android/app/AlarmManager.java52
-rw-r--r--apex/jobscheduler/framework/java/android/os/PowerExemptionManager.java3
-rw-r--r--apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java3
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java6
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java29
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java23
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java30
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java6
-rw-r--r--apex/jobscheduler/service/jni/Android.bp28
-rw-r--r--boot/Android.bp16
-rw-r--r--boot/hiddenapi/hiddenapi-force-blocked.txt40
-rw-r--r--boot/hiddenapi/hiddenapi-max-target-o.txt18989
-rw-r--r--boot/hiddenapi/hiddenapi-unsupported-packages.txt28
-rw-r--r--cmds/uiautomator/library/Android.bp2
-rw-r--r--core/api/current.txt110
-rw-r--r--core/api/system-current.txt71
-rw-r--r--core/api/test-current.txt33
-rw-r--r--core/java/Android.bp1
-rw-r--r--core/java/android/annotation/RequiresNoPermission.java36
-rw-r--r--core/java/android/app/Activity.java4
-rw-r--r--core/java/android/app/ActivityThread.java39
-rw-r--r--core/java/android/app/IActivityClientController.aidl6
-rw-r--r--core/java/android/app/IApplicationThread.aidl2
-rw-r--r--core/java/android/app/Notification.java3
-rw-r--r--core/java/android/app/timedetector/TimeDetector.java12
-rw-r--r--core/java/android/app/usage/UsageStats.java46
-rw-r--r--core/java/android/bluetooth/BluetoothA2dp.java6
-rwxr-xr-xcore/java/android/bluetooth/BluetoothA2dpSink.java10
-rw-r--r--core/java/android/bluetooth/BluetoothAdapter.java68
-rw-r--r--core/java/android/bluetooth/BluetoothAvrcpController.java12
-rw-r--r--core/java/android/bluetooth/BluetoothGatt.java23
-rw-r--r--core/java/android/bluetooth/BluetoothGattServer.java12
-rw-r--r--core/java/android/bluetooth/BluetoothHeadset.java16
-rw-r--r--core/java/android/bluetooth/BluetoothHeadsetClient.java32
-rw-r--r--core/java/android/bluetooth/BluetoothHearingAid.java13
-rw-r--r--core/java/android/bluetooth/BluetoothHidDevice.java13
-rw-r--r--core/java/android/bluetooth/BluetoothHidHost.java3
-rw-r--r--core/java/android/bluetooth/BluetoothInputStream.java3
-rw-r--r--core/java/android/bluetooth/BluetoothLeAudio.java11
-rw-r--r--core/java/android/bluetooth/BluetoothManager.java7
-rw-r--r--core/java/android/bluetooth/BluetoothMap.java14
-rw-r--r--core/java/android/bluetooth/BluetoothMapClient.java17
-rw-r--r--core/java/android/bluetooth/BluetoothOutputStream.java3
-rw-r--r--core/java/android/bluetooth/BluetoothPan.java6
-rw-r--r--core/java/android/bluetooth/BluetoothPbap.java6
-rw-r--r--core/java/android/bluetooth/BluetoothPbapClient.java4
-rw-r--r--core/java/android/bluetooth/BluetoothProfile.java3
-rw-r--r--core/java/android/bluetooth/BluetoothProfileConnector.java2
-rw-r--r--core/java/android/bluetooth/BluetoothSap.java13
-rw-r--r--core/java/android/bluetooth/BluetoothServerSocket.java2
-rw-r--r--core/java/android/bluetooth/BluetoothSocket.java13
-rw-r--r--core/java/android/bluetooth/BluetoothUuid.java2
-rw-r--r--core/java/android/bluetooth/le/AdvertisingSet.java3
-rw-r--r--core/java/android/bluetooth/le/BluetoothLeAdvertiser.java53
-rw-r--r--core/java/android/bluetooth/le/BluetoothLeScanner.java11
-rw-r--r--core/java/android/bluetooth/le/PeriodicAdvertisingManager.java2
-rw-r--r--core/java/android/bluetooth/le/ScanFilter.java1
-rw-r--r--core/java/android/bluetooth/le/ScanRecord.java2
-rw-r--r--core/java/android/bluetooth/le/ScanSettings.java29
-rw-r--r--core/java/android/bluetooth/le/TruncatedFilter.java2
-rw-r--r--core/java/android/content/Intent.java8
-rw-r--r--core/java/android/content/pm/ActivityInfo.java43
-rw-r--r--core/java/android/content/pm/ApplicationInfo.java1
-rw-r--r--core/java/android/content/pm/DataLoaderParams.java2
-rw-r--r--core/java/android/content/pm/InstallationFile.java6
-rw-r--r--core/java/android/content/pm/PackageInstaller.java37
-rw-r--r--core/java/android/content/pm/parsing/component/ParsedAttribution.java8
-rw-r--r--core/java/android/hardware/biometrics/CryptoObject.java2
-rw-r--r--core/java/android/hardware/hdmi/HdmiAudioSystemClient.java4
-rw-r--r--core/java/android/hardware/hdmi/HdmiClient.java1
-rw-r--r--core/java/android/hardware/hdmi/HdmiControlManager.java1
-rw-r--r--core/java/android/hardware/hdmi/HdmiUtils.java18
-rw-r--r--core/java/android/inputmethodservice/InputMethodService.java5
-rw-r--r--core/java/android/net/NetworkPolicyManager.java3
-rw-r--r--core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java2
-rw-r--r--core/java/android/os/BatteryStats.java10
-rw-r--r--core/java/android/os/CountDownTimer.java21
-rw-r--r--core/java/android/os/Debug.java2
-rw-r--r--core/java/android/os/Parcelable.java39
-rw-r--r--core/java/android/os/incremental/V4Signature.java16
-rw-r--r--core/java/android/os/storage/StorageVolume.java79
-rw-r--r--core/java/android/service/dataloader/DataLoaderService.java11
-rw-r--r--core/java/android/service/displayhash/DisplayHashParams.java56
-rw-r--r--core/java/android/service/displayhash/DisplayHashingService.java (renamed from core/java/android/service/displayhash/DisplayHasherService.java)35
-rw-r--r--core/java/android/service/displayhash/IDisplayHashingService.aidl (renamed from core/java/android/service/displayhash/IDisplayHasherService.aidl)2
-rw-r--r--core/java/android/service/rotationresolver/RotationResolutionRequest.java28
-rw-r--r--core/java/android/service/textservice/SpellCheckerService.java3
-rw-r--r--core/java/android/service/translation/TranslationService.java64
-rw-r--r--core/java/android/service/voice/AlwaysOnHotwordDetector.java30
-rw-r--r--core/java/android/service/voice/HotwordDetectionService.java25
-rw-r--r--core/java/android/service/voice/IHotwordDetectionService.aidl12
-rw-r--r--core/java/android/speech/RecognitionListener.java3
-rw-r--r--core/java/android/text/FontConfig.java21
-rw-r--r--core/java/android/text/method/TranslationTransformationMethod.java13
-rw-r--r--core/java/android/view/InsetsController.java18
-rw-r--r--core/java/android/view/SurfaceControl.java37
-rw-r--r--core/java/android/view/View.java6
-rw-r--r--core/java/android/view/ViewRootImpl.java11
-rw-r--r--core/java/android/view/contentcapture/ContentCaptureEvent.java7
-rw-r--r--core/java/android/view/displayhash/DisplayHash.java5
-rw-r--r--core/java/android/view/displayhash/DisplayHashManager.java7
-rw-r--r--core/java/android/view/displayhash/VerifiedDisplayHash.java18
-rw-r--r--core/java/android/view/translation/TranslationResponse.java4
-rw-r--r--core/java/android/view/translation/UiTranslationController.java26
-rw-r--r--core/java/android/view/translation/UiTranslationManager.java30
-rw-r--r--core/java/android/view/translation/ViewTranslationCallback.java12
-rw-r--r--core/java/android/widget/RemoteViews.java166
-rw-r--r--core/java/android/widget/TextView.java10
-rw-r--r--core/java/android/widget/TextViewTranslationCallback.java67
-rw-r--r--core/java/android/window/StartingWindowInfo.java8
-rw-r--r--core/java/com/android/internal/app/IAppOpsCallback.aidl2
-rw-r--r--core/java/com/android/internal/app/IAppOpsService.aidl2
-rw-r--r--core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl7
-rw-r--r--core/java/com/android/internal/infra/AbstractRemoteService.java20
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java8
-rw-r--r--core/java/com/android/internal/os/BatteryUsageStatsProvider.java41
-rw-r--r--core/java/com/android/internal/os/BinderLatencyObserver.java5
-rw-r--r--core/java/com/android/internal/os/ZygoteConnection.java31
-rw-r--r--core/java/com/android/internal/util/LatencyTracker.java14
-rw-r--r--core/java/com/android/internal/view/RecyclerViewCaptureHelper.java8
-rw-r--r--core/jni/android_view_SurfaceControl.cpp10
-rw-r--r--core/proto/android/internal/binder_latency.proto18
-rw-r--r--core/res/AndroidManifest.xml17
-rw-r--r--core/res/res/drawable/btn_borderless_material.xml3
-rw-r--r--core/res/res/drawable/btn_colored_material.xml3
-rw-r--r--core/res/res/drawable/btn_default_material.xml3
-rw-r--r--core/res/res/drawable/btn_toggle_material.xml3
-rw-r--r--core/res/res/values-af/strings.xml3
-rw-r--r--core/res/res/values-ar/strings.xml2
-rw-r--r--core/res/res/values-as/strings.xml24
-rw-r--r--core/res/res/values-az/strings.xml7
-rw-r--r--core/res/res/values-b+sr+Latn/strings.xml3
-rw-r--r--core/res/res/values-bg/strings.xml3
-rw-r--r--core/res/res/values-bn/strings.xml24
-rw-r--r--core/res/res/values-bs/strings.xml3
-rw-r--r--core/res/res/values-ca/strings.xml3
-rw-r--r--core/res/res/values-cs/strings.xml10
-rw-r--r--core/res/res/values-en-rAU/strings.xml3
-rw-r--r--core/res/res/values-en-rCA/strings.xml3
-rw-r--r--core/res/res/values-en-rGB/strings.xml3
-rw-r--r--core/res/res/values-en-rIN/strings.xml3
-rw-r--r--core/res/res/values-es-rUS/strings.xml3
-rw-r--r--core/res/res/values-es/strings.xml52
-rw-r--r--core/res/res/values-et/strings.xml3
-rw-r--r--core/res/res/values-eu/strings.xml4
-rw-r--r--core/res/res/values-fr-rCA/strings.xml3
-rw-r--r--core/res/res/values-fr/strings.xml24
-rw-r--r--core/res/res/values-gu/strings.xml24
-rw-r--r--core/res/res/values-hi/strings.xml13
-rw-r--r--core/res/res/values-hr/strings.xml9
-rw-r--r--core/res/res/values-hy/strings.xml2
-rw-r--r--core/res/res/values-it/strings.xml3
-rw-r--r--core/res/res/values-iw/strings.xml16
-rw-r--r--core/res/res/values-ja/strings.xml3
-rw-r--r--core/res/res/values-ka/strings.xml3
-rw-r--r--core/res/res/values-kk/strings.xml6
-rw-r--r--core/res/res/values-km/strings.xml3
-rw-r--r--core/res/res/values-kn/strings.xml2
-rw-r--r--core/res/res/values-ko/strings.xml3
-rw-r--r--core/res/res/values-ky/strings.xml5
-rw-r--r--core/res/res/values-lo/strings.xml3
-rw-r--r--core/res/res/values-mn/strings.xml2
-rw-r--r--core/res/res/values-mr/strings.xml26
-rw-r--r--core/res/res/values-my/strings.xml8
-rw-r--r--core/res/res/values-ne/strings.xml8
-rw-r--r--core/res/res/values-nl/strings.xml7
-rw-r--r--core/res/res/values-pa/strings.xml28
-rw-r--r--core/res/res/values-pl/strings.xml24
-rw-r--r--core/res/res/values-pt-rBR/strings.xml3
-rw-r--r--core/res/res/values-pt-rPT/strings.xml3
-rw-r--r--core/res/res/values-pt/strings.xml3
-rw-r--r--core/res/res/values-ru/strings.xml3
-rw-r--r--core/res/res/values-si/strings.xml3
-rw-r--r--core/res/res/values-sk/strings.xml3
-rw-r--r--core/res/res/values-sr/strings.xml3
-rw-r--r--core/res/res/values-sw/strings.xml3
-rw-r--r--core/res/res/values-te/strings.xml44
-rw-r--r--core/res/res/values-tl/strings.xml3
-rw-r--r--core/res/res/values-tr/strings.xml7
-rw-r--r--core/res/res/values-uk/strings.xml2
-rw-r--r--core/res/res/values-ur/strings.xml26
-rw-r--r--core/res/res/values-vi/strings.xml3
-rw-r--r--core/res/res/values-zh-rCN/strings.xml24
-rw-r--r--core/res/res/values-zh-rHK/strings.xml3
-rw-r--r--core/res/res/values-zh-rTW/strings.xml2
-rw-r--r--core/res/res/values-zu/strings.xml3
-rw-r--r--core/res/res/values/attrs.xml14
-rw-r--r--core/res/res/values/attrs_manifest.xml3
-rw-r--r--core/res/res/values/config.xml2
-rw-r--r--core/res/res/values/dimens.xml3
-rw-r--r--core/res/res/values/public.xml1
-rw-r--r--core/res/res/values/symbols.xml2
-rw-r--r--core/res/res/values/themes_device_defaults.xml3
-rw-r--r--core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java2
-rw-r--r--core/tests/coretests/src/android/graphics/FontListParserTest.java44
-rw-r--r--core/tests/coretests/src/android/graphics/TypefaceTest.java6
-rw-r--r--core/tests/coretests/src/android/view/ViewGroupScrollCaptureTest.java12
-rw-r--r--core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java2
-rw-r--r--core/tests/coretests/src/com/android/internal/view/RecyclerViewCaptureHelperTest.java13
-rw-r--r--data/etc/car/com.android.car.shell.xml4
-rw-r--r--data/etc/car/com.google.android.car.kitchensink.xml4
-rw-r--r--data/etc/privapp-permissions-platform.xml6
-rw-r--r--data/etc/services.core.protolog.json12
-rw-r--r--data/fonts/fonts.xml847
-rw-r--r--errorprone/java/android/annotation/RequiresNoPermission.java36
-rw-r--r--errorprone/java/android/annotation/RequiresPermission.java136
-rw-r--r--errorprone/java/com/google/errorprone/bugpatterns/android/BluetoothPermissionChecker.java213
-rw-r--r--errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java15
-rw-r--r--graphics/java/android/graphics/FontListParser.java14
-rw-r--r--graphics/java/android/graphics/HardwareRenderer.java25
-rw-r--r--graphics/java/android/graphics/Typeface.java21
-rw-r--r--graphics/java/android/graphics/drawable/RippleDrawable.java73
-rw-r--r--graphics/java/android/graphics/drawable/RippleShader.java15
-rw-r--r--keystore/java/android/security/keystore/AndroidKeyStoreProvider.java6
-rw-r--r--libs/WindowManager/Shell/res/values-es/strings.xml2
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java34
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipNotificationController.java6
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenContentDrawer.java77
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenIconDrawableFactory.java54
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java136
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingWindowController.java37
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java6
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipBoundsStateTest.java18
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java12
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java9
-rw-r--r--libs/hwui/WebViewFunctorManager.cpp49
-rw-r--r--libs/hwui/WebViewFunctorManager.h1
-rw-r--r--libs/hwui/jni/Typeface.cpp7
-rw-r--r--libs/hwui/jni/android_graphics_HardwareRenderer.cpp36
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp28
-rw-r--r--libs/hwui/renderthread/CanvasContext.h13
-rw-r--r--libs/hwui/renderthread/RenderProxy.cpp6
-rw-r--r--libs/hwui/renderthread/RenderProxy.h2
-rw-r--r--libs/hwui/renderthread/RenderThread.cpp21
-rw-r--r--libs/hwui/renderthread/RenderThread.h16
-rw-r--r--media/java/android/media/AudioFormat.java4
-rw-r--r--media/java/android/media/AudioTrack.java10
-rw-r--r--media/java/android/media/metrics/Event.java10
-rw-r--r--media/java/android/media/metrics/MediaMetricsManager.java2
-rw-r--r--media/java/android/media/metrics/NetworkEvent.java13
-rw-r--r--media/java/android/media/metrics/PlaybackErrorEvent.java12
-rw-r--r--media/java/android/media/metrics/PlaybackMetrics.java5
-rw-r--r--media/java/android/media/metrics/PlaybackStateEvent.java13
-rw-r--r--media/java/android/media/metrics/TrackChangeEvent.java22
-rw-r--r--media/java/android/media/session/ParcelableListBinder.java4
-rw-r--r--media/jni/android_media_tv_Tuner.cpp13
-rw-r--r--media/jni/android_media_tv_Tuner.h2
-rw-r--r--media/jni/tuner/FilterClient.cpp6
-rw-r--r--native/android/system_fonts.cpp102
-rw-r--r--packages/Connectivity/framework/api/module-lib-current.txt2
-rw-r--r--packages/Connectivity/framework/src/android/net/ConnectivityManager.java4
-rw-r--r--packages/Connectivity/framework/src/android/net/IConnectivityManager.aidl2
-rw-r--r--packages/Connectivity/service/ServiceConnectivityResources/Android.bp2
-rw-r--r--packages/PrintSpooler/res/values-te/strings.xml2
-rw-r--r--packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml4
-rw-r--r--packages/SettingsLib/SearchWidget/res/values-or/strings.xml2
-rw-r--r--packages/SettingsLib/SearchWidget/res/values-pt-rPT/strings.xml2
-rw-r--r--packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml20
-rw-r--r--packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java6
-rw-r--r--packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java14
-rw-r--r--packages/SettingsProvider/res/values-es/strings.xml2
-rw-r--r--packages/Shell/AndroidManifest.xml7
-rw-r--r--packages/Shell/TEST_MAPPING14
-rw-r--r--packages/SystemUI/res-keyguard/values-eu/strings.xml2
-rw-r--r--packages/SystemUI/res-keyguard/values-ne/strings.xml8
-rw-r--r--packages/SystemUI/res-keyguard/values/styles.xml6
-rw-r--r--packages/SystemUI/res-product/values-ne/strings.xml2
-rw-r--r--packages/SystemUI/res/layout/long_screenshot.xml11
-rw-r--r--packages/SystemUI/res/layout/media_output_list_item.xml4
-rw-r--r--packages/SystemUI/res/layout/privacy_dialog_item.xml1
-rw-r--r--packages/SystemUI/res/layout/qs_customize_tile_divider.xml5
-rw-r--r--packages/SystemUI/res/layout/qs_detail.xml1
-rw-r--r--packages/SystemUI/res/layout/qs_panel.xml1
-rw-r--r--packages/SystemUI/res/values-land/dimens.xml2
-rw-r--r--packages/SystemUI/res/values-night/styles.xml1
-rw-r--r--packages/SystemUI/res/values-pt-ldrtl/strings.xml2
-rw-r--r--packages/SystemUI/res/values-pt-rBR-ldrtl/strings.xml2
-rw-r--r--packages/SystemUI/res/values/dimens.xml2
-rw-r--r--packages/SystemUI/res/values/strings.xml10
-rw-r--r--packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/Classifier.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java26
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/NotificationHelper.java213
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java30
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java206
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java359
-rw-r--r--packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSDetail.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java127
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotHolder.java59
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java35
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PriorityOnboardingDialogController.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java30
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java27
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java26
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt81
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/Utils.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java43
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/people/NotificationHelperTest.java205
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTest.java25
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTestable.java16
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java141
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java296
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java9
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt53
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java25
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java4
-rw-r--r--services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java10
-rw-r--r--services/autofill/java/com/android/server/autofill/Session.java4
-rw-r--r--services/core/Android.bp1
-rw-r--r--services/core/java/android/content/pm/PackageManagerInternal.java6
-rw-r--r--services/core/java/com/android/server/BluetoothManagerService.java3
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java7
-rw-r--r--services/core/java/com/android/server/TelephonyRegistry.java14
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java2
-rw-r--r--services/core/java/com/android/server/am/BatteryExternalStatsWorker.java4
-rw-r--r--services/core/java/com/android/server/apphibernation/AppHibernationService.java2
-rw-r--r--services/core/java/com/android/server/clipboard/ClipboardService.java10
-rw-r--r--services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java4
-rw-r--r--services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java2
-rw-r--r--services/core/java/com/android/server/location/provider/LocationProviderManager.java14
-rw-r--r--services/core/java/com/android/server/locksettings/RebootEscrowManager.java47
-rw-r--r--services/core/java/com/android/server/net/NetworkPolicyManagerService.java2
-rw-r--r--services/core/java/com/android/server/net/TEST_MAPPING6
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java29
-rw-r--r--services/core/java/com/android/server/pm/LauncherAppsService.java28
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerService.java8
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerSession.java3
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java33
-rw-r--r--services/core/java/com/android/server/pm/ShortcutPackage.java50
-rw-r--r--services/core/java/com/android/server/pm/ShortcutService.java50
-rw-r--r--services/core/java/com/android/server/pm/ShortcutUser.java6
-rw-r--r--services/core/java/com/android/server/policy/DeviceStateProviderImpl.java4
-rw-r--r--services/core/java/com/android/server/rotationresolver/RemoteRotationResolverService.java15
-rw-r--r--services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java32
-rw-r--r--services/core/java/com/android/server/timedetector/EnvironmentImpl.java3
-rw-r--r--services/core/java/com/android/server/timedetector/ServerFlags.java53
-rw-r--r--services/core/java/com/android/server/timedetector/ServiceConfigAccessor.java126
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorService.java12
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorShellCommand.java83
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java11
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java4
-rw-r--r--services/core/java/com/android/server/timezonedetector/ServiceConfigAccessor.java4
-rw-r--r--services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java15
-rw-r--r--services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java48
-rw-r--r--services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java88
-rw-r--r--services/core/java/com/android/server/vcn/VcnGatewayConnection.java2
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java53
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java4
-rw-r--r--services/core/java/com/android/server/wm/DisplayHashController.java36
-rw-r--r--services/core/java/com/android/server/wm/RecentTasks.java10
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimationController.java2
-rw-r--r--services/core/java/com/android/server/wm/ShellRoot.java7
-rw-r--r--services/core/java/com/android/server/wm/StartingSurfaceController.java4
-rw-r--r--services/core/java/com/android/server/wm/TaskOrganizerController.java64
-rw-r--r--services/core/java/com/android/server/wm/WindowContainer.java9
-rw-r--r--services/core/java/com/android/server/wm/WindowContextListenerController.java17
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java32
-rw-r--r--services/core/java/com/android/server/wm/WindowToken.java93
-rw-r--r--services/core/jni/Android.bp1
-rw-r--r--services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp28
-rw-r--r--services/incremental/Android.bp1
-rw-r--r--services/incremental/TEST_MAPPING4
-rw-r--r--services/people/java/com/android/server/people/data/DataManager.java69
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java96
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt2
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java42
-rw-r--r--services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java12
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java100
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java2
-rwxr-xr-xservices/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java105
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java15
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java79
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java16
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java6
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java208
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java17
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowContextListenerControllerTests.java23
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java64
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java153
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java23
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java15
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java1
-rw-r--r--telephony/java/android/telephony/AccessNetworkConstants.java1
-rw-r--r--telephony/java/android/telephony/CarrierConfigManager.java1
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthNr.java8
-rw-r--r--telephony/java/android/telephony/DataFailCause.java4
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java6
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java163
-rw-r--r--telephony/java/android/telephony/data/NetworkSlicingConfig.aidl (renamed from telephony/java/android/telephony/data/SlicingConfig.aidl)2
-rw-r--r--telephony/java/android/telephony/data/NetworkSlicingConfig.java (renamed from telephony/java/android/telephony/data/SlicingConfig.java)24
-rw-r--r--telephony/java/android/telephony/data/QosBearerFilter.java1
-rw-r--r--telephony/java/android/telephony/data/TrafficDescriptor.java29
-rw-r--r--telephony/java/android/telephony/data/UrspRule.java4
-rw-r--r--telephony/java/android/telephony/ims/SipDelegateImsConfiguration.java4
-rw-r--r--tests/net/TEST_MAPPING2
-rw-r--r--tests/net/common/java/ParseExceptionTest.kt52
-rw-r--r--tests/net/java/com/android/server/ConnectivityServiceTest.java14
-rw-r--r--tests/vcn/java/android/net/vcn/VcnControlPlaneIkeConfigTest.java14
-rw-r--r--tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectingStateTest.java3
-rwxr-xr-xtools/fonts/fontchain_linter.py45
426 files changed, 7105 insertions, 22014 deletions
diff --git a/Android.bp b/Android.bp
index ca014bc7b11c..da52c2320048 100644
--- a/Android.bp
+++ b/Android.bp
@@ -408,6 +408,7 @@ filegroup {
"core/java/android/annotation/MainThread.java",
"core/java/android/annotation/NonNull.java",
"core/java/android/annotation/Nullable.java",
+ "core/java/android/annotation/RequiresNoPermission.java",
"core/java/android/annotation/RequiresPermission.java",
"core/java/android/annotation/SdkConstant.java",
"core/java/android/annotation/StringDef.java",
diff --git a/ProtoLibraries.bp b/ProtoLibraries.bp
index 14415dbed877..7e3cc2739cd0 100644
--- a/ProtoLibraries.bp
+++ b/ProtoLibraries.bp
@@ -35,6 +35,7 @@ gensrcs {
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
+ ":libstats_atom_message_protos",
":libtombstone_proto-src",
"core/proto/**/*.proto",
"libs/incident/**/*.proto",
@@ -64,6 +65,7 @@ gensrcs {
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
+ ":libstats_atom_message_protos",
"core/proto/**/*.proto",
"libs/incident/**/*.proto",
":service-permission-protos",
@@ -78,6 +80,7 @@ java_library_host {
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
+ ":libstats_atom_message_protos",
":libstats_internal_protos",
":statsd_internal_protos",
"cmds/am/proto/instrumentation_data.proto",
@@ -116,6 +119,7 @@ java_library {
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
+ ":libstats_atom_message_protos",
"core/proto/**/*.proto",
"libs/incident/proto/android/os/**/*.proto",
":service-permission-protos",
@@ -133,6 +137,7 @@ java_library {
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
+ ":libstats_atom_message_protos",
"core/proto/**/*.proto",
"libs/incident/proto/android/os/**/*.proto",
":service-permission-protos",
@@ -169,6 +174,7 @@ cc_defaults {
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
+ ":libstats_atom_message_protos",
"core/proto/**/*.proto",
":service-permission-protos",
],
diff --git a/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceSerializationPerfTest.java b/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceSerializationPerfTest.java
index 547369055e95..d27250719c6d 100644
--- a/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceSerializationPerfTest.java
+++ b/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceSerializationPerfTest.java
@@ -20,6 +20,7 @@ import android.graphics.Typeface;
import android.os.SharedMemory;
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
+import android.util.ArrayMap;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;
@@ -55,9 +56,10 @@ public class TypefaceSerializationPerfTest {
ByteBuffer buffer = memory.mapReadOnly().order(ByteOrder.BIG_ENDIAN);
BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
+ ArrayMap<String, Typeface> out = new ArrayMap<>();
while (state.keepRunning()) {
buffer.position(0);
- Typeface.deserializeFontMap(buffer);
+ Typeface.deserializeFontMap(buffer, out);
}
}
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java
index 977682771ca3..8af91b480889 100644
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java
+++ b/apex/appsearch/framework/java/android/app/appsearch/AppSearchManager.java
@@ -29,14 +29,16 @@ import java.util.function.Consumer;
/**
* Provides access to the centralized AppSearch index maintained by the system.
*
- * <p>AppSearch is a search library for managing structured data featuring:
+ * <p>AppSearch is an offline, on-device search library for managing structured data featuring:
*
* <ul>
- * <li>A fully offline on-device solution
- * <li>A set of APIs for applications to index documents and retrieve them via full-text search
- * <li>APIs for applications to allow the System to display their content on system UI surfaces
- * <li>Similarly, APIs for applications to allow the System to share their content with other
- * specified applications.
+ * <li>APIs to index and retrieve data via full-text search.
+ * <li>An API for applications to explicitly grant read-access permission of their data to other
+ * applications.
+ * <b>See: {@link SetSchemaRequest.Builder#setSchemaTypeVisibilityForPackage}</b>
+ * <li>An API for applications to opt into or out of having their data displayed on System UI
+ * surfaces by the System-designated global querier.
+ * <b>See: {@link SetSchemaRequest.Builder#setSchemaTypeDisplayedBySystem}</b>
* </ul>
*
* <p>Applications create a database by opening an {@link AppSearchSession}.
diff --git a/apex/jobscheduler/framework/java/android/app/AlarmManager.java b/apex/jobscheduler/framework/java/android/app/AlarmManager.java
index 9ea6f7946fcf..01f31e43989e 100644
--- a/apex/jobscheduler/framework/java/android/app/AlarmManager.java
+++ b/apex/jobscheduler/framework/java/android/app/AlarmManager.java
@@ -19,6 +19,7 @@ package android.app;
import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SystemApi;
@@ -591,8 +592,8 @@ public class AlarmManager {
* in milliseconds. The alarm will be delivered no later than this many
* milliseconds after {@code windowStartMillis}. Note that this parameter
* is a <i>duration,</i> not the timestamp of the end of the window.
- * @param tag string describing the alarm, used for logging and battery-use
- * attribution
+ * @param tag Optional. A string describing the alarm, used for logging and battery-use
+ * attribution.
* @param listener {@link OnAlarmListener} instance whose
* {@link OnAlarmListener#onAlarm() onAlarm()} method will be
* called when the alarm time is reached. A given OnAlarmListener instance can
@@ -605,9 +606,8 @@ public class AlarmManager {
@SystemApi
@RequiresPermission(Manifest.permission.SCHEDULE_PRIORITIZED_ALARM)
public void setPrioritized(@AlarmType int type, long windowStartMillis, long windowLengthMillis,
- @NonNull String tag, @NonNull Executor executor, @NonNull OnAlarmListener listener) {
+ @Nullable String tag, @NonNull Executor executor, @NonNull OnAlarmListener listener) {
Objects.requireNonNull(executor);
- Objects.requireNonNull(tag);
Objects.requireNonNull(listener);
setImpl(type, windowStartMillis, windowLengthMillis, 0, FLAG_PRIORITIZE, null, listener,
tag, executor, null, null);
@@ -782,6 +782,50 @@ public class AlarmManager {
targetHandler, workSource, null);
}
+ /**
+ * Exact version of {@link #set(int, long, long, long, OnAlarmListener, Handler, WorkSource)}.
+ * This equivalent to calling the aforementioned API with {@code windowMillis} and
+ * {@code intervalMillis} set to 0.
+ * One subtle difference is that this API requires {@code workSource} to be non-null. If you
+ * don't want to attribute this alarm to another app for battery consumption, you should use
+ * {@link #setExact(int, long, String, OnAlarmListener, Handler)} instead.
+ *
+ * <p>
+ * Note that using this API requires you to hold
+ * {@link Manifest.permission#SCHEDULE_EXACT_ALARM}, unless you are on the system's power
+ * allowlist. This can be set, for example, by marking the app as {@code <allow-in-power-save>}
+ * within the system config.
+ *
+ * @param type type of alarm
+ * @param triggerAtMillis The exact time in milliseconds, that the alarm should be delivered,
+ * expressed in the appropriate clock's units (depending on the alarm
+ * type).
+ * @param listener {@link OnAlarmListener} instance whose
+ * {@link OnAlarmListener#onAlarm() onAlarm()} method will be called when
+ * the alarm time is reached.
+ * @param executor The {@link Executor} on which to execute the listener's onAlarm()
+ * callback.
+ * @param tag Optional. A string tag used to identify this alarm in logs and
+ * battery-attribution.
+ * @param workSource A {@link WorkSource} object to attribute this alarm to the app that
+ * requested this work.
+ * @hide
+ */
+ @SystemApi
+ @RequiresPermission(allOf = {
+ Manifest.permission.UPDATE_DEVICE_STATS,
+ Manifest.permission.SCHEDULE_EXACT_ALARM}, conditional = true)
+ public void setExact(@AlarmType int type, long triggerAtMillis, @Nullable String tag,
+ @NonNull Executor executor, @NonNull WorkSource workSource,
+ @NonNull OnAlarmListener listener) {
+ Objects.requireNonNull(executor);
+ Objects.requireNonNull(workSource);
+ Objects.requireNonNull(listener);
+ setImpl(type, triggerAtMillis, WINDOW_EXACT, 0, 0, null, listener, tag, executor,
+ workSource, null);
+ }
+
+
private void setImpl(@AlarmType int type, long triggerAtMillis, long windowMillis,
long intervalMillis, int flags, PendingIntent operation, final OnAlarmListener listener,
String listenerTag, Handler targetHandler, WorkSource workSource,
diff --git a/apex/jobscheduler/framework/java/android/os/PowerExemptionManager.java b/apex/jobscheduler/framework/java/android/os/PowerExemptionManager.java
index 44e87c370fc1..93b65662d677 100644
--- a/apex/jobscheduler/framework/java/android/os/PowerExemptionManager.java
+++ b/apex/jobscheduler/framework/java/android/os/PowerExemptionManager.java
@@ -283,9 +283,10 @@ public class PowerExemptionManager {
*/
public static final int REASON_PACKAGE_REPLACED = 311;
/**
- * LocationProviderManager.
+ * LocationProvider.
* @hide
*/
+ @SystemApi
public static final int REASON_LOCATION_PROVIDER = 312;
/**
* MediaButtonReceiver.
diff --git a/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java b/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java
index 29a5dee0be26..4ce31e96208c 100644
--- a/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java
+++ b/apex/jobscheduler/framework/java/android/os/PowerWhitelistManager.java
@@ -284,9 +284,10 @@ public class PowerWhitelistManager {
*/
public static final int REASON_PACKAGE_REPLACED = PowerExemptionManager.REASON_PACKAGE_REPLACED;
/**
- * LocationProviderManager.
+ * LocationProvider.
* @hide
*/
+ @SystemApi
public static final int REASON_LOCATION_PROVIDER =
PowerExemptionManager.REASON_LOCATION_PROVIDER;
/**
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
index 131783f9e04e..366e1747d167 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
@@ -798,7 +798,8 @@ class JobConcurrencyManager {
private void startJobLocked(@NonNull JobServiceContext worker, @NonNull JobStatus jobStatus,
@WorkType final int workType) {
final List<StateController> controllers = mService.mControllers;
- for (int ic = 0; ic < controllers.size(); ic++) {
+ final int numControllers = controllers.size();
+ for (int ic = 0; ic < numControllers; ic++) {
controllers.get(ic).prepareForExecutionLocked(jobStatus);
}
final PackageStats packageStats =
@@ -807,6 +808,9 @@ class JobConcurrencyManager {
if (!worker.executeRunnableJob(jobStatus, workType)) {
Slog.e(TAG, "Error executing " + jobStatus);
mWorkCountTracker.onStagedJobFailed(workType);
+ for (int ic = 0; ic < numControllers; ic++) {
+ controllers.get(ic).unprepareFromExecutionLocked(jobStatus);
+ }
} else {
mRunningJobs.add(jobStatus);
mWorkCountTracker.onJobStarted(workType);
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java
index 500735b0b299..2bdf65643d97 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java
@@ -77,7 +77,7 @@ public final class ConnectivityController extends RestrictingController implemen
|| Log.isLoggable(TAG, Log.DEBUG);
// The networking stack has a hard limit so we can't make this configurable.
- private static final int MAX_NETWORK_CALLBACKS = 50;
+ private static final int MAX_NETWORK_CALLBACKS = 125;
/**
* Minimum amount of time that should have elapsed before we'll update a {@link UidStats}
* instance.
@@ -148,7 +148,8 @@ public final class ConnectivityController extends RestrictingController implemen
// 9. Enqueue time
// TODO: maybe consider number of jobs
// TODO: consider IMPORTANT_WHILE_FOREGROUND bit
- final int runningPriority = prioritizeExistenceOver(0, us1.numRunning, us2.numRunning);
+ final int runningPriority = prioritizeExistenceOver(0,
+ us1.runningJobs.size(), us2.runningJobs.size());
if (runningPriority != 0) {
return runningPriority;
}
@@ -256,7 +257,18 @@ public final class ConnectivityController extends RestrictingController implemen
if (jobStatus.hasConnectivityConstraint()) {
final UidStats uidStats =
getUidStats(jobStatus.getSourceUid(), jobStatus.getSourcePackageName(), true);
- uidStats.numRunning++;
+ uidStats.runningJobs.add(jobStatus);
+ }
+ }
+
+ @GuardedBy("mLock")
+ @Override
+ public void unprepareFromExecutionLocked(JobStatus jobStatus) {
+ if (jobStatus.hasConnectivityConstraint()) {
+ final UidStats uidStats =
+ getUidStats(jobStatus.getSourceUid(), jobStatus.getSourcePackageName(), true);
+ uidStats.runningJobs.remove(jobStatus);
+ postAdjustCallbacks();
}
}
@@ -272,12 +284,7 @@ public final class ConnectivityController extends RestrictingController implemen
final UidStats uidStats =
getUidStats(jobStatus.getSourceUid(), jobStatus.getSourcePackageName(), true);
uidStats.numReadyWithConnectivity--;
- if (jobStatus.madeActive != 0) {
- // numRunning would be 0 if the UidStats object didn't exist before this method
- // was called. getUidStats() handles logging, so just make sure we don't save a
- // negative value.
- uidStats.numRunning = Math.max(0, uidStats.numRunning - 1);
- }
+ uidStats.runningJobs.remove(jobStatus);
maybeRevokeStandbyExceptionLocked(jobStatus);
postAdjustCallbacks();
}
@@ -1151,7 +1158,7 @@ public final class ConnectivityController extends RestrictingController implemen
private static class UidStats {
public final int uid;
public int basePriority;
- public int numRunning;
+ public final ArraySet<JobStatus> runningJobs = new ArraySet<>();
public int numReadyWithConnectivity;
public int numRequestedNetworkAvailable;
public int numEJs;
@@ -1168,7 +1175,7 @@ public final class ConnectivityController extends RestrictingController implemen
pw.print("UidStats{");
pw.print("uid", uid);
pw.print("pri", basePriority);
- pw.print("#run", numRunning);
+ pw.print("#run", runningJobs.size());
pw.print("#readyWithConn", numReadyWithConnectivity);
pw.print("#netAvail", numRequestedNetworkAvailable);
pw.print("#EJs", numEJs);
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java
index 8b0da3471781..e64233ff4187 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ContentObserverController.java
@@ -136,6 +136,29 @@ public final class ContentObserverController extends StateController {
}
@Override
+ public void unprepareFromExecutionLocked(JobStatus taskStatus) {
+ if (taskStatus.hasContentTriggerConstraint()) {
+ if (taskStatus.contentObserverJobInstance != null) {
+ if (taskStatus.contentObserverJobInstance.mChangedUris == null) {
+ taskStatus.contentObserverJobInstance.mChangedUris = taskStatus.changedUris;
+ } else {
+ taskStatus.contentObserverJobInstance.mChangedUris
+ .addAll(taskStatus.changedUris);
+ }
+ if (taskStatus.contentObserverJobInstance.mChangedAuthorities == null) {
+ taskStatus.contentObserverJobInstance.mChangedAuthorities =
+ taskStatus.changedAuthorities;
+ } else {
+ taskStatus.contentObserverJobInstance.mChangedAuthorities
+ .addAll(taskStatus.changedAuthorities);
+ }
+ taskStatus.changedUris = null;
+ taskStatus.changedAuthorities = null;
+ }
+ }
+ }
+
+ @Override
public void maybeStopTrackingJobLocked(JobStatus taskStatus, JobStatus incomingJob,
boolean forUpdate) {
if (taskStatus.clearTrackingController(JobStatus.TRACKING_CONTENT)) {
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
index d4ce43732864..aace6457fc9d 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
@@ -34,7 +34,6 @@ import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.AlarmManager;
-import android.app.AppGlobals;
import android.app.IUidObserver;
import android.app.usage.UsageEvents;
import android.app.usage.UsageStatsManagerInternal;
@@ -677,27 +676,30 @@ public final class QuotaController extends StateController {
}
@Override
- public void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob,
- boolean forUpdate) {
- if (jobStatus.clearTrackingController(JobStatus.TRACKING_QUOTA)) {
- Timer timer = mPkgTimers.get(jobStatus.getSourceUserId(),
- jobStatus.getSourcePackageName());
+ public void unprepareFromExecutionLocked(JobStatus jobStatus) {
+ Timer timer = mPkgTimers.get(jobStatus.getSourceUserId(), jobStatus.getSourcePackageName());
+ if (timer != null) {
+ timer.stopTrackingJob(jobStatus);
+ }
+ if (jobStatus.isRequestedExpeditedJob()) {
+ timer = mEJPkgTimers.get(jobStatus.getSourceUserId(), jobStatus.getSourcePackageName());
if (timer != null) {
timer.stopTrackingJob(jobStatus);
}
- if (jobStatus.isRequestedExpeditedJob()) {
- timer = mEJPkgTimers.get(jobStatus.getSourceUserId(),
- jobStatus.getSourcePackageName());
- if (timer != null) {
- timer.stopTrackingJob(jobStatus);
- }
- }
+ }
+ mTopStartedJobs.remove(jobStatus);
+ }
+
+ @Override
+ public void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob,
+ boolean forUpdate) {
+ if (jobStatus.clearTrackingController(JobStatus.TRACKING_QUOTA)) {
+ unprepareFromExecutionLocked(jobStatus);
ArraySet<JobStatus> jobs = mTrackedJobs.get(jobStatus.getSourceUserId(),
jobStatus.getSourcePackageName());
if (jobs != null) {
jobs.remove(jobStatus);
}
- mTopStartedJobs.remove(jobStatus);
}
}
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java
index 334876f57f29..f0fc3b00a7bc 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/StateController.java
@@ -76,6 +76,12 @@ public abstract class StateController {
}
/**
+ * Optionally implement logic here for when a job that was about to be executed failed to start.
+ */
+ public void unprepareFromExecutionLocked(JobStatus jobStatus) {
+ }
+
+ /**
* Remove task - this will happen if the task is cancelled, completed, etc.
*/
public abstract void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob,
diff --git a/apex/jobscheduler/service/jni/Android.bp b/apex/jobscheduler/service/jni/Android.bp
index c630217387ce..34a1fa2ebc13 100644
--- a/apex/jobscheduler/service/jni/Android.bp
+++ b/apex/jobscheduler/service/jni/Android.bp
@@ -24,30 +24,8 @@ cc_library_shared {
],
shared_libs: [
- "libnativehelper",
- "liblog",
- "libbase",
- ],
-
- product_variables: {
- arc: {
- exclude_srcs: [
- "com_android_server_alarm_AlarmManagerService.cpp",
- ],
- srcs: [
- ":arctimersrcs",
- ],
- }
- },
-}
-
-filegroup {
- name: "lib_alarmManagerService_native",
- srcs: [
- "com_android_server_alarm_AlarmManagerService.cpp",
- ],
- visibility: [
- // TODO: remove this
- "//vendor:__subpackages__",
+ "libnativehelper",
+ "liblog",
+ "libbase",
],
}
diff --git a/boot/Android.bp b/boot/Android.bp
index 844dd64ce8d7..ef2abc885fcf 100644
--- a/boot/Android.bp
+++ b/boot/Android.bp
@@ -44,6 +44,19 @@ package {
platform_bootclasspath {
name: "platform-bootclasspath",
+ // The bootclasspath_fragments that contribute to the platform
+ // bootclasspath.
+ fragments: [
+ {
+ apex: "com.android.art",
+ module: "art-bootclasspath-fragment",
+ },
+ {
+ apex: "com.android.i18n",
+ module: "i18n-bootclasspath-fragment",
+ },
+ ],
+
// Additional information needed by hidden api processing.
hidden_api: {
unsupported: [
@@ -64,9 +77,6 @@ platform_bootclasspath {
max_target_o_low_priority: [
"hiddenapi/hiddenapi-max-target-o.txt",
],
- blocked: [
- "hiddenapi/hiddenapi-force-blocked.txt",
- ],
unsupported_packages: [
"hiddenapi/hiddenapi-unsupported-packages.txt",
],
diff --git a/boot/hiddenapi/hiddenapi-force-blocked.txt b/boot/hiddenapi/hiddenapi-force-blocked.txt
deleted file mode 100644
index b328f2ac1955..000000000000
--- a/boot/hiddenapi/hiddenapi-force-blocked.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-Ldalvik/system/VMRuntime;->setHiddenApiExemptions([Ljava/lang/String;)V
-Ldalvik/system/VMRuntime;->setTargetSdkVersion(I)V
-Ldalvik/system/VMRuntime;->setTargetSdkVersionNative(I)V
-Ljava/lang/invoke/MethodHandles$Lookup;->IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
-Ljava/lang/invoke/VarHandle;->acquireFence()V
-Ljava/lang/invoke/VarHandle;->compareAndExchange([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->compareAndExchangeAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->compareAndExchangeRelease([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->compareAndSet([Ljava/lang/Object;)Z
-Ljava/lang/invoke/VarHandle;->fullFence()V
-Ljava/lang/invoke/VarHandle;->get([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndAdd([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndAddAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndAddRelease([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseAnd([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseAndAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseAndRelease([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseOr([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseOrAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseOrRelease([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseXor([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseXorAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndBitwiseXorRelease([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndSet([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndSetAcquire([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getAndSetRelease([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getOpaque([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->getVolatile([Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/VarHandle;->loadLoadFence()V
-Ljava/lang/invoke/VarHandle;->releaseFence()V
-Ljava/lang/invoke/VarHandle;->set([Ljava/lang/Object;)V
-Ljava/lang/invoke/VarHandle;->setOpaque([Ljava/lang/Object;)V
-Ljava/lang/invoke/VarHandle;->setRelease([Ljava/lang/Object;)V
-Ljava/lang/invoke/VarHandle;->setVolatile([Ljava/lang/Object;)V
-Ljava/lang/invoke/VarHandle;->storeStoreFence()V
-Ljava/lang/invoke/VarHandle;->weakCompareAndSet([Ljava/lang/Object;)Z
-Ljava/lang/invoke/VarHandle;->weakCompareAndSetAcquire([Ljava/lang/Object;)Z
-Ljava/lang/invoke/VarHandle;->weakCompareAndSetPlain([Ljava/lang/Object;)Z
-Ljava/lang/invoke/VarHandle;->weakCompareAndSetRelease([Ljava/lang/Object;)Z
diff --git a/boot/hiddenapi/hiddenapi-max-target-o.txt b/boot/hiddenapi/hiddenapi-max-target-o.txt
index 3fee56863cf5..45ebbb1ea526 100644
--- a/boot/hiddenapi/hiddenapi-max-target-o.txt
+++ b/boot/hiddenapi/hiddenapi-max-target-o.txt
@@ -25375,7248 +25375,6 @@ Landroid/hardware/usb/UsbRequest;->native_queue(Ljava/nio/ByteBuffer;II)Z
Landroid/hardware/usb/UsbRequest;->native_queue_array([BIZ)Z
Landroid/hardware/usb/UsbRequest;->native_queue_direct(Ljava/nio/ByteBuffer;IZ)Z
Landroid/hardware/usb/UsbRequest;->TAG:Ljava/lang/String;
-Landroid/icu/impl/BMPSet;->bmpBlockBits:[I
-Landroid/icu/impl/BMPSet;->containsSlow(III)Z
-Landroid/icu/impl/BMPSet;->findCodePoint(III)I
-Landroid/icu/impl/BMPSet;->initBits()V
-Landroid/icu/impl/BMPSet;->latin1Contains:[Z
-Landroid/icu/impl/BMPSet;->list4kStarts:[I
-Landroid/icu/impl/BMPSet;->list:[I
-Landroid/icu/impl/BMPSet;->listLength:I
-Landroid/icu/impl/BMPSet;->set32x64Bits([III)V
-Landroid/icu/impl/BMPSet;->table7FF:[I
-Landroid/icu/impl/CacheValue$NullValue;-><init>()V
-Landroid/icu/impl/CacheValue$SoftValue;-><init>(Ljava/lang/Object;)V
-Landroid/icu/impl/CacheValue$SoftValue;->ref:Ljava/lang/ref/Reference;
-Landroid/icu/impl/CacheValue$StrongValue;-><init>(Ljava/lang/Object;)V
-Landroid/icu/impl/CacheValue$StrongValue;->value:Ljava/lang/Object;
-Landroid/icu/impl/CacheValue;->NULL_VALUE:Landroid/icu/impl/CacheValue;
-Landroid/icu/impl/CacheValue;->strength:Landroid/icu/impl/CacheValue$Strength;
-Landroid/icu/impl/CalendarAstronomer$AngleFunc;->eval()D
-Landroid/icu/impl/CalendarAstronomer$CoordFunc;->eval()Landroid/icu/impl/CalendarAstronomer$Equatorial;
-Landroid/icu/impl/CalendarAstronomer$MoonAge;-><init>(D)V
-Landroid/icu/impl/CalendarAstronomer$MoonAge;->value:D
-Landroid/icu/impl/CalendarAstronomer$SolarLongitude;-><init>(D)V
-Landroid/icu/impl/CalendarAstronomer$SolarLongitude;->value:D
-Landroid/icu/impl/CalendarAstronomer;->clearCache()V
-Landroid/icu/impl/CalendarAstronomer;->DEG_RAD:D
-Landroid/icu/impl/CalendarAstronomer;->eclipObliquity:D
-Landroid/icu/impl/CalendarAstronomer;->eclipticObliquity()D
-Landroid/icu/impl/CalendarAstronomer;->EPOCH_2000_MS:J
-Landroid/icu/impl/CalendarAstronomer;->fGmtOffset:J
-Landroid/icu/impl/CalendarAstronomer;->fLatitude:D
-Landroid/icu/impl/CalendarAstronomer;->fLongitude:D
-Landroid/icu/impl/CalendarAstronomer;->getSiderealOffset()D
-Landroid/icu/impl/CalendarAstronomer;->getSunLongitude(D)[D
-Landroid/icu/impl/CalendarAstronomer;->INVALID:D
-Landroid/icu/impl/CalendarAstronomer;->JD_EPOCH:D
-Landroid/icu/impl/CalendarAstronomer;->julianCentury:D
-Landroid/icu/impl/CalendarAstronomer;->julianDay:D
-Landroid/icu/impl/CalendarAstronomer;->lstToUT(D)J
-Landroid/icu/impl/CalendarAstronomer;->meanAnomalySun:D
-Landroid/icu/impl/CalendarAstronomer;->moonA:D
-Landroid/icu/impl/CalendarAstronomer;->moonE:D
-Landroid/icu/impl/CalendarAstronomer;->moonEclipLong:D
-Landroid/icu/impl/CalendarAstronomer;->moonI:D
-Landroid/icu/impl/CalendarAstronomer;->moonL0:D
-Landroid/icu/impl/CalendarAstronomer;->moonLongitude:D
-Landroid/icu/impl/CalendarAstronomer;->moonN0:D
-Landroid/icu/impl/CalendarAstronomer;->moonP0:D
-Landroid/icu/impl/CalendarAstronomer;->moonPi:D
-Landroid/icu/impl/CalendarAstronomer;->moonPosition:Landroid/icu/impl/CalendarAstronomer$Equatorial;
-Landroid/icu/impl/CalendarAstronomer;->moonT0:D
-Landroid/icu/impl/CalendarAstronomer;->norm2PI(D)D
-Landroid/icu/impl/CalendarAstronomer;->normalize(DD)D
-Landroid/icu/impl/CalendarAstronomer;->normPI(D)D
-Landroid/icu/impl/CalendarAstronomer;->PI2:D
-Landroid/icu/impl/CalendarAstronomer;->PI:D
-Landroid/icu/impl/CalendarAstronomer;->radToDms(D)Ljava/lang/String;
-Landroid/icu/impl/CalendarAstronomer;->radToHms(D)Ljava/lang/String;
-Landroid/icu/impl/CalendarAstronomer;->RAD_DEG:D
-Landroid/icu/impl/CalendarAstronomer;->RAD_HOUR:D
-Landroid/icu/impl/CalendarAstronomer;->riseOrSet(Landroid/icu/impl/CalendarAstronomer$CoordFunc;ZDDJ)J
-Landroid/icu/impl/CalendarAstronomer;->siderealT0:D
-Landroid/icu/impl/CalendarAstronomer;->siderealTime:D
-Landroid/icu/impl/CalendarAstronomer;->sunLongitude:D
-Landroid/icu/impl/CalendarAstronomer;->SUN_E:D
-Landroid/icu/impl/CalendarAstronomer;->SUN_ETA_G:D
-Landroid/icu/impl/CalendarAstronomer;->SUN_OMEGA_G:D
-Landroid/icu/impl/CalendarAstronomer;->time:J
-Landroid/icu/impl/CalendarAstronomer;->timeOfAngle(Landroid/icu/impl/CalendarAstronomer$AngleFunc;DDJZ)J
-Landroid/icu/impl/CalendarAstronomer;->trueAnomaly(DD)D
-Landroid/icu/impl/CalendarCache;->arraySize:I
-Landroid/icu/impl/CalendarCache;->findIndex(J)I
-Landroid/icu/impl/CalendarCache;->hash(J)I
-Landroid/icu/impl/CalendarCache;->hash2(J)I
-Landroid/icu/impl/CalendarCache;->keys:[J
-Landroid/icu/impl/CalendarCache;->makeArrays(I)V
-Landroid/icu/impl/CalendarCache;->pIndex:I
-Landroid/icu/impl/CalendarCache;->primes:[I
-Landroid/icu/impl/CalendarCache;->rehash()V
-Landroid/icu/impl/CalendarCache;->size:I
-Landroid/icu/impl/CalendarCache;->threshold:I
-Landroid/icu/impl/CalendarCache;->values:[J
-Landroid/icu/impl/CharTrie;->m_data_:[C
-Landroid/icu/impl/CharTrie;->m_initialValue_:C
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->DEFAULT_CTX_MATCH:Ljava/lang/String;
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->DEFAULT_CUR_MATCH:Ljava/lang/String;
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->DEFAULT_INSERT:Ljava/lang/String;
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->symbols:[[Ljava/lang/String;
-Landroid/icu/impl/CurrencyData$DefaultInfo;-><init>(Z)V
-Landroid/icu/impl/CurrencyData$DefaultInfo;->fallback:Z
-Landroid/icu/impl/CurrencyData$DefaultInfo;->FALLBACK_INSTANCE:Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
-Landroid/icu/impl/CurrencyData$DefaultInfo;->NO_FALLBACK_INSTANCE:Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->AFTER:Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->AT:Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->BEFORE:Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->FROM:Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->fromStringOrNull(Ljava/lang/CharSequence;)Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->valueOf(Ljava/lang/String;)Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;->values()[Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$DayPeriod;->fromStringOrNull(Ljava/lang/CharSequence;)Landroid/icu/impl/DayPeriodRules$DayPeriod;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink;-><init>(Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;)V
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink;->data:Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;-><init>()V
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;->localesToRuleSetNumMap:Ljava/util/Map;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;->maxRuleSetNum:I
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;->rules:[Landroid/icu/impl/DayPeriodRules;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;-><init>(Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;)V
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->addCutoff(Landroid/icu/impl/DayPeriodRules$CutoffType;Ljava/lang/String;)V
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->cutoffs:[I
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->cutoffType:Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->data:Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->parseHour(Ljava/lang/String;)I
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->period:Landroid/icu/impl/DayPeriodRules$DayPeriod;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->processRules(Landroid/icu/impl/UResource$Table;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->ruleSetNum:I
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->setDayPeriodForHoursFromCutoffs()V
-Landroid/icu/impl/DayPeriodRules;-><init>()V
-Landroid/icu/impl/DayPeriodRules;->add(IILandroid/icu/impl/DayPeriodRules$DayPeriod;)V
-Landroid/icu/impl/DayPeriodRules;->DATA:Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
-Landroid/icu/impl/DayPeriodRules;->dayPeriodForHour:[Landroid/icu/impl/DayPeriodRules$DayPeriod;
-Landroid/icu/impl/DayPeriodRules;->getEndHourForDayPeriod(Landroid/icu/impl/DayPeriodRules$DayPeriod;)I
-Landroid/icu/impl/DayPeriodRules;->getStartHourForDayPeriod(Landroid/icu/impl/DayPeriodRules$DayPeriod;)I
-Landroid/icu/impl/DayPeriodRules;->hasMidnight:Z
-Landroid/icu/impl/DayPeriodRules;->hasNoon:Z
-Landroid/icu/impl/DayPeriodRules;->loadData()Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
-Landroid/icu/impl/DayPeriodRules;->parseSetNum(Ljava/lang/String;)I
-Landroid/icu/impl/ICUBinary$DataFile;-><init>(Ljava/lang/String;)V
-Landroid/icu/impl/ICUBinary$DataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-Landroid/icu/impl/ICUBinary$DataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary$DataFile;->itemPath:Ljava/lang/String;
-Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;-><init>()V
-Landroid/icu/impl/ICUBinary$DatPackageReader;-><init>()V
-Landroid/icu/impl/ICUBinary$DatPackageReader;->addBaseName(Ljava/nio/ByteBuffer;ILjava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/util/Set;)Z
-Landroid/icu/impl/ICUBinary$DatPackageReader;->addBaseNamesInFolder(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-Landroid/icu/impl/ICUBinary$DatPackageReader;->binarySearch(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)I
-Landroid/icu/impl/ICUBinary$DatPackageReader;->DATA_FORMAT:I
-Landroid/icu/impl/ICUBinary$DatPackageReader;->getData(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary$DatPackageReader;->getDataOffset(Ljava/nio/ByteBuffer;I)I
-Landroid/icu/impl/ICUBinary$DatPackageReader;->getNameOffset(Ljava/nio/ByteBuffer;I)I
-Landroid/icu/impl/ICUBinary$DatPackageReader;->IS_ACCEPTABLE:Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;
-Landroid/icu/impl/ICUBinary$DatPackageReader;->startsWithPackageName(Ljava/nio/ByteBuffer;I)Z
-Landroid/icu/impl/ICUBinary$DatPackageReader;->validate(Ljava/nio/ByteBuffer;)Z
-Landroid/icu/impl/ICUBinary$PackageDataFile;-><init>(Ljava/lang/String;Ljava/nio/ByteBuffer;)V
-Landroid/icu/impl/ICUBinary$PackageDataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-Landroid/icu/impl/ICUBinary$PackageDataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary$PackageDataFile;->pkgBytes:Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary$SingleDataFile;-><init>(Ljava/lang/String;Ljava/io/File;)V
-Landroid/icu/impl/ICUBinary$SingleDataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-Landroid/icu/impl/ICUBinary$SingleDataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary$SingleDataFile;->path:Ljava/io/File;
-Landroid/icu/impl/ICUBinary;->addDataFilesFromFolder(Ljava/io/File;Ljava/lang/StringBuilder;Ljava/util/List;)V
-Landroid/icu/impl/ICUBinary;->addDataFilesFromPath(Ljava/lang/String;Ljava/util/List;)V
-Landroid/icu/impl/ICUBinary;->CHAR_SET_:B
-Landroid/icu/impl/ICUBinary;->CHAR_SIZE_:B
-Landroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;I)I
-Landroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;[BI)I
-Landroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Z)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary;->getDataFromFile(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary;->HEADER_AUTHENTICATION_FAILED_:Ljava/lang/String;
-Landroid/icu/impl/ICUBinary;->icuDataFiles:Ljava/util/List;
-Landroid/icu/impl/ICUBinary;->MAGIC1:B
-Landroid/icu/impl/ICUBinary;->MAGIC2:B
-Landroid/icu/impl/ICUBinary;->MAGIC_NUMBER_AUTHENTICATION_FAILED_:Ljava/lang/String;
-Landroid/icu/impl/ICUBinary;->mapFile(Ljava/io/File;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->fullNameSet:Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getLocaleList()[Ljava/util/Locale;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getLocaleNameSet()Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getULocaleList()[Landroid/icu/util/ULocale;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->loader:Ljava/lang/ClassLoader;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->locales:[Ljava/util/Locale;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->nameSet:Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->prefix:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;->ulocales:[Landroid/icu/util/ULocale;
-Landroid/icu/impl/ICUResourceBundle$Loader;-><init>()V
-Landroid/icu/impl/ICUResourceBundle$Loader;->load()Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader;)V
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;->baseName:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;->loader:Ljava/lang/ClassLoader;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;->localeID:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;->reader:Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;->topLevelKeys:Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/impl/ICUResourceBundle;->addBundleBaseNamesFromClassLoader(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
-Landroid/icu/impl/ICUResourceBundle;->addLocaleIDsFromIndexBundle(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
-Landroid/icu/impl/ICUResourceBundle;->addLocaleIDsFromListFile(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
-Landroid/icu/impl/ICUResourceBundle;->BUNDLE_CACHE:Landroid/icu/impl/CacheBase;
-Landroid/icu/impl/ICUResourceBundle;->container:Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle;->countPathKeys(Ljava/lang/String;)I
-Landroid/icu/impl/ICUResourceBundle;->createFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle;->createLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
-Landroid/icu/impl/ICUResourceBundle;->createULocaleList(Ljava/lang/String;Ljava/lang/ClassLoader;)[Landroid/icu/util/ULocale;
-Landroid/icu/impl/ICUResourceBundle;->DEBUG:Z
-Landroid/icu/impl/ICUResourceBundle;->DEFAULT_TAG:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->findResourceWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle;->findResourceWithFallback([Ljava/lang/String;ILandroid/icu/impl/ICUResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle;->findStringWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->FULL_LOCALE_NAMES_LIST:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->get(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallback(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;Landroid/icu/impl/UResource$Sink;)V
-Landroid/icu/impl/ICUResourceBundle;->getAvailEntry(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry;
-Landroid/icu/impl/ICUResourceBundle;->getBundle(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle;->getNoFallback()Z
-Landroid/icu/impl/ICUResourceBundle;->getResDepth()I
-Landroid/icu/impl/ICUResourceBundle;->getResPathKeys(Ljava/lang/String;I[Ljava/lang/String;I)V
-Landroid/icu/impl/ICUResourceBundle;->getResPathKeys([Ljava/lang/String;I)V
-Landroid/icu/impl/ICUResourceBundle;->GET_AVAILABLE_CACHE:Landroid/icu/impl/CacheBase;
-Landroid/icu/impl/ICUResourceBundle;->HYPHEN:C
-Landroid/icu/impl/ICUResourceBundle;->ICUDATA:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->ICU_RESOURCE_INDEX:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle;->LOCALE:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->localeIDStartsWithLangSubtag(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/impl/ICUResourceBundle;->RES_PATH_SEP_CHAR:C
-Landroid/icu/impl/ICUResourceBundle;->RES_PATH_SEP_STR:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundle;->wholeBundle:Landroid/icu/impl/ICUResourceBundle$WholeBundle;
-Landroid/icu/impl/ICUResourceBundleReader$Array16;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-Landroid/icu/impl/ICUResourceBundleReader$Array16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Array32;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-Landroid/icu/impl/ICUResourceBundleReader$Array32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Array;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$Container;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$Container;->getContainer16Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Container;->getContainer32Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Container;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Container;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I
-Landroid/icu/impl/ICUResourceBundleReader$Container;->getSize()I
-Landroid/icu/impl/ICUResourceBundleReader$Container;->itemsOffset:I
-Landroid/icu/impl/ICUResourceBundleReader$Container;->size:I
-Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->baseName:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->localeID:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray(Landroid/icu/impl/ICUResourceBundleReader$Array;)[Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;->reader:Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;->res:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;-><init>(II)V
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->get(I)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->keys:[I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->levelBitsList:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->mask:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->shift:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->values:[Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;-><init>(I)V
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->findSimple(I)I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->get(I)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->keys:[I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->length:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->levelBitsList:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->makeKey(I)I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->maxOffsetBits:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->NEXT_BITS:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfCleared([Ljava/lang/Object;ILjava/lang/Object;I)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->rootLevel:Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->ROOT_BITS:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->SIMPLE_LENGTH:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->storeDirectly(I)Z
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->values:[Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$Table1632;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-Landroid/icu/impl/ICUResourceBundleReader$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Table16;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-Landroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Table32;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-Landroid/icu/impl/ICUResourceBundleReader$Table32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Table;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$Table;->findTableItem(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/CharSequence;)I
-Landroid/icu/impl/ICUResourceBundleReader$Table;->getKey(Landroid/icu/impl/ICUResourceBundleReader;I)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I
-Landroid/icu/impl/ICUResourceBundleReader$Table;->key32Offsets:[I
-Landroid/icu/impl/ICUResourceBundleReader$Table;->keyOffsets:[C
-Landroid/icu/impl/ICUResourceBundleReader$Table;->URESDATA_ITEM_NOT_FOUND:I
-Landroid/icu/impl/ICUResourceBundleReader;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
-Landroid/icu/impl/ICUResourceBundleReader;->b16BitUnits:Ljava/nio/CharBuffer;
-Landroid/icu/impl/ICUResourceBundleReader;->bytes:Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUResourceBundleReader;->CACHE:Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;
-Landroid/icu/impl/ICUResourceBundleReader;->compareKeys(Ljava/lang/CharSequence;C)I
-Landroid/icu/impl/ICUResourceBundleReader;->compareKeys32(Ljava/lang/CharSequence;I)I
-Landroid/icu/impl/ICUResourceBundleReader;->dataVersion:I
-Landroid/icu/impl/ICUResourceBundleReader;->DATA_FORMAT:I
-Landroid/icu/impl/ICUResourceBundleReader;->DEBUG:Z
-Landroid/icu/impl/ICUResourceBundleReader;->emptyByteBuffer:Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUResourceBundleReader;->emptyBytes:[B
-Landroid/icu/impl/ICUResourceBundleReader;->emptyChars:[C
-Landroid/icu/impl/ICUResourceBundleReader;->emptyInts:[I
-Landroid/icu/impl/ICUResourceBundleReader;->emptyString:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->EMPTY_16_BIT_UNITS:Ljava/nio/CharBuffer;
-Landroid/icu/impl/ICUResourceBundleReader;->EMPTY_ARRAY:Landroid/icu/impl/ICUResourceBundleReader$Array;
-Landroid/icu/impl/ICUResourceBundleReader;->EMPTY_TABLE:Landroid/icu/impl/ICUResourceBundleReader$Table;
-Landroid/icu/impl/ICUResourceBundleReader;->getAlias(I)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->getArray(I)Landroid/icu/impl/ICUResourceBundleReader$Array;
-Landroid/icu/impl/ICUResourceBundleReader;->getBinary(I)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUResourceBundleReader;->getBinary(I[B)[B
-Landroid/icu/impl/ICUResourceBundleReader;->getChars(II)[C
-Landroid/icu/impl/ICUResourceBundleReader;->getIndexesInt(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->getInt(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I
-Landroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I
-Landroid/icu/impl/ICUResourceBundleReader;->getKey16String(I)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->getKey32String(I)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->getNoFallback()Z
-Landroid/icu/impl/ICUResourceBundleReader;->getReader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceBundleReader;->getResourceByteOffset(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->getRootResource()I
-Landroid/icu/impl/ICUResourceBundleReader;->getString(I)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->getStringV2(I)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->getTable(I)Landroid/icu/impl/ICUResourceBundleReader$Table;
-Landroid/icu/impl/ICUResourceBundleReader;->getTable16KeyOffsets(I)[C
-Landroid/icu/impl/ICUResourceBundleReader;->getTable32KeyOffsets(I)[I
-Landroid/icu/impl/ICUResourceBundleReader;->getTableKeyOffsets(I)[C
-Landroid/icu/impl/ICUResourceBundleReader;->getUsesPoolBundle()Z
-Landroid/icu/impl/ICUResourceBundleReader;->getVersion()Landroid/icu/util/VersionInfo;
-Landroid/icu/impl/ICUResourceBundleReader;->ICU_RESOURCE_SUFFIX:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->init(Ljava/nio/ByteBuffer;)V
-Landroid/icu/impl/ICUResourceBundleReader;->isNoInheritanceMarker(I)Z
-Landroid/icu/impl/ICUResourceBundleReader;->isPoolBundle:Z
-Landroid/icu/impl/ICUResourceBundleReader;->isStringV2NoInheritanceMarker(I)Z
-Landroid/icu/impl/ICUResourceBundleReader;->IS_ACCEPTABLE:Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable;
-Landroid/icu/impl/ICUResourceBundleReader;->keyBytes:[B
-Landroid/icu/impl/ICUResourceBundleReader;->LARGE_SIZE:I
-Landroid/icu/impl/ICUResourceBundleReader;->localKeyLimit:I
-Landroid/icu/impl/ICUResourceBundleReader;->makeKeyStringFromBytes([BI)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->makeStringFromBytes(II)Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader;->noFallback:Z
-Landroid/icu/impl/ICUResourceBundleReader;->NULL_READER:Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceBundleReader;->poolBundleReader:Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceBundleReader;->poolCheckSum:I
-Landroid/icu/impl/ICUResourceBundleReader;->poolStringIndex16Limit:I
-Landroid/icu/impl/ICUResourceBundleReader;->poolStringIndexLimit:I
-Landroid/icu/impl/ICUResourceBundleReader;->PUBLIC_TYPES:[I
-Landroid/icu/impl/ICUResourceBundleReader;->resourceCache:Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;
-Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_INT(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_OFFSET(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_TYPE(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->RES_GET_UINT(I)I
-Landroid/icu/impl/ICUResourceBundleReader;->rootRes:I
-Landroid/icu/impl/ICUResourceBundleReader;->setKeyFromKey16(ILandroid/icu/impl/UResource$Key;)V
-Landroid/icu/impl/ICUResourceBundleReader;->setKeyFromKey32(ILandroid/icu/impl/UResource$Key;)V
-Landroid/icu/impl/ICUResourceBundleReader;->URES_ATT_IS_POOL_BUNDLE:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_ATT_NO_FALLBACK:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_ATT_USES_POOL_BUNDLE:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_16BIT_TOP:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_ATTRIBUTES:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_BUNDLE_TOP:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_KEYS_TOP:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_LENGTH:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_MAX_TABLE_LENGTH:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_INDEX_POOL_CHECKSUM:I
-Landroid/icu/impl/ICUResourceBundleReader;->URES_IS_ARRAY(I)Z
-Landroid/icu/impl/ICUResourceBundleReader;->URES_IS_TABLE(I)Z
-Landroid/icu/impl/ICUResourceBundleReader;->usesPoolBundle:Z
-Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey;->_hash:I
-Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey;->_key:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale$Cache;-><init>()V
-Landroid/icu/impl/locale/BaseLocale$Cache;->createObject(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale;
-Landroid/icu/impl/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key;
-Landroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/impl/locale/BaseLocale$Key;->compareTo(Landroid/icu/impl/locale/BaseLocale$Key;)I
-Landroid/icu/impl/locale/BaseLocale$Key;->compareTo(Ljava/lang/Object;)I
-Landroid/icu/impl/locale/BaseLocale$Key;->normalize(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key;
-Landroid/icu/impl/locale/BaseLocale$Key;->_hash:I
-Landroid/icu/impl/locale/BaseLocale$Key;->_lang:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale$Key;->_regn:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale$Key;->_scrt:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale$Key;->_vart:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/impl/locale/BaseLocale;->CACHE:Landroid/icu/impl/locale/BaseLocale$Cache;
-Landroid/icu/impl/locale/BaseLocale;->JDKIMPL:Z
-Landroid/icu/impl/locale/BaseLocale;->_hash:I
-Landroid/icu/impl/locale/BaseLocale;->_language:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale;->_region:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale;->_script:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale;->_variant:Ljava/lang/String;
-Landroid/icu/impl/locale/Extension;-><init>(CLjava/lang/String;)V
-Landroid/icu/impl/locale/Extension;->_key:C
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;-><init>(C)V
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;->value()C
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;->_c:C
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;-><init>(Ljava/lang/String;)V
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;->value()Ljava/lang/String;
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;->_s:Ljava/lang/String;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/impl/locale/InternalLocaleBuilder;->JDKIMPL:Z
-Landroid/icu/impl/locale/InternalLocaleBuilder;->PRIVUSE_KEY:Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->removePrivateuseVariant(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Landroid/icu/impl/locale/InternalLocaleBuilder;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->setUnicodeLocaleExtension(Ljava/lang/String;)V
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_extensions:Ljava/util/HashMap;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_language:Ljava/lang/String;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_region:Ljava/lang/String;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_script:Ljava/lang/String;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_uattributes:Ljava/util/HashSet;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_ukeywords:Ljava/util/HashMap;
-Landroid/icu/impl/locale/InternalLocaleBuilder;->_variant:Ljava/lang/String;
-Landroid/icu/impl/locale/LanguageTag;-><init>()V
-Landroid/icu/impl/locale/LanguageTag;->GRANDFATHERED:Ljava/util/Map;
-Landroid/icu/impl/locale/LanguageTag;->JDKIMPL:Z
-Landroid/icu/impl/locale/LanguageTag;->parseExtensions(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->parseExtlangs(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->parseLanguage(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->parsePrivateuse(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->parseRegion(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->parseScript(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->parseVariants(Landroid/icu/impl/locale/StringTokenIterator;Landroid/icu/impl/locale/ParseStatus;)Z
-Landroid/icu/impl/locale/LanguageTag;->_extensions:Ljava/util/List;
-Landroid/icu/impl/locale/LanguageTag;->_extlangs:Ljava/util/List;
-Landroid/icu/impl/locale/LanguageTag;->_language:Ljava/lang/String;
-Landroid/icu/impl/locale/LanguageTag;->_privateuse:Ljava/lang/String;
-Landroid/icu/impl/locale/LanguageTag;->_region:Ljava/lang/String;
-Landroid/icu/impl/locale/LanguageTag;->_script:Ljava/lang/String;
-Landroid/icu/impl/locale/LanguageTag;->_variants:Ljava/util/List;
-Landroid/icu/impl/locale/LocaleExtensions;-><init>()V
-Landroid/icu/impl/locale/LocaleExtensions;-><init>(Ljava/util/Map;Ljava/util/Set;Ljava/util/Map;)V
-Landroid/icu/impl/locale/LocaleExtensions;->EMPTY_MAP:Ljava/util/SortedMap;
-Landroid/icu/impl/locale/LocaleExtensions;->toID(Ljava/util/SortedMap;)Ljava/lang/String;
-Landroid/icu/impl/locale/LocaleExtensions;->_id:Ljava/lang/String;
-Landroid/icu/impl/locale/LocaleExtensions;->_map:Ljava/util/SortedMap;
-Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
-Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->_key:Ljava/lang/Object;
-Landroid/icu/impl/locale/LocaleObjectCache;->cleanStaleEntries()V
-Landroid/icu/impl/locale/LocaleObjectCache;->_map:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/impl/locale/LocaleObjectCache;->_queue:Ljava/lang/ref/ReferenceQueue;
-Landroid/icu/impl/locale/LocaleSyntaxException;->_index:I
-Landroid/icu/impl/locale/ParseStatus;->_errorIndex:I
-Landroid/icu/impl/locale/ParseStatus;->_errorMsg:Ljava/lang/String;
-Landroid/icu/impl/locale/ParseStatus;->_parseLength:I
-Landroid/icu/impl/locale/StringTokenIterator;->nextDelimiter(I)I
-Landroid/icu/impl/locale/StringTokenIterator;->_dlms:Ljava/lang/String;
-Landroid/icu/impl/locale/StringTokenIterator;->_done:Z
-Landroid/icu/impl/locale/StringTokenIterator;->_end:I
-Landroid/icu/impl/locale/StringTokenIterator;->_start:I
-Landroid/icu/impl/locale/StringTokenIterator;->_text:Ljava/lang/String;
-Landroid/icu/impl/locale/StringTokenIterator;->_token:Ljava/lang/String;
-Landroid/icu/impl/locale/XCldrStub$HashMultimap;-><init>()V
-Landroid/icu/impl/locale/XCldrStub$Joiner;-><init>(Ljava/lang/String;)V
-Landroid/icu/impl/locale/XCldrStub$Joiner;->separator:Ljava/lang/String;
-Landroid/icu/impl/locale/XCldrStub$LinkedHashMultimap;-><init>()V
-Landroid/icu/impl/locale/XCldrStub$Multimap;-><init>(Ljava/util/Map;Ljava/lang/Class;)V
-Landroid/icu/impl/locale/XCldrStub$Multimap;->createSetIfMissing(Ljava/lang/Object;)Ljava/util/Set;
-Landroid/icu/impl/locale/XCldrStub$Multimap;->getInstance()Ljava/util/Set;
-Landroid/icu/impl/locale/XCldrStub$Multimap;->map:Ljava/util/Map;
-Landroid/icu/impl/locale/XCldrStub$Multimap;->setClass:Ljava/lang/Class;
-Landroid/icu/impl/locale/XCldrStub$MultimapIterator;-><init>(Ljava/util/Map;)V
-Landroid/icu/impl/locale/XCldrStub$MultimapIterator;->entry:Landroid/icu/impl/locale/XCldrStub$ReusableEntry;
-Landroid/icu/impl/locale/XCldrStub$MultimapIterator;->it1:Ljava/util/Iterator;
-Landroid/icu/impl/locale/XCldrStub$MultimapIterator;->it2:Ljava/util/Iterator;
-Landroid/icu/impl/locale/XCldrStub$ReusableEntry;-><init>()V
-Landroid/icu/impl/locale/XCldrStub$ReusableEntry;->key:Ljava/lang/Object;
-Landroid/icu/impl/locale/XCldrStub$ReusableEntry;->value:Ljava/lang/Object;
-Landroid/icu/impl/locale/XCldrStub$Splitter;->pattern:Ljava/util/regex/Pattern;
-Landroid/icu/impl/locale/XCldrStub$Splitter;->trimResults:Z
-Landroid/icu/impl/locale/XCldrStub$TreeMultimap;-><init>()V
-Landroid/icu/impl/locale/XLikelySubtags$Aliases;->toAliases:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLikelySubtags$Aliases;->toCanonical:Ljava/util/Map;
-Landroid/icu/impl/locale/XLikelySubtags$LSR;->from(Ljava/lang/String;)Landroid/icu/impl/locale/XLikelySubtags$LSR;
-Landroid/icu/impl/locale/XLikelySubtags$Maker;-><init>()V
-Landroid/icu/impl/locale/XLikelySubtags$Maker;->getSubtable(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLikelySubtags$Maker;->HASHMAP:Landroid/icu/impl/locale/XLikelySubtags$Maker;
-Landroid/icu/impl/locale/XLikelySubtags$Maker;->make()Ljava/lang/Object;
-Landroid/icu/impl/locale/XLikelySubtags$Maker;->TREEMAP:Landroid/icu/impl/locale/XLikelySubtags$Maker;
-Landroid/icu/impl/locale/XLikelySubtags;->DEFAULT:Landroid/icu/impl/locale/XLikelySubtags;
-Landroid/icu/impl/locale/XLikelySubtags;->getDefaultRawData()Ljava/util/Map;
-Landroid/icu/impl/locale/XLikelySubtags;->init(Ljava/util/Map;Z)Ljava/util/Map;
-Landroid/icu/impl/locale/XLikelySubtags;->langTable:Ljava/util/Map;
-Landroid/icu/impl/locale/XLikelySubtags;->minimizeSubtags(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale$Minimize;)Landroid/icu/impl/locale/XLikelySubtags$LSR;
-Landroid/icu/impl/locale/XLikelySubtags;->set(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/XLikelySubtags$LSR;)V
-Landroid/icu/impl/locale/XLikelySubtags;->set(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
-Landroid/icu/impl/locale/XLikelySubtags;->show(Ljava/util/Map;Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)V
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;->desiredSub:Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;->r:Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;->supportedSub:Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;->test(Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;)Z
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;->test(Ljava/lang/Object;)Z
-Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;-><init>()V
-Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;->compact(Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;)Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;
-Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;->compact(Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;
-Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;->compact(Ljava/util/Map;I)Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;-><init>(Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)V
-Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;->test(Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;)Z
-Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;->test(Ljava/lang/Object;)Z
-Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;->toCopy:Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;
-Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;->distance:I
-Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;->getCloser(I)Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;->getDistance(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/Output;Z)I
-Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;->toString(Z)Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;-><init>()V
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;-><init>(Ljava/lang/String;)V
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->add(Ljava/lang/Object;)Ljava/lang/Integer;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->fromId(I)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->getOldAndAdd(Ljava/lang/Object;)Ljava/lang/Integer;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->intern(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->intToObject:Ljava/util/List;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->name:Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->objectToInt:Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->size()I
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->toId(Ljava/lang/Object;)Ljava/lang/Integer;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->toId(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$IdMapper;->toId(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;-><init>()V
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->add(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->build()Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->paradigms:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->regionSet:Landroid/icu/impl/locale/XLocaleDistance$RegionSet;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->regionToRawPartition:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;-><init>(Landroid/icu/impl/locale/XCldrStub$Multimap;Ljava/util/Map;Landroid/icu/impl/locale/XCldrStub$Multimap;Ljava/util/Set;)V
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->getIdsFromVariable(Ljava/lang/String;)Ljava/util/Collection;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->macroToPartitions:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->paradigms:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->regions()Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->regionToPartition:Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->toId(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->toId(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->variables()Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->variableToPartition:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->add:Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->remove:Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->valueOf(Ljava/lang/String;)Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->values()[Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;-><init>()V
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->add(Ljava/lang/String;II)V
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->changeSet(Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;Ljava/lang/String;)V
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->inverse()Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->operation:Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->parseSet(Ljava/lang/String;)Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->tempRegions:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;-><init>(I)V
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;-><init>(ILandroid/icu/impl/locale/XLocaleDistance$DistanceTable;)V
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;->addSubtables(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;)V
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;->copyTables(Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)V
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;->distanceTable:Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;-><init>()V
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;-><init>(Ljava/util/Map;)V
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;->addSubtable(Ljava/lang/String;Ljava/lang/String;I)Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;->getNode(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;->subtables:Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance;->ALL_FINAL_REGIONS:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance;->CONTAINER_TO_CONTAINED:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance;->CONTAINER_TO_CONTAINED_FINAL:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance;->DEFAULT:Landroid/icu/impl/locale/XLocaleDistance;
-Landroid/icu/impl/locale/XLocaleDistance;->defaultLanguageDistance:I
-Landroid/icu/impl/locale/XLocaleDistance;->defaultRegionDistance:I
-Landroid/icu/impl/locale/XLocaleDistance;->defaultScriptDistance:I
-Landroid/icu/impl/locale/XLocaleDistance;->english:Landroid/icu/text/LocaleDisplayNames;
-Landroid/icu/impl/locale/XLocaleDistance;->fill(Ljava/lang/String;Landroid/icu/impl/locale/XCldrStub$TreeMultimap;Landroid/icu/impl/locale/XCldrStub$Multimap;)Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance;->fixAny(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance;->fixedName(Ljava/util/List;)Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance;->getContainingMacrosFor(Ljava/util/Collection;Ljava/util/Set;)Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance;->languageDesired2Supported:Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;
-Landroid/icu/impl/locale/XLocaleDistance;->newMap()Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance;->printMatchXml(Ljava/util/List;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Boolean;)V
-Landroid/icu/impl/locale/XLocaleDistance;->PRINT_OVERRIDES:Z
-Landroid/icu/impl/locale/XLocaleDistance;->regionMapper:Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;
-Landroid/icu/impl/locale/XLocaleDistance;->xGetContainment()Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance;->xGetLanguageMatcherData()Ljava/util/List;
-Landroid/icu/impl/locale/XLocaleDistance;->xGetMatchVariables()Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance;->xGetParadigmLocales()Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleMatcher$Builder;->defaultLanguage:Landroid/icu/util/ULocale;
-Landroid/icu/impl/locale/XLocaleMatcher$Builder;->demotionPerAdditionalDesiredLocale:I
-Landroid/icu/impl/locale/XLocaleMatcher$Builder;->distanceOption:Landroid/icu/impl/locale/XLocaleDistance$DistanceOption;
-Landroid/icu/impl/locale/XLocaleMatcher$Builder;->localeDistance:Landroid/icu/impl/locale/XLocaleDistance;
-Landroid/icu/impl/locale/XLocaleMatcher$Builder;->supportedLanguagesList:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleMatcher$Builder;->thresholdDistance:I
-Landroid/icu/impl/locale/XLocaleMatcher;-><init>(Landroid/icu/impl/locale/XLocaleMatcher$Builder;)V
-Landroid/icu/impl/locale/XLocaleMatcher;->asSet(Landroid/icu/util/LocalePriorityList;)Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleMatcher;->defaultLanguage:Landroid/icu/util/ULocale;
-Landroid/icu/impl/locale/XLocaleMatcher;->demotionPerAdditionalDesiredLocale:I
-Landroid/icu/impl/locale/XLocaleMatcher;->distanceOption:Landroid/icu/impl/locale/XLocaleDistance$DistanceOption;
-Landroid/icu/impl/locale/XLocaleMatcher;->exactSupportedLocales:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleMatcher;->extractLsrMap(Ljava/util/Set;Ljava/util/Set;)Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleMatcher;->extractLsrSet(Ljava/util/Set;)Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleMatcher;->localeDistance:Landroid/icu/impl/locale/XLocaleDistance;
-Landroid/icu/impl/locale/XLocaleMatcher;->supportedLanguages:Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleMatcher;->thresholdDistance:I
-Landroid/icu/impl/locale/XLocaleMatcher;->UND:Landroid/icu/impl/locale/XLikelySubtags$LSR;
-Landroid/icu/impl/locale/XLocaleMatcher;->UND_LOCALE:Landroid/icu/util/ULocale;
-Landroid/icu/impl/Normalizer2Impl$IsAcceptable;-><init>()V
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->app:Ljava/lang/Appendable;
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->appIsStringBuilder:Z
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->codePointLimit:I
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->codePointStart:I
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->impl:Landroid/icu/impl/Normalizer2Impl;
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->insert(II)V
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->lastCC:I
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->previousCC()I
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->reorderStart:I
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->setIterator()V
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->skipPrevious()V
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->str:Ljava/lang/StringBuilder;
-Landroid/icu/impl/Normalizer2Impl;->addComposites(ILandroid/icu/text/UnicodeSet;)V
-Landroid/icu/impl/Normalizer2Impl;->addToStartSet(Landroid/icu/impl/Trie2Writable;II)V
-Landroid/icu/impl/Normalizer2Impl;->canonIterData:Landroid/icu/impl/Trie2_32;
-Landroid/icu/impl/Normalizer2Impl;->canonStartSets:Ljava/util/ArrayList;
-Landroid/icu/impl/Normalizer2Impl;->CANON_HAS_COMPOSITIONS:I
-Landroid/icu/impl/Normalizer2Impl;->CANON_HAS_SET:I
-Landroid/icu/impl/Normalizer2Impl;->CANON_NOT_SEGMENT_STARTER:I
-Landroid/icu/impl/Normalizer2Impl;->CANON_VALUE_MASK:I
-Landroid/icu/impl/Normalizer2Impl;->centerNoNoDelta:I
-Landroid/icu/impl/Normalizer2Impl;->combine(Ljava/lang/String;II)I
-Landroid/icu/impl/Normalizer2Impl;->dataVersion:Landroid/icu/util/VersionInfo;
-Landroid/icu/impl/Normalizer2Impl;->DATA_FORMAT:I
-Landroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
-Landroid/icu/impl/Normalizer2Impl;->decomposeShort(Ljava/lang/CharSequence;IIZZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I
-Landroid/icu/impl/Normalizer2Impl;->enumLcccRange(IIILandroid/icu/text/UnicodeSet;)V
-Landroid/icu/impl/Normalizer2Impl;->enumNorm16PropertyStartsRange(IIILandroid/icu/text/UnicodeSet;)V
-Landroid/icu/impl/Normalizer2Impl;->extraData:Ljava/lang/String;
-Landroid/icu/impl/Normalizer2Impl;->findNextCompBoundary(Ljava/lang/CharSequence;IIZ)I
-Landroid/icu/impl/Normalizer2Impl;->findNextFCDBoundary(Ljava/lang/CharSequence;II)I
-Landroid/icu/impl/Normalizer2Impl;->findPreviousCompBoundary(Ljava/lang/CharSequence;IZ)I
-Landroid/icu/impl/Normalizer2Impl;->findPreviousFCDBoundary(Ljava/lang/CharSequence;I)I
-Landroid/icu/impl/Normalizer2Impl;->getCCFromNoNo(I)I
-Landroid/icu/impl/Normalizer2Impl;->getCompositionsList(I)I
-Landroid/icu/impl/Normalizer2Impl;->getCompositionsListForComposite(I)I
-Landroid/icu/impl/Normalizer2Impl;->getCompositionsListForDecompYes(I)I
-Landroid/icu/impl/Normalizer2Impl;->getCompositionsListForMaybe(I)I
-Landroid/icu/impl/Normalizer2Impl;->getPreviousTrailCC(Ljava/lang/CharSequence;II)I
-Landroid/icu/impl/Normalizer2Impl;->getTrailCCFromCompYesAndZeroCC(I)I
-Landroid/icu/impl/Normalizer2Impl;->hangulLVT()I
-Landroid/icu/impl/Normalizer2Impl;->hasCompBoundaryAfter(Ljava/lang/CharSequence;IIZ)Z
-Landroid/icu/impl/Normalizer2Impl;->hasCompBoundaryBefore(II)Z
-Landroid/icu/impl/Normalizer2Impl;->hasCompBoundaryBefore(Ljava/lang/CharSequence;II)Z
-Landroid/icu/impl/Normalizer2Impl;->isCompYesAndZeroCC(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isDecompNoAlgorithmic(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isDecompYesAndZeroCC(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isHangulLV(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isHangulLVT(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isInert(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isJamoL(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isJamoVT(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isMaybe(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isMaybeOrNonZeroCC(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isMostDecompYesAndZeroCC(I)Z
-Landroid/icu/impl/Normalizer2Impl;->isTrailCC01ForCompBoundaryAfter(I)Z
-Landroid/icu/impl/Normalizer2Impl;->IS_ACCEPTABLE:Landroid/icu/impl/Normalizer2Impl$IsAcceptable;
-Landroid/icu/impl/Normalizer2Impl;->limitNoNo:I
-Landroid/icu/impl/Normalizer2Impl;->mapAlgorithmic(II)I
-Landroid/icu/impl/Normalizer2Impl;->maybeYesCompositions:Ljava/lang/String;
-Landroid/icu/impl/Normalizer2Impl;->minCompNoMaybeCP:I
-Landroid/icu/impl/Normalizer2Impl;->minDecompNoCP:I
-Landroid/icu/impl/Normalizer2Impl;->minLcccCP:I
-Landroid/icu/impl/Normalizer2Impl;->minMaybeYes:I
-Landroid/icu/impl/Normalizer2Impl;->minNoNo:I
-Landroid/icu/impl/Normalizer2Impl;->minNoNoCompBoundaryBefore:I
-Landroid/icu/impl/Normalizer2Impl;->minNoNoCompNoMaybeCC:I
-Landroid/icu/impl/Normalizer2Impl;->minNoNoEmpty:I
-Landroid/icu/impl/Normalizer2Impl;->minYesNo:I
-Landroid/icu/impl/Normalizer2Impl;->minYesNoMappingsOnly:I
-Landroid/icu/impl/Normalizer2Impl;->norm16HasCompBoundaryAfter(IZ)Z
-Landroid/icu/impl/Normalizer2Impl;->norm16HasCompBoundaryBefore(I)Z
-Landroid/icu/impl/Normalizer2Impl;->normTrie:Landroid/icu/impl/Trie2_16;
-Landroid/icu/impl/Normalizer2Impl;->recompose(Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;IZ)V
-Landroid/icu/impl/Normalizer2Impl;->segmentStarterMapper:Landroid/icu/impl/Trie2$ValueMapper;
-Landroid/icu/impl/Normalizer2Impl;->smallFCD:[B
-Landroid/icu/impl/number/AffixUtils;->getCodePoint(J)I
-Landroid/icu/impl/number/AffixUtils;->getOffset(J)I
-Landroid/icu/impl/number/AffixUtils;->getState(J)I
-Landroid/icu/impl/number/AffixUtils;->getType(J)I
-Landroid/icu/impl/number/AffixUtils;->makeTag(IIII)J
-Landroid/icu/impl/number/AffixUtils;->STATE_AFTER_QUOTE:I
-Landroid/icu/impl/number/AffixUtils;->STATE_BASE:I
-Landroid/icu/impl/number/AffixUtils;->STATE_FIFTH_CURR:I
-Landroid/icu/impl/number/AffixUtils;->STATE_FIRST_CURR:I
-Landroid/icu/impl/number/AffixUtils;->STATE_FIRST_QUOTE:I
-Landroid/icu/impl/number/AffixUtils;->STATE_FOURTH_CURR:I
-Landroid/icu/impl/number/AffixUtils;->STATE_INSIDE_QUOTE:I
-Landroid/icu/impl/number/AffixUtils;->STATE_OVERFLOW_CURR:I
-Landroid/icu/impl/number/AffixUtils;->STATE_SECOND_CURR:I
-Landroid/icu/impl/number/AffixUtils;->STATE_THIRD_CURR:I
-Landroid/icu/impl/number/AffixUtils;->TYPE_CODEPOINT:I
-Landroid/icu/impl/number/CompactData$CompactDataSink;-><init>(Landroid/icu/impl/number/CompactData;)V
-Landroid/icu/impl/number/CompactData$CompactDataSink;->data:Landroid/icu/impl/number/CompactData;
-Landroid/icu/impl/number/CompactData;->COMPACT_MAX_DIGITS:I
-Landroid/icu/impl/number/CompactData;->countZeros(Ljava/lang/String;)I
-Landroid/icu/impl/number/CompactData;->getIndex(ILandroid/icu/impl/StandardPlural;)I
-Landroid/icu/impl/number/CompactData;->getResourceBundleKey(Ljava/lang/String;Landroid/icu/text/CompactDecimalFormat$CompactStyle;Landroid/icu/impl/number/CompactData$CompactType;Ljava/lang/StringBuilder;)V
-Landroid/icu/impl/number/CompactData;->isEmpty:Z
-Landroid/icu/impl/number/CompactData;->largestMagnitude:B
-Landroid/icu/impl/number/CompactData;->multipliers:[B
-Landroid/icu/impl/number/CompactData;->patterns:[Ljava/lang/String;
-Landroid/icu/impl/number/CompactData;->USE_FALLBACK:Ljava/lang/String;
-Landroid/icu/impl/number/ConstantMultiFieldModifier;->strong:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->compactCustomData:Ljava/util/Map;
-Landroid/icu/impl/number/DecimalFormatProperties;->compactStyle:Landroid/icu/text/CompactDecimalFormat$CompactStyle;
-Landroid/icu/impl/number/DecimalFormatProperties;->currency:Landroid/icu/util/Currency;
-Landroid/icu/impl/number/DecimalFormatProperties;->currencyPluralInfo:Landroid/icu/text/CurrencyPluralInfo;
-Landroid/icu/impl/number/DecimalFormatProperties;->currencyUsage:Landroid/icu/util/Currency$CurrencyUsage;
-Landroid/icu/impl/number/DecimalFormatProperties;->decimalPatternMatchRequired:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->decimalSeparatorAlwaysShown:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->DEFAULT:Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/impl/number/DecimalFormatProperties;->exponentSignAlwaysShown:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->formatWidth:I
-Landroid/icu/impl/number/DecimalFormatProperties;->groupingSize:I
-Landroid/icu/impl/number/DecimalFormatProperties;->magnitudeMultiplier:I
-Landroid/icu/impl/number/DecimalFormatProperties;->mathContext:Ljava/math/MathContext;
-Landroid/icu/impl/number/DecimalFormatProperties;->maximumFractionDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->maximumIntegerDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->maximumSignificantDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->minimumExponentDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->minimumFractionDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->minimumGroupingDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->minimumIntegerDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->minimumSignificantDigits:I
-Landroid/icu/impl/number/DecimalFormatProperties;->multiplier:Ljava/math/BigDecimal;
-Landroid/icu/impl/number/DecimalFormatProperties;->negativePrefix:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->negativePrefixPattern:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->negativeSuffix:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->negativeSuffixPattern:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->padPosition:Landroid/icu/impl/number/Padder$PadPosition;
-Landroid/icu/impl/number/DecimalFormatProperties;->padString:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->parseCaseSensitive:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->parseGroupingMode:Landroid/icu/impl/number/Parse$GroupingMode;
-Landroid/icu/impl/number/DecimalFormatProperties;->parseIntegerOnly:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->parseMode:Landroid/icu/impl/number/Parse$ParseMode;
-Landroid/icu/impl/number/DecimalFormatProperties;->parseNoExponent:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->parseToBigDecimal:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->pluralRules:Landroid/icu/text/PluralRules;
-Landroid/icu/impl/number/DecimalFormatProperties;->positivePrefix:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->positivePrefixPattern:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->positiveSuffix:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->positiveSuffixPattern:Ljava/lang/String;
-Landroid/icu/impl/number/DecimalFormatProperties;->readObjectImpl(Ljava/io/ObjectInputStream;)V
-Landroid/icu/impl/number/DecimalFormatProperties;->roundingIncrement:Ljava/math/BigDecimal;
-Landroid/icu/impl/number/DecimalFormatProperties;->roundingMode:Ljava/math/RoundingMode;
-Landroid/icu/impl/number/DecimalFormatProperties;->secondaryGroupingSize:I
-Landroid/icu/impl/number/DecimalFormatProperties;->signAlwaysShown:Z
-Landroid/icu/impl/number/DecimalFormatProperties;->writeObjectImpl(Ljava/io/ObjectOutputStream;)V
-Landroid/icu/impl/number/DecimalFormatProperties;->_clear()Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/impl/number/DecimalFormatProperties;->_copyFrom(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/impl/number/DecimalFormatProperties;->_equals(Landroid/icu/impl/number/DecimalFormatProperties;)Z
-Landroid/icu/impl/number/DecimalFormatProperties;->_equalsHelper(II)Z
-Landroid/icu/impl/number/DecimalFormatProperties;->_equalsHelper(Ljava/lang/Object;Ljava/lang/Object;)Z
-Landroid/icu/impl/number/DecimalFormatProperties;->_equalsHelper(ZZ)Z
-Landroid/icu/impl/number/DecimalFormatProperties;->_hashCode()I
-Landroid/icu/impl/number/DecimalFormatProperties;->_hashCodeHelper(I)I
-Landroid/icu/impl/number/DecimalFormatProperties;->_hashCodeHelper(Ljava/lang/Object;)I
-Landroid/icu/impl/number/DecimalFormatProperties;->_hashCodeHelper(Z)I
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->convertToAccurateDouble()V
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->DOUBLE_MULTIPLIERS:[D
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fractionCount()I
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fractionCountWithoutTrailingZeros()I
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->safeSubtract(II)I
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->SECTION_LOWER_EDGE:I
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->SECTION_UPPER_EDGE:I
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigDecimal(Ljava/math/BigDecimal;)V
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigInteger(Ljava/math/BigInteger;)V
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToInt(I)V
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->bcdBytes:[B
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->bcdLong:J
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->ensureCapacity()V
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->ensureCapacity(I)V
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->switchStorage()V
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->usingBytes:Z
-Landroid/icu/impl/number/MicroProps;->exhausted:Z
-Landroid/icu/impl/number/MicroProps;->immutable:Z
-Landroid/icu/impl/number/MultiplierImpl;-><init>(Landroid/icu/impl/number/MultiplierImpl;Landroid/icu/impl/number/MicroPropsGenerator;)V
-Landroid/icu/impl/number/MultiplierImpl;->bigDecimalMultiplier:Ljava/math/BigDecimal;
-Landroid/icu/impl/number/MultiplierImpl;->magnitudeMultiplier:I
-Landroid/icu/impl/number/MultiplierImpl;->parent:Landroid/icu/impl/number/MicroPropsGenerator;
-Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;-><init>(Landroid/icu/impl/number/ParameterizedModifier;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)V
-Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->parent:Landroid/icu/impl/number/MicroPropsGenerator;
-Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->pm:Landroid/icu/impl/number/ParameterizedModifier;
-Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->rules:Landroid/icu/text/PluralRules;
-Landroid/icu/impl/number/MutablePatternModifier;->createConstantModifier(Landroid/icu/impl/number/NumberStringBuilder;Landroid/icu/impl/number/NumberStringBuilder;)Landroid/icu/impl/number/ConstantMultiFieldModifier;
-Landroid/icu/impl/number/MutablePatternModifier;->currency:Landroid/icu/util/Currency;
-Landroid/icu/impl/number/MutablePatternModifier;->enterCharSequenceMode(Z)V
-Landroid/icu/impl/number/MutablePatternModifier;->exitCharSequenceMode()V
-Landroid/icu/impl/number/MutablePatternModifier;->flags:I
-Landroid/icu/impl/number/MutablePatternModifier;->inCharSequenceMode:Z
-Landroid/icu/impl/number/MutablePatternModifier;->insertPrefix(Landroid/icu/impl/number/NumberStringBuilder;I)I
-Landroid/icu/impl/number/MutablePatternModifier;->insertSuffix(Landroid/icu/impl/number/NumberStringBuilder;I)I
-Landroid/icu/impl/number/MutablePatternModifier;->isNegative:Z
-Landroid/icu/impl/number/MutablePatternModifier;->isStrong:Z
-Landroid/icu/impl/number/MutablePatternModifier;->length:I
-Landroid/icu/impl/number/MutablePatternModifier;->parent:Landroid/icu/impl/number/MicroPropsGenerator;
-Landroid/icu/impl/number/MutablePatternModifier;->patternInfo:Landroid/icu/impl/number/AffixPatternProvider;
-Landroid/icu/impl/number/MutablePatternModifier;->perMilleReplacesPercent:Z
-Landroid/icu/impl/number/MutablePatternModifier;->plural:Landroid/icu/impl/StandardPlural;
-Landroid/icu/impl/number/MutablePatternModifier;->plusReplacesMinusSign:Z
-Landroid/icu/impl/number/MutablePatternModifier;->prependSign:Z
-Landroid/icu/impl/number/MutablePatternModifier;->rules:Landroid/icu/text/PluralRules;
-Landroid/icu/impl/number/MutablePatternModifier;->signDisplay:Landroid/icu/number/NumberFormatter$SignDisplay;
-Landroid/icu/impl/number/MutablePatternModifier;->symbols:Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/impl/number/MutablePatternModifier;->unitWidth:Landroid/icu/number/NumberFormatter$UnitWidth;
-Landroid/icu/impl/number/NumberStringBuilder;->chars:[C
-Landroid/icu/impl/number/NumberStringBuilder;->fields:[Landroid/icu/text/NumberFormat$Field;
-Landroid/icu/impl/number/NumberStringBuilder;->fieldToDebugChar:Ljava/util/Map;
-Landroid/icu/impl/number/NumberStringBuilder;->getCapacity()I
-Landroid/icu/impl/number/NumberStringBuilder;->length:I
-Landroid/icu/impl/number/NumberStringBuilder;->prepareForInsert(II)I
-Landroid/icu/impl/number/NumberStringBuilder;->prepareForInsertHelper(II)I
-Landroid/icu/impl/number/NumberStringBuilder;->zero:I
-Landroid/icu/impl/number/Padder;->addPaddingHelper(Ljava/lang/String;ILandroid/icu/impl/number/NumberStringBuilder;I)I
-Landroid/icu/impl/number/Padder;->paddingString:Ljava/lang/String;
-Landroid/icu/impl/number/Padder;->position:Landroid/icu/impl/number/Padder$PadPosition;
-Landroid/icu/impl/number/Padder;->targetWidth:I
-Landroid/icu/impl/number/ParameterizedModifier;->frozen:Z
-Landroid/icu/impl/number/ParameterizedModifier;->getModIndex(ZLandroid/icu/impl/StandardPlural;)I
-Landroid/icu/impl/number/ParameterizedModifier;->mods:[Landroid/icu/impl/number/Modifier;
-Landroid/icu/impl/number/ParameterizedModifier;->negative:Landroid/icu/impl/number/Modifier;
-Landroid/icu/impl/number/ParameterizedModifier;->positive:Landroid/icu/impl/number/Modifier;
-Landroid/icu/impl/number/Parse$AffixHolder;-><init>(Ljava/lang/String;Ljava/lang/String;ZZ)V
-Landroid/icu/impl/number/Parse$AffixHolder;->addToState(Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/DecimalFormatProperties;)V
-Landroid/icu/impl/number/Parse$AffixHolder;->EMPTY_NEGATIVE:Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->EMPTY_POSITIVE:Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesNegativePattern(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesNegativeString(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesPositivePattern(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->fromPropertiesPositiveString(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->getInstance(Ljava/lang/String;Ljava/lang/String;ZZ)Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$AffixHolder;->negative:Z
-Landroid/icu/impl/number/Parse$AffixHolder;->p:Ljava/lang/String;
-Landroid/icu/impl/number/Parse$AffixHolder;->s:Ljava/lang/String;
-Landroid/icu/impl/number/Parse$AffixHolder;->strings:Z
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->addPattern(Ljava/lang/String;)V
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->addToState(Landroid/icu/util/ULocale;Landroid/icu/impl/number/Parse$ParserState;)V
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->currencyAffixPatterns:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->set:Ljava/util/Set;
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->threadLocalProperties:Ljava/lang/ThreadLocal;
-Landroid/icu/impl/number/Parse$DigitType;->EXPONENT:Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$DigitType;->FRACTION:Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$DigitType;->INTEGER:Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$DigitType;->valueOf(Ljava/lang/String;)Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$DigitType;->values()[Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$ParserState;-><init>()V
-Landroid/icu/impl/number/Parse$ParserState;->affixHolders:Ljava/util/Set;
-Landroid/icu/impl/number/Parse$ParserState;->caseSensitive:Z
-Landroid/icu/impl/number/Parse$ParserState;->clear()Landroid/icu/impl/number/Parse$ParserState;
-Landroid/icu/impl/number/Parse$ParserState;->decimalCp1:I
-Landroid/icu/impl/number/Parse$ParserState;->decimalCp2:I
-Landroid/icu/impl/number/Parse$ParserState;->decimalType1:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$ParserState;->decimalType2:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$ParserState;->digitTrie:Landroid/icu/impl/TextTrieMap;
-Landroid/icu/impl/number/Parse$ParserState;->getItem(I)Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/Parse$ParserState;->getNext()Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/Parse$ParserState;->groupingCp1:I
-Landroid/icu/impl/number/Parse$ParserState;->groupingCp2:I
-Landroid/icu/impl/number/Parse$ParserState;->groupingMode:Landroid/icu/impl/number/Parse$GroupingMode;
-Landroid/icu/impl/number/Parse$ParserState;->groupingType1:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$ParserState;->groupingType2:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$ParserState;->items:[Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/Parse$ParserState;->lastInsertedIndex()I
-Landroid/icu/impl/number/Parse$ParserState;->length:I
-Landroid/icu/impl/number/Parse$ParserState;->mode:Landroid/icu/impl/number/Parse$ParseMode;
-Landroid/icu/impl/number/Parse$ParserState;->parseCurrency:Z
-Landroid/icu/impl/number/Parse$ParserState;->prevItems:[Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/Parse$ParserState;->prevLength:I
-Landroid/icu/impl/number/Parse$ParserState;->properties:Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/impl/number/Parse$ParserState;->swap()V
-Landroid/icu/impl/number/Parse$ParserState;->swapBack()V
-Landroid/icu/impl/number/Parse$ParserState;->symbols:Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/impl/number/Parse$SeparatorType;->COMMA_LIKE:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;->fromCp(ILandroid/icu/impl/number/Parse$ParseMode;)Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;->OTHER_GROUPING:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;->PERIOD_LIKE:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;->UNKNOWN:Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;->valueOf(Ljava/lang/String;)Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;->values()[Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$StateItem;-><init>(C)V
-Landroid/icu/impl/number/Parse$StateItem;->affix:Landroid/icu/impl/number/Parse$AffixHolder;
-Landroid/icu/impl/number/Parse$StateItem;->appendDigit(BLandroid/icu/impl/number/Parse$DigitType;)V
-Landroid/icu/impl/number/Parse$StateItem;->clear()Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/Parse$StateItem;->copyFrom(Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$StateName;I)Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/Parse$StateItem;->currentAffixPattern:Ljava/lang/CharSequence;
-Landroid/icu/impl/number/Parse$StateItem;->currentCurrencyTrieState:Landroid/icu/impl/TextTrieMap$ParseState;
-Landroid/icu/impl/number/Parse$StateItem;->currentDigitTrieState:Landroid/icu/impl/TextTrieMap$ParseState;
-Landroid/icu/impl/number/Parse$StateItem;->currentDigitType:Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$StateItem;->currentOffset:I
-Landroid/icu/impl/number/Parse$StateItem;->currentStepwiseParserTag:J
-Landroid/icu/impl/number/Parse$StateItem;->currentString:Ljava/lang/CharSequence;
-Landroid/icu/impl/number/Parse$StateItem;->currentTrailing:Z
-Landroid/icu/impl/number/Parse$StateItem;->exponent:I
-Landroid/icu/impl/number/Parse$StateItem;->fq:Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-Landroid/icu/impl/number/Parse$StateItem;->groupingCp:I
-Landroid/icu/impl/number/Parse$StateItem;->groupingWidths:J
-Landroid/icu/impl/number/Parse$StateItem;->hasNumber()Z
-Landroid/icu/impl/number/Parse$StateItem;->id:C
-Landroid/icu/impl/number/Parse$StateItem;->isoCode:Ljava/lang/String;
-Landroid/icu/impl/number/Parse$StateItem;->name:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateItem;->numDigits:I
-Landroid/icu/impl/number/Parse$StateItem;->path:Ljava/lang/String;
-Landroid/icu/impl/number/Parse$StateItem;->returnTo1:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateItem;->returnTo2:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateItem;->sawCurrency:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawDecimalPoint:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawExponentDigit:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawInfinity:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawNaN:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawNegative:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawNegativeExponent:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawPrefix:Z
-Landroid/icu/impl/number/Parse$StateItem;->sawSuffix:Z
-Landroid/icu/impl/number/Parse$StateItem;->score:I
-Landroid/icu/impl/number/Parse$StateItem;->toCurrencyAmount(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/util/CurrencyAmount;
-Landroid/icu/impl/number/Parse$StateItem;->toNumber(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/lang/Number;
-Landroid/icu/impl/number/Parse$StateItem;->trailingCount:I
-Landroid/icu/impl/number/Parse$StateItem;->trailingZeros:I
-Landroid/icu/impl/number/Parse$StateName;->AFTER_EXPONENT_DIGIT:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->AFTER_EXPONENT_SEPARATOR:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->AFTER_FRACTION_DIGIT:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->AFTER_INTEGER_DIGIT:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->AFTER_PREFIX:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->AFTER_SUFFIX:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->BEFORE_PREFIX:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->BEFORE_SUFFIX:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->BEFORE_SUFFIX_SEEN_EXPONENT:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->INSIDE_AFFIX_PATTERN:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->INSIDE_CURRENCY:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->INSIDE_DIGIT:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->INSIDE_STRING:Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->valueOf(Ljava/lang/String;)Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;->values()[Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse;->acceptAffixHolder(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$AffixHolder;Z)V
-Landroid/icu/impl/number/Parse;->acceptAffixPattern(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;J)J
-Landroid/icu/impl/number/Parse;->acceptAffixPatternHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;J)J
-Landroid/icu/impl/number/Parse;->acceptAffixPatternNonIgnorable(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;IJJ)J
-Landroid/icu/impl/number/Parse;->acceptAffixPatternOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)J
-Landroid/icu/impl/number/Parse;->acceptBidi(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptCurrency(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptCurrency(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)J
-Landroid/icu/impl/number/Parse;->acceptCurrencyHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/TextTrieMap$ParseState;)J
-Landroid/icu/impl/number/Parse;->acceptCurrencyOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptDecimalPoint(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptDigitHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$DigitType;)V
-Landroid/icu/impl/number/Parse;->acceptDigitTrie(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$DigitType;)J
-Landroid/icu/impl/number/Parse;->acceptDigitTrieHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Landroid/icu/impl/number/Parse$DigitType;Landroid/icu/impl/TextTrieMap$ParseState;)J
-Landroid/icu/impl/number/Parse;->acceptDigitTrieOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptExponentDigit(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptExponentSeparator(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptFractionDigit(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptGrouping(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptInfinity(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptIntegerDigit(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptMinusOrPlusSign(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Z)V
-Landroid/icu/impl/number/Parse;->acceptMinusSign(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Z)J
-Landroid/icu/impl/number/Parse;->acceptNan(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptPadding(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptPlusSign(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Z)J
-Landroid/icu/impl/number/Parse;->acceptPrefix(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptString(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;IZ)J
-Landroid/icu/impl/number/Parse;->acceptStringHelper(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;IZ)J
-Landroid/icu/impl/number/Parse;->acceptStringNonIgnorable(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;ZIJJ)J
-Landroid/icu/impl/number/Parse;->acceptStringOffset(ILandroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)J
-Landroid/icu/impl/number/Parse;->acceptStringOrAffixPatternWithIgnorables(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;Ljava/lang/CharSequence;JZZ)J
-Landroid/icu/impl/number/Parse;->acceptSuffix(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->acceptWhitespace(ILandroid/icu/impl/number/Parse$StateName;Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/Parse$StateItem;)V
-Landroid/icu/impl/number/Parse;->codePointEquals(IILandroid/icu/impl/number/Parse$ParserState;)Z
-Landroid/icu/impl/number/Parse;->isIgnorable(ILandroid/icu/impl/number/Parse$ParserState;)Z
-Landroid/icu/impl/number/Parse;->makeDigitTrie([Ljava/lang/String;)Landroid/icu/impl/TextTrieMap;
-Landroid/icu/impl/number/Parse;->MAX_LONG_AS_BIG_DECIMAL:Ljava/math/BigDecimal;
-Landroid/icu/impl/number/Parse;->MIN_LONG_AS_BIG_DECIMAL:Ljava/math/BigDecimal;
-Landroid/icu/impl/number/Parse;->recordDigit(Landroid/icu/impl/number/Parse$StateItem;BLandroid/icu/impl/number/Parse$DigitType;)V
-Landroid/icu/impl/number/Parse;->UNISET_BIDI:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->UNISET_COMMA_LIKE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->UNISET_OTHER_GROUPING_SEPARATORS:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->UNISET_PERIOD_LIKE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->UNISET_STRICT_COMMA_LIKE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->UNISET_STRICT_PERIOD_LIKE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->UNISET_WHITESPACE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/number/Parse;->_parse(Ljava/lang/CharSequence;Ljava/text/ParsePosition;ZLandroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/impl/number/Parse$StateItem;
-Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;-><init>(Ljava/lang/String;)V
-Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getEndpoints(I)J
-Landroid/icu/impl/number/PatternStringParser$ParserState;-><init>(Ljava/lang/String;)V
-Landroid/icu/impl/number/PatternStringParser$ParserState;->next()I
-Landroid/icu/impl/number/PatternStringParser$ParserState;->offset:I
-Landroid/icu/impl/number/PatternStringParser$ParserState;->pattern:Ljava/lang/String;
-Landroid/icu/impl/number/PatternStringParser$ParserState;->peek()I
-Landroid/icu/impl/number/PatternStringParser$ParserState;->toParseException(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
-Landroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)J
-Landroid/icu/impl/number/PatternStringParser;->consumeExponent(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-Landroid/icu/impl/number/PatternStringParser;->consumeFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-Landroid/icu/impl/number/PatternStringParser;->consumeFractionFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-Landroid/icu/impl/number/PatternStringParser;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-Landroid/icu/impl/number/PatternStringParser;->consumeLiteral(Landroid/icu/impl/number/PatternStringParser$ParserState;)V
-Landroid/icu/impl/number/PatternStringParser;->consumePadding(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;Landroid/icu/impl/number/Padder$PadPosition;)V
-Landroid/icu/impl/number/PatternStringParser;->consumePattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)V
-Landroid/icu/impl/number/PatternStringParser;->consumeSubpattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-Landroid/icu/impl/number/PatternStringParser;->parseToExistingPropertiesImpl(Ljava/lang/String;Landroid/icu/impl/number/DecimalFormatProperties;I)V
-Landroid/icu/impl/number/PatternStringParser;->patternInfoToProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;I)V
-Landroid/icu/impl/PatternTokenizer;->AFTER_QUOTE:I
-Landroid/icu/impl/PatternTokenizer;->appendEscaped(Ljava/lang/StringBuffer;I)V
-Landroid/icu/impl/PatternTokenizer;->escapeCharacters:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/PatternTokenizer;->extraQuotingCharacters:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/PatternTokenizer;->HEX:I
-Landroid/icu/impl/PatternTokenizer;->ignorableCharacters:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/PatternTokenizer;->IN_QUOTE:I
-Landroid/icu/impl/PatternTokenizer;->limit:I
-Landroid/icu/impl/PatternTokenizer;->needingQuoteCharacters:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/PatternTokenizer;->NONE:I
-Landroid/icu/impl/PatternTokenizer;->NORMAL_QUOTE:I
-Landroid/icu/impl/PatternTokenizer;->NO_QUOTE:I
-Landroid/icu/impl/PatternTokenizer;->pattern:Ljava/lang/String;
-Landroid/icu/impl/PatternTokenizer;->SLASH_START:I
-Landroid/icu/impl/PatternTokenizer;->start:I
-Landroid/icu/impl/PatternTokenizer;->START_QUOTE:I
-Landroid/icu/impl/PatternTokenizer;->syntaxCharacters:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/PatternTokenizer;->usingQuote:Z
-Landroid/icu/impl/PatternTokenizer;->usingSlash:Z
-Landroid/icu/impl/PluralRulesLoader;-><init>()V
-Landroid/icu/impl/PluralRulesLoader;->checkBuildRulesIdMaps()V
-Landroid/icu/impl/PluralRulesLoader;->getLocaleIdToRulesIdMap(Landroid/icu/text/PluralRules$PluralType;)Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->getRulesIdToEquivalentULocaleMap()Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->localeIdToCardinalRulesId:Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->localeIdToOrdinalRulesId:Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->localeIdToPluralRanges:Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->rulesIdToEquivalentULocale:Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->rulesIdToRules:Ljava/util/Map;
-Landroid/icu/impl/PluralRulesLoader;->UNKNOWN_RANGE:Landroid/icu/text/PluralRanges;
-Landroid/icu/impl/Relation$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-Landroid/icu/impl/Relation$SimpleEntry;-><init>(Ljava/util/Map$Entry;)V
-Landroid/icu/impl/Relation$SimpleEntry;->key:Ljava/lang/Object;
-Landroid/icu/impl/Relation$SimpleEntry;->value:Ljava/lang/Object;
-Landroid/icu/impl/Relation;->data:Ljava/util/Map;
-Landroid/icu/impl/Relation;->frozen:Z
-Landroid/icu/impl/Relation;->newSet()Ljava/util/Set;
-Landroid/icu/impl/Relation;->setComparatorParam:[Ljava/lang/Object;
-Landroid/icu/impl/Relation;->setCreator:Ljava/lang/reflect/Constructor;
-Landroid/icu/impl/RuleCharacterIterator;->buf:[C
-Landroid/icu/impl/RuleCharacterIterator;->bufPos:I
-Landroid/icu/impl/RuleCharacterIterator;->isEscaped:Z
-Landroid/icu/impl/RuleCharacterIterator;->pos:Ljava/text/ParsePosition;
-Landroid/icu/impl/RuleCharacterIterator;->sym:Landroid/icu/text/SymbolTable;
-Landroid/icu/impl/RuleCharacterIterator;->text:Ljava/lang/String;
-Landroid/icu/impl/RuleCharacterIterator;->_advance(I)V
-Landroid/icu/impl/RuleCharacterIterator;->_current()I
-Landroid/icu/impl/SimpleCache;->cacheRef:Ljava/lang/ref/Reference;
-Landroid/icu/impl/SimpleCache;->capacity:I
-Landroid/icu/impl/SimpleCache;->DEFAULT_CAPACITY:I
-Landroid/icu/impl/SimpleCache;->type:I
-Landroid/icu/impl/SoftCache;->map:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/impl/StandardPlural;->keyword:Ljava/lang/String;
-Landroid/icu/impl/TextTrieMap$CharIterator;-><init>(Ljava/lang/CharSequence;IZ)V
-Landroid/icu/impl/TextTrieMap$CharIterator;->_ignoreCase:Z
-Landroid/icu/impl/TextTrieMap$CharIterator;->_nextIdx:I
-Landroid/icu/impl/TextTrieMap$CharIterator;->_remainingChar:Ljava/lang/Character;
-Landroid/icu/impl/TextTrieMap$CharIterator;->_startIdx:I
-Landroid/icu/impl/TextTrieMap$CharIterator;->_text:Ljava/lang/CharSequence;
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;-><init>()V
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->getMatches()Ljava/util/Iterator;
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->getMatchLength()I
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->length:I
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->matches:Ljava/util/Iterator;
-Landroid/icu/impl/TextTrieMap$Node$StepResult;->node:Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TextTrieMap$Node$StepResult;->offset:I
-Landroid/icu/impl/TextTrieMap$Node;->add(Landroid/icu/impl/TextTrieMap$CharIterator;Ljava/lang/Object;)V
-Landroid/icu/impl/TextTrieMap$Node;->add([CILjava/lang/Object;)V
-Landroid/icu/impl/TextTrieMap$Node;->addValue(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
-Landroid/icu/impl/TextTrieMap$Node;->charCount()I
-Landroid/icu/impl/TextTrieMap$Node;->findMatch(Landroid/icu/impl/TextTrieMap$CharIterator;)Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TextTrieMap$Node;->hasChildFor(C)Z
-Landroid/icu/impl/TextTrieMap$Node;->lenMatches([CI)I
-Landroid/icu/impl/TextTrieMap$Node;->matchFollowing(Landroid/icu/impl/TextTrieMap$CharIterator;)Z
-Landroid/icu/impl/TextTrieMap$Node;->split(I)V
-Landroid/icu/impl/TextTrieMap$Node;->takeStep(CILandroid/icu/impl/TextTrieMap$Node$StepResult;)V
-Landroid/icu/impl/TextTrieMap$Node;->values()Ljava/util/Iterator;
-Landroid/icu/impl/TextTrieMap$Node;->_children:Ljava/util/List;
-Landroid/icu/impl/TextTrieMap$Node;->_text:[C
-Landroid/icu/impl/TextTrieMap$Node;->_values:Ljava/util/List;
-Landroid/icu/impl/TextTrieMap$ParseState;->node:Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TextTrieMap$ParseState;->offset:I
-Landroid/icu/impl/TextTrieMap$ParseState;->result:Landroid/icu/impl/TextTrieMap$Node$StepResult;
-Landroid/icu/impl/TextTrieMap;->find(Landroid/icu/impl/TextTrieMap$Node;Landroid/icu/impl/TextTrieMap$CharIterator;Landroid/icu/impl/TextTrieMap$ResultHandler;)V
-Landroid/icu/impl/TextTrieMap;->subArray([CI)[C
-Landroid/icu/impl/TextTrieMap;->subArray([CII)[C
-Landroid/icu/impl/TextTrieMap;->toCharArray(Ljava/lang/CharSequence;)[C
-Landroid/icu/impl/TextTrieMap;->_ignoreCase:Z
-Landroid/icu/impl/TextTrieMap;->_root:Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TimeZoneGenericNames$Cache;-><init>()V
-Landroid/icu/impl/TimeZoneGenericNames$Cache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/TimeZoneGenericNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/impl/TimeZoneGenericNames;
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;-><init>(Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;Ljava/lang/String;I)V
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;-><init>(Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;Ljava/lang/String;ILandroid/icu/text/TimeZoneFormat$TimeType;)V
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->matchLength:I
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->nameType:Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->timeType:Landroid/icu/text/TimeZoneFormat$TimeType;
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->tzID:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;-><init>(Ljava/util/EnumSet;)V
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->getMatches()Ljava/util/Collection;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->getMaxMatchLen()I
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->handlePrefixMatch(ILjava/util/Iterator;)Z
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->resetResults()V
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->_matches:Ljava/util/Collection;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->_maxMatchLen:I
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->_types:Ljava/util/EnumSet;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;->_fallbackTypeOf:[Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$NameInfo;-><init>(Ljava/lang/String;Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;)V
-Landroid/icu/impl/TimeZoneGenericNames$NameInfo;->type:Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;
-Landroid/icu/impl/TimeZoneGenericNames$NameInfo;->tzID:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$Pattern;->defaultValue()Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$Pattern;->key()Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$Pattern;->_defaultVal:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$Pattern;->_key:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/impl/TimeZoneGenericNames;->createGenericMatchInfo(Landroid/icu/text/TimeZoneNames$MatchInfo;)Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;
-Landroid/icu/impl/TimeZoneGenericNames;->DST_CHECK_RANGE:J
-Landroid/icu/impl/TimeZoneGenericNames;->findLocal(Ljava/lang/String;ILjava/util/EnumSet;)Ljava/util/Collection;
-Landroid/icu/impl/TimeZoneGenericNames;->findTimeZoneNames(Ljava/lang/String;ILjava/util/EnumSet;)Ljava/util/Collection;
-Landroid/icu/impl/TimeZoneGenericNames;->formatGenericNonLocationName(Landroid/icu/util/TimeZone;Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;J)Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames;->GENERIC_NAMES_CACHE:Landroid/icu/impl/TimeZoneGenericNames$Cache;
-Landroid/icu/impl/TimeZoneGenericNames;->GENERIC_NON_LOCATION_TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
-Landroid/icu/impl/TimeZoneGenericNames;->getLocaleDisplayNames()Landroid/icu/text/LocaleDisplayNames;
-Landroid/icu/impl/TimeZoneGenericNames;->getPartialLocationName(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames;->getTargetRegion()Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames;->init()V
-Landroid/icu/impl/TimeZoneGenericNames;->loadStrings(Ljava/lang/String;)V
-Landroid/icu/impl/TimeZoneGenericNames;->_frozen:Z
-Landroid/icu/impl/TimeZoneGenericNames;->_genericLocationNamesMap:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/impl/TimeZoneGenericNames;->_genericPartialLocationNamesMap:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/impl/TimeZoneGenericNames;->_gnamesTrie:Landroid/icu/impl/TextTrieMap;
-Landroid/icu/impl/TimeZoneGenericNames;->_gnamesTrieFullyLoaded:Z
-Landroid/icu/impl/TimeZoneGenericNames;->_locale:Landroid/icu/util/ULocale;
-Landroid/icu/impl/TimeZoneGenericNames;->_localeDisplayNamesRef:Ljava/lang/ref/WeakReference;
-Landroid/icu/impl/TimeZoneGenericNames;->_patternFormatters:[Ljava/text/MessageFormat;
-Landroid/icu/impl/TimeZoneGenericNames;->_region:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames;->_tznames:Landroid/icu/text/TimeZoneNames;
-Landroid/icu/impl/Trie$DefaultGetFoldingOffset;-><init>()V
-Landroid/icu/impl/Trie2$CharSequenceIterator;->fResults:Landroid/icu/impl/Trie2$CharSequenceValues;
-Landroid/icu/impl/Trie2$CharSequenceIterator;->index:I
-Landroid/icu/impl/Trie2$CharSequenceIterator;->text:Ljava/lang/CharSequence;
-Landroid/icu/impl/Trie2$CharSequenceIterator;->textLength:I
-Landroid/icu/impl/Trie2$Trie2Iterator;->doingCodePoints:Z
-Landroid/icu/impl/Trie2$Trie2Iterator;->doLeadSurrogates:Z
-Landroid/icu/impl/Trie2$Trie2Iterator;->limitCP:I
-Landroid/icu/impl/Trie2$Trie2Iterator;->mapper:Landroid/icu/impl/Trie2$ValueMapper;
-Landroid/icu/impl/Trie2$Trie2Iterator;->nextStart:I
-Landroid/icu/impl/Trie2$Trie2Iterator;->rangeEndLS(C)I
-Landroid/icu/impl/Trie2$Trie2Iterator;->returnValue:Landroid/icu/impl/Trie2$Range;
-Landroid/icu/impl/Trie2$UTrie2Header;-><init>()V
-Landroid/icu/impl/Trie2$UTrie2Header;->dataNullOffset:I
-Landroid/icu/impl/Trie2$UTrie2Header;->index2NullOffset:I
-Landroid/icu/impl/Trie2$UTrie2Header;->indexLength:I
-Landroid/icu/impl/Trie2$UTrie2Header;->options:I
-Landroid/icu/impl/Trie2$UTrie2Header;->shiftedDataLength:I
-Landroid/icu/impl/Trie2$UTrie2Header;->shiftedHighStart:I
-Landroid/icu/impl/Trie2$UTrie2Header;->signature:I
-Landroid/icu/impl/Trie2$ValueWidth;->BITS_16:Landroid/icu/impl/Trie2$ValueWidth;
-Landroid/icu/impl/Trie2$ValueWidth;->BITS_32:Landroid/icu/impl/Trie2$ValueWidth;
-Landroid/icu/impl/Trie2$ValueWidth;->valueOf(Ljava/lang/String;)Landroid/icu/impl/Trie2$ValueWidth;
-Landroid/icu/impl/Trie2$ValueWidth;->values()[Landroid/icu/impl/Trie2$ValueWidth;
-Landroid/icu/impl/Trie2;->data16:I
-Landroid/icu/impl/Trie2;->data32:[I
-Landroid/icu/impl/Trie2;->dataLength:I
-Landroid/icu/impl/Trie2;->dataNullOffset:I
-Landroid/icu/impl/Trie2;->defaultValueMapper:Landroid/icu/impl/Trie2$ValueMapper;
-Landroid/icu/impl/Trie2;->errorValue:I
-Landroid/icu/impl/Trie2;->fHash:I
-Landroid/icu/impl/Trie2;->hashByte(II)I
-Landroid/icu/impl/Trie2;->hashInt(II)I
-Landroid/icu/impl/Trie2;->hashUChar32(II)I
-Landroid/icu/impl/Trie2;->header:Landroid/icu/impl/Trie2$UTrie2Header;
-Landroid/icu/impl/Trie2;->highStart:I
-Landroid/icu/impl/Trie2;->highValueIndex:I
-Landroid/icu/impl/Trie2;->index2NullOffset:I
-Landroid/icu/impl/Trie2;->index:[C
-Landroid/icu/impl/Trie2;->indexLength:I
-Landroid/icu/impl/Trie2;->initHash()I
-Landroid/icu/impl/Trie2;->initialValue:I
-Landroid/icu/impl/Trie2;->rangeEnd(III)I
-Landroid/icu/impl/Trie2;->UNEWTRIE2_INDEX_1_LENGTH:I
-Landroid/icu/impl/Trie2;->UNEWTRIE2_INDEX_GAP_LENGTH:I
-Landroid/icu/impl/Trie2;->UNEWTRIE2_INDEX_GAP_OFFSET:I
-Landroid/icu/impl/Trie2;->UNEWTRIE2_MAX_DATA_LENGTH:I
-Landroid/icu/impl/Trie2;->UNEWTRIE2_MAX_INDEX_2_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_BAD_UTF8_DATA_OFFSET:I
-Landroid/icu/impl/Trie2;->UTRIE2_CP_PER_INDEX_1_ENTRY:I
-Landroid/icu/impl/Trie2;->UTRIE2_DATA_BLOCK_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_DATA_GRANULARITY:I
-Landroid/icu/impl/Trie2;->UTRIE2_DATA_MASK:I
-Landroid/icu/impl/Trie2;->UTRIE2_DATA_START_OFFSET:I
-Landroid/icu/impl/Trie2;->UTRIE2_INDEX_1_OFFSET:I
-Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_BLOCK_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_BMP_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_MASK:I
-Landroid/icu/impl/Trie2;->UTRIE2_INDEX_2_OFFSET:I
-Landroid/icu/impl/Trie2;->UTRIE2_INDEX_SHIFT:I
-Landroid/icu/impl/Trie2;->UTRIE2_LSCP_INDEX_2_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_LSCP_INDEX_2_OFFSET:I
-Landroid/icu/impl/Trie2;->UTRIE2_MAX_INDEX_1_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_OMITTED_BMP_INDEX_1_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_OPTIONS_VALUE_BITS_MASK:I
-Landroid/icu/impl/Trie2;->UTRIE2_SHIFT_1:I
-Landroid/icu/impl/Trie2;->UTRIE2_SHIFT_1_2:I
-Landroid/icu/impl/Trie2;->UTRIE2_SHIFT_2:I
-Landroid/icu/impl/Trie2;->UTRIE2_UTF8_2B_INDEX_2_LENGTH:I
-Landroid/icu/impl/Trie2;->UTRIE2_UTF8_2B_INDEX_2_OFFSET:I
-Landroid/icu/impl/Trie2Writable;->allocDataBlock(I)I
-Landroid/icu/impl/Trie2Writable;->allocIndex2Block()I
-Landroid/icu/impl/Trie2Writable;->compactData()V
-Landroid/icu/impl/Trie2Writable;->compactIndex2()V
-Landroid/icu/impl/Trie2Writable;->compactTrie()V
-Landroid/icu/impl/Trie2Writable;->data:[I
-Landroid/icu/impl/Trie2Writable;->dataCapacity:I
-Landroid/icu/impl/Trie2Writable;->equal_int([IIII)Z
-Landroid/icu/impl/Trie2Writable;->fillBlock(IIIIIZ)V
-Landroid/icu/impl/Trie2Writable;->findHighStart(I)I
-Landroid/icu/impl/Trie2Writable;->findSameDataBlock(III)I
-Landroid/icu/impl/Trie2Writable;->findSameIndex2Block(II)I
-Landroid/icu/impl/Trie2Writable;->firstFreeBlock:I
-Landroid/icu/impl/Trie2Writable;->freeze(Landroid/icu/impl/Trie2;Landroid/icu/impl/Trie2$ValueWidth;)V
-Landroid/icu/impl/Trie2Writable;->get(IZ)I
-Landroid/icu/impl/Trie2Writable;->getDataBlock(IZ)I
-Landroid/icu/impl/Trie2Writable;->getIndex2Block(IZ)I
-Landroid/icu/impl/Trie2Writable;->index1:[I
-Landroid/icu/impl/Trie2Writable;->index2:[I
-Landroid/icu/impl/Trie2Writable;->index2Length:I
-Landroid/icu/impl/Trie2Writable;->index2NullOffset:I
-Landroid/icu/impl/Trie2Writable;->init(II)V
-Landroid/icu/impl/Trie2Writable;->isCompacted:Z
-Landroid/icu/impl/Trie2Writable;->isInNullBlock(IZ)Z
-Landroid/icu/impl/Trie2Writable;->isWritableBlock(I)Z
-Landroid/icu/impl/Trie2Writable;->map:[I
-Landroid/icu/impl/Trie2Writable;->releaseDataBlock(I)V
-Landroid/icu/impl/Trie2Writable;->set(IZI)Landroid/icu/impl/Trie2Writable;
-Landroid/icu/impl/Trie2Writable;->setIndex2Entry(II)V
-Landroid/icu/impl/Trie2Writable;->uncompact()V
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_DATA_0800_OFFSET:I
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_DATA_NULL_OFFSET:I
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_DATA_START_OFFSET:I
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_INDEX_2_NULL_OFFSET:I
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_INDEX_2_START_OFFSET:I
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_INITIAL_DATA_LENGTH:I
-Landroid/icu/impl/Trie2Writable;->UNEWTRIE2_MEDIUM_DATA_LENGTH:I
-Landroid/icu/impl/Trie2Writable;->UTRIE2_DEBUG:Z
-Landroid/icu/impl/Trie2Writable;->UTRIE2_MAX_DATA_LENGTH:I
-Landroid/icu/impl/Trie2Writable;->UTRIE2_MAX_INDEX_LENGTH:I
-Landroid/icu/impl/Trie2Writable;->writeBlock(II)V
-Landroid/icu/impl/Trie2_16;-><init>()V
-Landroid/icu/impl/Trie2_16;->rangeEnd(III)I
-Landroid/icu/impl/Trie2_32;-><init>()V
-Landroid/icu/impl/Trie2_32;->rangeEnd(III)I
-Landroid/icu/impl/Trie;->checkHeader(I)Z
-Landroid/icu/impl/Trie;->HEADER_OPTIONS_SHIFT_MASK_:I
-Landroid/icu/impl/Trie;->m_isLatin1Linear_:Z
-Landroid/icu/impl/Trie;->m_options_:I
-Landroid/icu/impl/UBiDiProps$IsAcceptable;-><init>()V
-Landroid/icu/impl/UBiDiProps;-><init>()V
-Landroid/icu/impl/UBiDiProps;->BIDI_CONTROL_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->BPT_MASK:I
-Landroid/icu/impl/UBiDiProps;->BPT_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->CLASS_MASK:I
-Landroid/icu/impl/UBiDiProps;->DATA_FILE_NAME:Ljava/lang/String;
-Landroid/icu/impl/UBiDiProps;->DATA_NAME:Ljava/lang/String;
-Landroid/icu/impl/UBiDiProps;->DATA_TYPE:Ljava/lang/String;
-Landroid/icu/impl/UBiDiProps;->ESC_MIRROR_DELTA:I
-Landroid/icu/impl/UBiDiProps;->FMT:I
-Landroid/icu/impl/UBiDiProps;->getClassFromProps(I)I
-Landroid/icu/impl/UBiDiProps;->getFlagFromProps(II)Z
-Landroid/icu/impl/UBiDiProps;->getMirror(II)I
-Landroid/icu/impl/UBiDiProps;->getMirrorCodePoint(I)I
-Landroid/icu/impl/UBiDiProps;->getMirrorDeltaFromProps(I)I
-Landroid/icu/impl/UBiDiProps;->getMirrorIndex(I)I
-Landroid/icu/impl/UBiDiProps;->indexes:[I
-Landroid/icu/impl/UBiDiProps;->IS_MIRRORED_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->IX_JG_LIMIT2:I
-Landroid/icu/impl/UBiDiProps;->IX_JG_LIMIT:I
-Landroid/icu/impl/UBiDiProps;->IX_JG_START2:I
-Landroid/icu/impl/UBiDiProps;->IX_JG_START:I
-Landroid/icu/impl/UBiDiProps;->IX_MAX_VALUES:I
-Landroid/icu/impl/UBiDiProps;->IX_MIRROR_LENGTH:I
-Landroid/icu/impl/UBiDiProps;->IX_TOP:I
-Landroid/icu/impl/UBiDiProps;->IX_TRIE_SIZE:I
-Landroid/icu/impl/UBiDiProps;->jgArray2:[B
-Landroid/icu/impl/UBiDiProps;->jgArray:[B
-Landroid/icu/impl/UBiDiProps;->JOIN_CONTROL_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->JT_MASK:I
-Landroid/icu/impl/UBiDiProps;->JT_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->MAX_JG_MASK:I
-Landroid/icu/impl/UBiDiProps;->MAX_JG_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->mirrors:[I
-Landroid/icu/impl/UBiDiProps;->MIRROR_DELTA_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->MIRROR_INDEX_SHIFT:I
-Landroid/icu/impl/UBiDiProps;->readData(Ljava/nio/ByteBuffer;)V
-Landroid/icu/impl/UBiDiProps;->trie:Landroid/icu/impl/Trie2_16;
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;-><init>()V
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->addOffset(I)V
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->addOffsetAndCount(II)V
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->clear()V
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->containsOffset(I)Z
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->hasCountAtOffset(II)Z
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->isEmpty()Z
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->length:I
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->list:[I
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->popMinimum(Landroid/icu/util/OutputInt;)I
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->setMaxLength(I)V
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->shift(I)V
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->start:I
-Landroid/icu/impl/UnicodeSetStringSpan;->addToSpanNotSet(I)V
-Landroid/icu/impl/UnicodeSetStringSpan;->all:Z
-Landroid/icu/impl/UnicodeSetStringSpan;->ALL_CP_CONTAINED:S
-Landroid/icu/impl/UnicodeSetStringSpan;->LONG_SPAN:S
-Landroid/icu/impl/UnicodeSetStringSpan;->makeSpanLengthByte(I)S
-Landroid/icu/impl/UnicodeSetStringSpan;->matches16(Ljava/lang/CharSequence;ILjava/lang/String;I)Z
-Landroid/icu/impl/UnicodeSetStringSpan;->matches16CPB(Ljava/lang/CharSequence;IILjava/lang/String;I)Z
-Landroid/icu/impl/UnicodeSetStringSpan;->maxLength16:I
-Landroid/icu/impl/UnicodeSetStringSpan;->offsets:Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;
-Landroid/icu/impl/UnicodeSetStringSpan;->someRelevant:Z
-Landroid/icu/impl/UnicodeSetStringSpan;->spanContainedAndCount(Ljava/lang/CharSequence;ILandroid/icu/util/OutputInt;)I
-Landroid/icu/impl/UnicodeSetStringSpan;->spanLengths:[S
-Landroid/icu/impl/UnicodeSetStringSpan;->spanNot(Ljava/lang/CharSequence;ILandroid/icu/util/OutputInt;)I
-Landroid/icu/impl/UnicodeSetStringSpan;->spanNotBack(Ljava/lang/CharSequence;I)I
-Landroid/icu/impl/UnicodeSetStringSpan;->spanNotSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/UnicodeSetStringSpan;->spanOne(Landroid/icu/text/UnicodeSet;Ljava/lang/CharSequence;II)I
-Landroid/icu/impl/UnicodeSetStringSpan;->spanOneBack(Landroid/icu/text/UnicodeSet;Ljava/lang/CharSequence;I)I
-Landroid/icu/impl/UnicodeSetStringSpan;->spanSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/impl/UnicodeSetStringSpan;->spanWithStrings(Ljava/lang/CharSequence;IILandroid/icu/text/UnicodeSet$SpanCondition;)I
-Landroid/icu/impl/UnicodeSetStringSpan;->strings:Ljava/util/ArrayList;
-Landroid/icu/impl/UResource$Key;-><init>([BII)V
-Landroid/icu/impl/UResource$Key;->bytes:[B
-Landroid/icu/impl/UResource$Key;->internalSubString(II)Ljava/lang/String;
-Landroid/icu/impl/UResource$Key;->length:I
-Landroid/icu/impl/UResource$Key;->offset:I
-Landroid/icu/impl/UResource$Key;->regionMatches(ILjava/lang/CharSequence;I)Z
-Landroid/icu/impl/UResource$Key;->regionMatches([BII)Z
-Landroid/icu/impl/UResource$Key;->s:Ljava/lang/String;
-Landroid/icu/lang/CharSequences;-><init>()V
-Landroid/icu/lang/CharSequences;->codePointLength(Ljava/lang/CharSequence;)I
-Landroid/icu/lang/CharSequences;->codePoints(Ljava/lang/CharSequence;)[I
-Landroid/icu/lang/CharSequences;->compare(ILjava/lang/CharSequence;)I
-Landroid/icu/lang/CharSequences;->compare(Ljava/lang/CharSequence;I)I
-Landroid/icu/lang/CharSequences;->compare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
-Landroid/icu/lang/CharSequences;->equals(ILjava/lang/CharSequence;)Z
-Landroid/icu/lang/CharSequences;->equals(Ljava/lang/CharSequence;I)Z
-Landroid/icu/lang/CharSequences;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
-Landroid/icu/lang/CharSequences;->equalsChars(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
-Landroid/icu/lang/CharSequences;->getSingleCodePoint(Ljava/lang/CharSequence;)I
-Landroid/icu/lang/CharSequences;->indexOf(Ljava/lang/CharSequence;I)I
-Landroid/icu/lang/CharSequences;->matchAfter(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)I
-Landroid/icu/lang/CharSequences;->onCharacterBoundary(Ljava/lang/CharSequence;I)Z
-Landroid/icu/lang/UCharacter$BidiPairedBracketType;->COUNT:I
-Landroid/icu/lang/UCharacter$DecompositionType;->COUNT:I
-Landroid/icu/lang/UCharacter$DummyValueIterator;-><init>()V
-Landroid/icu/lang/UCharacter$EastAsianWidth;->COUNT:I
-Landroid/icu/lang/UCharacter$GraphemeClusterBreak;->COUNT:I
-Landroid/icu/lang/UCharacter$HangulSyllableType;->COUNT:I
-Landroid/icu/lang/UCharacter$JoiningGroup;->COUNT:I
-Landroid/icu/lang/UCharacter$JoiningType;->COUNT:I
-Landroid/icu/lang/UCharacter$LineBreak;->COUNT:I
-Landroid/icu/lang/UCharacter$NumericType;->COUNT:I
-Landroid/icu/lang/UCharacter$SentenceBreak;->COUNT:I
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType;-><init>()V
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator;-><init>()V
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator;->MASK_TYPE:Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType;
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator;->range:Landroid/icu/impl/Trie2$Range;
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator;->trieIterator:Ljava/util/Iterator;
-Landroid/icu/lang/UCharacter$UnicodeBlock;-><init>(Ljava/lang/String;I)V
-Landroid/icu/lang/UCharacter$UnicodeBlock;->BLOCKS_:[Landroid/icu/lang/UCharacter$UnicodeBlock;
-Landroid/icu/lang/UCharacter$UnicodeBlock;->COUNT:I
-Landroid/icu/lang/UCharacter$UnicodeBlock;->mref:Ljava/lang/ref/SoftReference;
-Landroid/icu/lang/UCharacter$UnicodeBlock;->m_id_:I
-Landroid/icu/lang/UCharacter$UnicodeBlock;->trimBlockName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/lang/UCharacter$WordBreak;->COUNT:I
-Landroid/icu/lang/UCharacter;-><init>()V
-Landroid/icu/lang/UCharacter;->APPLICATION_PROGRAM_COMMAND_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_EIGHT_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_FIVE_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_FOUR_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_HUNDRED_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_NINE_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_ONE_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_SEVEN_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_SIX_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_TEN_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_THOUSAND_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_THREE_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_TWO_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_COMPLEX_ZERO_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_EIGHTH_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_FIFTH_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_FIRST_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_FOURTH_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_HUNDRED_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_HUNDRED_MILLION_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_NINETH_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_SECOND_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_SEVENTH_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_SIXTH_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_TEN_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_TEN_THOUSAND_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_THIRD_:I
-Landroid/icu/lang/UCharacter;->CJK_IDEOGRAPH_THOUSAND_:I
-Landroid/icu/lang/UCharacter;->DELETE_:I
-Landroid/icu/lang/UCharacter;->FIGURE_SPACE_:I
-Landroid/icu/lang/UCharacter;->getCaseLocale(Landroid/icu/util/ULocale;)I
-Landroid/icu/lang/UCharacter;->getCaseLocale(Ljava/util/Locale;)I
-Landroid/icu/lang/UCharacter;->getCharFromName1_0(Ljava/lang/String;)I
-Landroid/icu/lang/UCharacter;->getDefaultCaseLocale()I
-Landroid/icu/lang/UCharacter;->getISOComment(I)Ljava/lang/String;
-Landroid/icu/lang/UCharacter;->getName1_0(I)Ljava/lang/String;
-Landroid/icu/lang/UCharacter;->getName1_0Iterator()Landroid/icu/util/ValueIterator;
-Landroid/icu/lang/UCharacter;->getPropertyValueEnumNoThrow(ILjava/lang/CharSequence;)I
-Landroid/icu/lang/UCharacter;->getStringPropertyValue(III)Ljava/lang/String;
-Landroid/icu/lang/UCharacter;->IDEOGRAPHIC_NUMBER_ZERO_:I
-Landroid/icu/lang/UCharacter;->isJavaLetter(I)Z
-Landroid/icu/lang/UCharacter;->isJavaLetterOrDigit(I)Z
-Landroid/icu/lang/UCharacter;->isSpace(I)Z
-Landroid/icu/lang/UCharacter;->LAST_CHAR_MASK_:I
-Landroid/icu/lang/UCharacter;->NARROW_NO_BREAK_SPACE_:I
-Landroid/icu/lang/UCharacter;->NO_BREAK_SPACE_:I
-Landroid/icu/lang/UCharacter;->toTitleFirst(Landroid/icu/util/ULocale;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/lang/UCharacter;->TO_TITLE_WHOLE_STRING_NO_LOWERCASE:Landroid/icu/text/CaseMap$Title;
-Landroid/icu/lang/UCharacter;->UNIT_SEPARATOR_:I
-Landroid/icu/lang/UCharacterCategory;-><init>()V
-Landroid/icu/lang/UCharacterDirection;-><init>()V
-Landroid/icu/lang/UCharacterEnums$ECharacterCategory;->CHAR_CATEGORY_COUNT:B
-Landroid/icu/lang/UCharacterEnums$ECharacterDirection;->CHAR_DIRECTION_COUNT:I
-Landroid/icu/lang/UCharacterEnums;-><init>()V
-Landroid/icu/lang/UProperty$NameChoice;->COUNT:I
-Landroid/icu/lang/UProperty;->BINARY_LIMIT:I
-Landroid/icu/lang/UProperty;->DOUBLE_LIMIT:I
-Landroid/icu/lang/UProperty;->INT_LIMIT:I
-Landroid/icu/lang/UProperty;->ISO_COMMENT:I
-Landroid/icu/lang/UProperty;->MASK_LIMIT:I
-Landroid/icu/lang/UProperty;->OTHER_PROPERTY_LIMIT:I
-Landroid/icu/lang/UProperty;->STRING_LIMIT:I
-Landroid/icu/lang/UProperty;->UNDEFINED:I
-Landroid/icu/lang/UProperty;->UNICODE_1_NAME:I
-Landroid/icu/lang/UScript$ScriptMetadata;-><init>()V
-Landroid/icu/lang/UScript$ScriptMetadata;->CASED:I
-Landroid/icu/lang/UScript$ScriptMetadata;->EXCLUSION:I
-Landroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I
-Landroid/icu/lang/UScript$ScriptMetadata;->LB_LETTERS:I
-Landroid/icu/lang/UScript$ScriptMetadata;->LIMITED_USE:I
-Landroid/icu/lang/UScript$ScriptMetadata;->RECOMMENDED:I
-Landroid/icu/lang/UScript$ScriptMetadata;->RTL:I
-Landroid/icu/lang/UScript$ScriptMetadata;->SCRIPT_PROPS:[I
-Landroid/icu/lang/UScript$ScriptMetadata;->UNKNOWN:I
-Landroid/icu/lang/UScript;-><init>()V
-Landroid/icu/lang/UScript;->CODE_LIMIT:I
-Landroid/icu/lang/UScript;->DUPLOYAN_SHORTAND:I
-Landroid/icu/lang/UScript;->findCodeFromLocale(Landroid/icu/util/ULocale;)[I
-Landroid/icu/lang/UScript;->getCodesFromLocale(Landroid/icu/util/ULocale;)[I
-Landroid/icu/lang/UScript;->usageValues:[Landroid/icu/lang/UScript$ScriptUsage;
-Landroid/icu/lang/UScriptRun$ParenStackEntry;-><init>(II)V
-Landroid/icu/lang/UScriptRun$ParenStackEntry;->pairIndex:I
-Landroid/icu/lang/UScriptRun$ParenStackEntry;->scriptCode:I
-Landroid/icu/lang/UScriptRun;-><init>()V
-Landroid/icu/lang/UScriptRun;-><init>(Ljava/lang/String;)V
-Landroid/icu/lang/UScriptRun;-><init>(Ljava/lang/String;II)V
-Landroid/icu/lang/UScriptRun;-><init>([C)V
-Landroid/icu/lang/UScriptRun;-><init>([CII)V
-Landroid/icu/lang/UScriptRun;->dec(I)I
-Landroid/icu/lang/UScriptRun;->dec(II)I
-Landroid/icu/lang/UScriptRun;->emptyCharArray:[C
-Landroid/icu/lang/UScriptRun;->fixup(I)V
-Landroid/icu/lang/UScriptRun;->fixupCount:I
-Landroid/icu/lang/UScriptRun;->getPairIndex(I)I
-Landroid/icu/lang/UScriptRun;->getScriptCode()I
-Landroid/icu/lang/UScriptRun;->getScriptLimit()I
-Landroid/icu/lang/UScriptRun;->getScriptStart()I
-Landroid/icu/lang/UScriptRun;->highBit(I)B
-Landroid/icu/lang/UScriptRun;->inc(I)I
-Landroid/icu/lang/UScriptRun;->inc(II)I
-Landroid/icu/lang/UScriptRun;->limitInc(I)I
-Landroid/icu/lang/UScriptRun;->mod(I)I
-Landroid/icu/lang/UScriptRun;->next()Z
-Landroid/icu/lang/UScriptRun;->pairedCharExtra:I
-Landroid/icu/lang/UScriptRun;->pairedCharPower:I
-Landroid/icu/lang/UScriptRun;->pairedChars:[I
-Landroid/icu/lang/UScriptRun;->parenSP:I
-Landroid/icu/lang/UScriptRun;->parenStack:[Landroid/icu/lang/UScriptRun$ParenStackEntry;
-Landroid/icu/lang/UScriptRun;->PAREN_STACK_DEPTH:I
-Landroid/icu/lang/UScriptRun;->pop()V
-Landroid/icu/lang/UScriptRun;->push(II)V
-Landroid/icu/lang/UScriptRun;->pushCount:I
-Landroid/icu/lang/UScriptRun;->reset()V
-Landroid/icu/lang/UScriptRun;->reset(II)V
-Landroid/icu/lang/UScriptRun;->reset(Ljava/lang/String;)V
-Landroid/icu/lang/UScriptRun;->reset(Ljava/lang/String;II)V
-Landroid/icu/lang/UScriptRun;->reset([C)V
-Landroid/icu/lang/UScriptRun;->reset([CII)V
-Landroid/icu/lang/UScriptRun;->sameScript(II)Z
-Landroid/icu/lang/UScriptRun;->scriptCode:I
-Landroid/icu/lang/UScriptRun;->scriptLimit:I
-Landroid/icu/lang/UScriptRun;->scriptStart:I
-Landroid/icu/lang/UScriptRun;->stackIsEmpty()Z
-Landroid/icu/lang/UScriptRun;->stackIsNotEmpty()Z
-Landroid/icu/lang/UScriptRun;->syncFixup()V
-Landroid/icu/lang/UScriptRun;->text:[C
-Landroid/icu/lang/UScriptRun;->textIndex:I
-Landroid/icu/lang/UScriptRun;->textLimit:I
-Landroid/icu/lang/UScriptRun;->textStart:I
-Landroid/icu/lang/UScriptRun;->top()Landroid/icu/lang/UScriptRun$ParenStackEntry;
-Landroid/icu/math/BigDecimal;-><init>()V
-Landroid/icu/math/BigDecimal;->allzero([BI)Z
-Landroid/icu/math/BigDecimal;->bad([C)V
-Landroid/icu/math/BigDecimal;->badarg(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/icu/math/BigDecimal;->byteaddsub([BI[BIIZ)[B
-Landroid/icu/math/BigDecimal;->bytecar:[B
-Landroid/icu/math/BigDecimal;->bytedig:[B
-Landroid/icu/math/BigDecimal;->checkdigits(Landroid/icu/math/BigDecimal;I)V
-Landroid/icu/math/BigDecimal;->clone(Landroid/icu/math/BigDecimal;)Landroid/icu/math/BigDecimal;
-Landroid/icu/math/BigDecimal;->diginit()[B
-Landroid/icu/math/BigDecimal;->dodivide(CLandroid/icu/math/BigDecimal;Landroid/icu/math/MathContext;I)Landroid/icu/math/BigDecimal;
-Landroid/icu/math/BigDecimal;->exp:I
-Landroid/icu/math/BigDecimal;->extend([BI)[B
-Landroid/icu/math/BigDecimal;->finish(Landroid/icu/math/MathContext;Z)Landroid/icu/math/BigDecimal;
-Landroid/icu/math/BigDecimal;->form:B
-Landroid/icu/math/BigDecimal;->ind:B
-Landroid/icu/math/BigDecimal;->intcheck(II)I
-Landroid/icu/math/BigDecimal;->isneg:B
-Landroid/icu/math/BigDecimal;->ispos:B
-Landroid/icu/math/BigDecimal;->iszero:B
-Landroid/icu/math/BigDecimal;->layout()[C
-Landroid/icu/math/BigDecimal;->mant:[B
-Landroid/icu/math/BigDecimal;->MaxArg:I
-Landroid/icu/math/BigDecimal;->MaxExp:I
-Landroid/icu/math/BigDecimal;->MinArg:I
-Landroid/icu/math/BigDecimal;->MinExp:I
-Landroid/icu/math/BigDecimal;->plainMC:Landroid/icu/math/MathContext;
-Landroid/icu/math/BigDecimal;->round(II)Landroid/icu/math/BigDecimal;
-Landroid/icu/math/BigDecimal;->round(Landroid/icu/math/MathContext;)Landroid/icu/math/BigDecimal;
-Landroid/icu/math/MathContext;->DEFAULT_DIGITS:I
-Landroid/icu/math/MathContext;->DEFAULT_FORM:I
-Landroid/icu/math/MathContext;->DEFAULT_LOSTDIGITS:Z
-Landroid/icu/math/MathContext;->DEFAULT_ROUNDINGMODE:I
-Landroid/icu/math/MathContext;->digits:I
-Landroid/icu/math/MathContext;->form:I
-Landroid/icu/math/MathContext;->isValidRound(I)Z
-Landroid/icu/math/MathContext;->lostDigits:Z
-Landroid/icu/math/MathContext;->MAX_DIGITS:I
-Landroid/icu/math/MathContext;->MIN_DIGITS:I
-Landroid/icu/math/MathContext;->roundingMode:I
-Landroid/icu/math/MathContext;->ROUNDS:[I
-Landroid/icu/math/MathContext;->ROUNDWORDS:[Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex$Bucket;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;)V
-Landroid/icu/text/AlphabeticIndex$Bucket;->displayBucket:Landroid/icu/text/AlphabeticIndex$Bucket;
-Landroid/icu/text/AlphabeticIndex$Bucket;->displayIndex:I
-Landroid/icu/text/AlphabeticIndex$Bucket;->label:Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex$Bucket;->labelType:Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;
-Landroid/icu/text/AlphabeticIndex$Bucket;->lowerBoundary:Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex$Bucket;->records:Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex$BucketList;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
-Landroid/icu/text/AlphabeticIndex$BucketList;->bucketList:Ljava/util/ArrayList;
-Landroid/icu/text/AlphabeticIndex$BucketList;->fullIterator()Ljava/util/Iterator;
-Landroid/icu/text/AlphabeticIndex$BucketList;->getBucketCount()I
-Landroid/icu/text/AlphabeticIndex$BucketList;->getBucketIndex(Ljava/lang/CharSequence;Landroid/icu/text/Collator;)I
-Landroid/icu/text/AlphabeticIndex$BucketList;->immutableVisibleList:Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex$ImmutableIndex;-><init>(Landroid/icu/text/AlphabeticIndex$BucketList;Landroid/icu/text/Collator;)V
-Landroid/icu/text/AlphabeticIndex$ImmutableIndex;->buckets:Landroid/icu/text/AlphabeticIndex$BucketList;
-Landroid/icu/text/AlphabeticIndex$ImmutableIndex;->collatorPrimaryOnly:Landroid/icu/text/Collator;
-Landroid/icu/text/AlphabeticIndex$Record;-><init>(Ljava/lang/CharSequence;Ljava/lang/Object;)V
-Landroid/icu/text/AlphabeticIndex$Record;->data:Ljava/lang/Object;
-Landroid/icu/text/AlphabeticIndex$Record;->name:Ljava/lang/CharSequence;
-Landroid/icu/text/AlphabeticIndex;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/AlphabeticIndex;->addChineseIndexCharacters()Z
-Landroid/icu/text/AlphabeticIndex;->addIndexExemplars(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/AlphabeticIndex;->BASE:Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex;->binaryCmp:Ljava/util/Comparator;
-Landroid/icu/text/AlphabeticIndex;->buckets:Landroid/icu/text/AlphabeticIndex$BucketList;
-Landroid/icu/text/AlphabeticIndex;->CGJ:C
-Landroid/icu/text/AlphabeticIndex;->collatorExternal:Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/AlphabeticIndex;->collatorOriginal:Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/AlphabeticIndex;->collatorPrimaryOnly:Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/AlphabeticIndex;->createBucketList()Landroid/icu/text/AlphabeticIndex$BucketList;
-Landroid/icu/text/AlphabeticIndex;->firstCharsInScripts:Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex;->fixLabel(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex;->GC_CN_MASK:I
-Landroid/icu/text/AlphabeticIndex;->GC_LL_MASK:I
-Landroid/icu/text/AlphabeticIndex;->GC_LM_MASK:I
-Landroid/icu/text/AlphabeticIndex;->GC_LO_MASK:I
-Landroid/icu/text/AlphabeticIndex;->GC_LT_MASK:I
-Landroid/icu/text/AlphabeticIndex;->GC_LU_MASK:I
-Landroid/icu/text/AlphabeticIndex;->GC_L_MASK:I
-Landroid/icu/text/AlphabeticIndex;->getFirstCharactersInScripts()Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex;->hasMultiplePrimaryWeights(Landroid/icu/text/RuleBasedCollator;JLjava/lang/String;)Z
-Landroid/icu/text/AlphabeticIndex;->inflowLabel:Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex;->initBuckets()V
-Landroid/icu/text/AlphabeticIndex;->initialLabels:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/AlphabeticIndex;->initLabels()Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex;->inputList:Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex;->isOneLabelBetterThanOther(Landroid/icu/text/Normalizer2;Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/text/AlphabeticIndex;->maxLabelCount:I
-Landroid/icu/text/AlphabeticIndex;->overflowLabel:Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex;->recordComparator:Ljava/util/Comparator;
-Landroid/icu/text/AlphabeticIndex;->separated(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex;->underflowLabel:Ljava/lang/String;
-Landroid/icu/text/ArabicShaping;->ALEFTYPE:I
-Landroid/icu/text/ArabicShaping;->araLink:[I
-Landroid/icu/text/ArabicShaping;->calculateSize([CII)I
-Landroid/icu/text/ArabicShaping;->changeLamAlef(C)C
-Landroid/icu/text/ArabicShaping;->convertFEto06:[I
-Landroid/icu/text/ArabicShaping;->convertNormalizedLamAlef:[C
-Landroid/icu/text/ArabicShaping;->countSpacesLeft([CII)I
-Landroid/icu/text/ArabicShaping;->countSpacesRight([CII)I
-Landroid/icu/text/ArabicShaping;->countSpaceSub([CIC)I
-Landroid/icu/text/ArabicShaping;->deshapeNormalize([CII)I
-Landroid/icu/text/ArabicShaping;->deShapeUnicode([CIII)I
-Landroid/icu/text/ArabicShaping;->DESHAPE_MODE:I
-Landroid/icu/text/ArabicShaping;->DIGITS_AN2EN:I
-Landroid/icu/text/ArabicShaping;->DIGITS_EN2AN:I
-Landroid/icu/text/ArabicShaping;->DIGITS_EN2AN_INIT_AL:I
-Landroid/icu/text/ArabicShaping;->DIGITS_EN2AN_INIT_LR:I
-Landroid/icu/text/ArabicShaping;->DIGITS_MASK:I
-Landroid/icu/text/ArabicShaping;->DIGITS_NOOP:I
-Landroid/icu/text/ArabicShaping;->DIGIT_TYPE_AN:I
-Landroid/icu/text/ArabicShaping;->DIGIT_TYPE_AN_EXTENDED:I
-Landroid/icu/text/ArabicShaping;->DIGIT_TYPE_MASK:I
-Landroid/icu/text/ArabicShaping;->expandCompositChar([CIIII)I
-Landroid/icu/text/ArabicShaping;->expandCompositCharAtBegin([CIII)Z
-Landroid/icu/text/ArabicShaping;->expandCompositCharAtEnd([CIII)Z
-Landroid/icu/text/ArabicShaping;->expandCompositCharAtNear([CIIIII)Z
-Landroid/icu/text/ArabicShaping;->flipArray([CIII)I
-Landroid/icu/text/ArabicShaping;->getLink(C)I
-Landroid/icu/text/ArabicShaping;->HAMZA06_CHAR:C
-Landroid/icu/text/ArabicShaping;->HAMZAFE_CHAR:C
-Landroid/icu/text/ArabicShaping;->handleGeneratedSpaces([CII)I
-Landroid/icu/text/ArabicShaping;->handleTashkeelWithTatweel([CI)I
-Landroid/icu/text/ArabicShaping;->internalShape([CII[CII)I
-Landroid/icu/text/ArabicShaping;->invertBuffer([CII)V
-Landroid/icu/text/ArabicShaping;->IRRELEVANT:I
-Landroid/icu/text/ArabicShaping;->irrelevantPos:[I
-Landroid/icu/text/ArabicShaping;->isAlefChar(C)Z
-Landroid/icu/text/ArabicShaping;->isIsolatedTashkeelChar(C)I
-Landroid/icu/text/ArabicShaping;->isLamAlefChar(C)Z
-Landroid/icu/text/ArabicShaping;->isLogical:Z
-Landroid/icu/text/ArabicShaping;->isNormalizedLamAlefChar(C)Z
-Landroid/icu/text/ArabicShaping;->isSeenFamilyChar(C)I
-Landroid/icu/text/ArabicShaping;->isTashkeelChar(C)Z
-Landroid/icu/text/ArabicShaping;->isTashkeelCharFE(C)Z
-Landroid/icu/text/ArabicShaping;->isTashkeelOnTatweelChar(C)I
-Landroid/icu/text/ArabicShaping;->LAMALEF_AUTO:I
-Landroid/icu/text/ArabicShaping;->LAMALEF_BEGIN:I
-Landroid/icu/text/ArabicShaping;->LAMALEF_END:I
-Landroid/icu/text/ArabicShaping;->LAMALEF_MASK:I
-Landroid/icu/text/ArabicShaping;->LAMALEF_NEAR:I
-Landroid/icu/text/ArabicShaping;->LAMALEF_RESIZE:I
-Landroid/icu/text/ArabicShaping;->LAMALEF_SPACE_SUB:C
-Landroid/icu/text/ArabicShaping;->LAMTYPE:I
-Landroid/icu/text/ArabicShaping;->LAM_CHAR:C
-Landroid/icu/text/ArabicShaping;->LENGTH_FIXED_SPACES_AT_BEGINNING:I
-Landroid/icu/text/ArabicShaping;->LENGTH_FIXED_SPACES_AT_END:I
-Landroid/icu/text/ArabicShaping;->LENGTH_FIXED_SPACES_NEAR:I
-Landroid/icu/text/ArabicShaping;->LENGTH_GROW_SHRINK:I
-Landroid/icu/text/ArabicShaping;->LENGTH_MASK:I
-Landroid/icu/text/ArabicShaping;->LETTERS_MASK:I
-Landroid/icu/text/ArabicShaping;->LETTERS_NOOP:I
-Landroid/icu/text/ArabicShaping;->LETTERS_SHAPE:I
-Landroid/icu/text/ArabicShaping;->LETTERS_SHAPE_TASHKEEL_ISOLATED:I
-Landroid/icu/text/ArabicShaping;->LETTERS_UNSHAPE:I
-Landroid/icu/text/ArabicShaping;->LINKL:I
-Landroid/icu/text/ArabicShaping;->LINKR:I
-Landroid/icu/text/ArabicShaping;->LINK_MASK:I
-Landroid/icu/text/ArabicShaping;->NEW_TAIL_CHAR:C
-Landroid/icu/text/ArabicShaping;->normalize([CII)I
-Landroid/icu/text/ArabicShaping;->OLD_TAIL_CHAR:C
-Landroid/icu/text/ArabicShaping;->options:I
-Landroid/icu/text/ArabicShaping;->presLink:[I
-Landroid/icu/text/ArabicShaping;->SEEN_MASK:I
-Landroid/icu/text/ArabicShaping;->SEEN_TWOCELL_NEAR:I
-Landroid/icu/text/ArabicShaping;->SHADDA06_CHAR:C
-Landroid/icu/text/ArabicShaping;->SHADDA_CHAR:C
-Landroid/icu/text/ArabicShaping;->SHADDA_TATWEEL_CHAR:C
-Landroid/icu/text/ArabicShaping;->shape([CII)V
-Landroid/icu/text/ArabicShaping;->shape([CII[CII)I
-Landroid/icu/text/ArabicShaping;->shapeTable:[[[I
-Landroid/icu/text/ArabicShaping;->shapeToArabicDigitsWithContext([CIICZ)V
-Landroid/icu/text/ArabicShaping;->shapeUnicode([CIIII)I
-Landroid/icu/text/ArabicShaping;->SHAPE_MODE:I
-Landroid/icu/text/ArabicShaping;->SHAPE_TAIL_NEW_UNICODE:I
-Landroid/icu/text/ArabicShaping;->SHAPE_TAIL_TYPE_MASK:I
-Landroid/icu/text/ArabicShaping;->shiftArray([CIIC)V
-Landroid/icu/text/ArabicShaping;->spacesRelativeToTextBeginEnd:Z
-Landroid/icu/text/ArabicShaping;->SPACES_RELATIVE_TO_TEXT_BEGIN_END:I
-Landroid/icu/text/ArabicShaping;->SPACES_RELATIVE_TO_TEXT_MASK:I
-Landroid/icu/text/ArabicShaping;->SPACE_CHAR:C
-Landroid/icu/text/ArabicShaping;->specialChar(C)I
-Landroid/icu/text/ArabicShaping;->tailChar:C
-Landroid/icu/text/ArabicShaping;->tailFamilyIsolatedFinal:[I
-Landroid/icu/text/ArabicShaping;->tashkeelMedial:[I
-Landroid/icu/text/ArabicShaping;->TASHKEEL_BEGIN:I
-Landroid/icu/text/ArabicShaping;->TASHKEEL_END:I
-Landroid/icu/text/ArabicShaping;->TASHKEEL_MASK:I
-Landroid/icu/text/ArabicShaping;->TASHKEEL_REPLACE_BY_TATWEEL:I
-Landroid/icu/text/ArabicShaping;->TASHKEEL_RESIZE:I
-Landroid/icu/text/ArabicShaping;->TASHKEEL_SPACE_SUB:C
-Landroid/icu/text/ArabicShaping;->TATWEEL_CHAR:C
-Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_LOGICAL:I
-Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_MASK:I
-Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_VISUAL_LTR:I
-Landroid/icu/text/ArabicShaping;->TEXT_DIRECTION_VISUAL_RTL:I
-Landroid/icu/text/ArabicShaping;->yehHamzaToYeh:[C
-Landroid/icu/text/ArabicShaping;->YEHHAMZA_MASK:I
-Landroid/icu/text/ArabicShaping;->YEHHAMZA_TWOCELL_NEAR:I
-Landroid/icu/text/ArabicShaping;->YEH_HAMZAFE_CHAR:C
-Landroid/icu/text/ArabicShaping;->YEH_HAMZA_CHAR:C
-Landroid/icu/text/ArabicShapingException;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/Bidi$BracketData;-><init>()V
-Landroid/icu/text/Bidi$BracketData;->isNumbersSpecial:Z
-Landroid/icu/text/Bidi$BracketData;->isoRunLast:I
-Landroid/icu/text/Bidi$BracketData;->isoRuns:[Landroid/icu/text/Bidi$IsoRun;
-Landroid/icu/text/Bidi$BracketData;->openings:[Landroid/icu/text/Bidi$Opening;
-Landroid/icu/text/Bidi$ImpTabPair;-><init>([[B[[B[S[S)V
-Landroid/icu/text/Bidi$ImpTabPair;->impact:[[S
-Landroid/icu/text/Bidi$ImpTabPair;->imptab:[[[B
-Landroid/icu/text/Bidi$InsertPoints;-><init>()V
-Landroid/icu/text/Bidi$InsertPoints;->confirmed:I
-Landroid/icu/text/Bidi$InsertPoints;->points:[Landroid/icu/text/Bidi$Point;
-Landroid/icu/text/Bidi$InsertPoints;->size:I
-Landroid/icu/text/Bidi$Isolate;-><init>()V
-Landroid/icu/text/Bidi$Isolate;->start1:I
-Landroid/icu/text/Bidi$Isolate;->startON:I
-Landroid/icu/text/Bidi$Isolate;->state:S
-Landroid/icu/text/Bidi$Isolate;->stateImp:S
-Landroid/icu/text/Bidi$IsoRun;-><init>()V
-Landroid/icu/text/Bidi$IsoRun;->contextDir:B
-Landroid/icu/text/Bidi$IsoRun;->contextPos:I
-Landroid/icu/text/Bidi$IsoRun;->lastBase:B
-Landroid/icu/text/Bidi$IsoRun;->lastStrong:B
-Landroid/icu/text/Bidi$IsoRun;->level:B
-Landroid/icu/text/Bidi$IsoRun;->limit:S
-Landroid/icu/text/Bidi$IsoRun;->start:S
-Landroid/icu/text/Bidi$LevState;-><init>()V
-Landroid/icu/text/Bidi$LevState;->impAct:[S
-Landroid/icu/text/Bidi$LevState;->impTab:[[B
-Landroid/icu/text/Bidi$LevState;->lastStrongRTL:I
-Landroid/icu/text/Bidi$LevState;->runLevel:B
-Landroid/icu/text/Bidi$LevState;->runStart:I
-Landroid/icu/text/Bidi$LevState;->startL2EN:I
-Landroid/icu/text/Bidi$LevState;->startON:I
-Landroid/icu/text/Bidi$LevState;->state:S
-Landroid/icu/text/Bidi$Opening;-><init>()V
-Landroid/icu/text/Bidi$Opening;->contextDir:B
-Landroid/icu/text/Bidi$Opening;->contextPos:I
-Landroid/icu/text/Bidi$Opening;->flags:S
-Landroid/icu/text/Bidi$Opening;->match:I
-Landroid/icu/text/Bidi$Opening;->position:I
-Landroid/icu/text/Bidi$Point;-><init>()V
-Landroid/icu/text/Bidi$Point;->flag:I
-Landroid/icu/text/Bidi$Point;->pos:I
-Landroid/icu/text/Bidi;-><init>()V
-Landroid/icu/text/Bidi;-><init>(II)V
-Landroid/icu/text/Bidi;-><init>(Ljava/lang/String;I)V
-Landroid/icu/text/Bidi;-><init>(Ljava/text/AttributedCharacterIterator;)V
-Landroid/icu/text/Bidi;-><init>([CI[BIII)V
-Landroid/icu/text/Bidi;->addPoint(II)V
-Landroid/icu/text/Bidi;->adjustWSLevels()V
-Landroid/icu/text/Bidi;->AL:B
-Landroid/icu/text/Bidi;->AN:B
-Landroid/icu/text/Bidi;->B:B
-Landroid/icu/text/Bidi;->baseIsLeftToRight()Z
-Landroid/icu/text/Bidi;->bdp:Landroid/icu/impl/UBiDiProps;
-Landroid/icu/text/Bidi;->Bidi_Abs(I)I
-Landroid/icu/text/Bidi;->Bidi_Min(II)I
-Landroid/icu/text/Bidi;->BN:B
-Landroid/icu/text/Bidi;->bracketAddOpening(Landroid/icu/text/Bidi$BracketData;CI)V
-Landroid/icu/text/Bidi;->bracketInit(Landroid/icu/text/Bidi$BracketData;)V
-Landroid/icu/text/Bidi;->bracketProcessB(Landroid/icu/text/Bidi$BracketData;B)V
-Landroid/icu/text/Bidi;->bracketProcessBoundary(Landroid/icu/text/Bidi$BracketData;IBB)V
-Landroid/icu/text/Bidi;->bracketProcessChar(Landroid/icu/text/Bidi$BracketData;I)V
-Landroid/icu/text/Bidi;->bracketProcessClosing(Landroid/icu/text/Bidi$BracketData;II)B
-Landroid/icu/text/Bidi;->bracketProcessLRI_RLI(Landroid/icu/text/Bidi$BracketData;B)V
-Landroid/icu/text/Bidi;->bracketProcessPDI(Landroid/icu/text/Bidi$BracketData;)V
-Landroid/icu/text/Bidi;->checkExplicitLevels()B
-Landroid/icu/text/Bidi;->checkParaCount()V
-Landroid/icu/text/Bidi;->CLASS_DEFAULT:I
-Landroid/icu/text/Bidi;->controlCount:I
-Landroid/icu/text/Bidi;->countParagraphs()I
-Landroid/icu/text/Bidi;->countRuns()I
-Landroid/icu/text/Bidi;->CR:C
-Landroid/icu/text/Bidi;->createLineBidi(II)Landroid/icu/text/Bidi;
-Landroid/icu/text/Bidi;->CS:B
-Landroid/icu/text/Bidi;->customClassifier:Landroid/icu/text/BidiClassifier;
-Landroid/icu/text/Bidi;->defaultParaLevel:B
-Landroid/icu/text/Bidi;->direction:B
-Landroid/icu/text/Bidi;->directionFromFlags()B
-Landroid/icu/text/Bidi;->DIRECTION_DEFAULT_LEFT_TO_RIGHT:I
-Landroid/icu/text/Bidi;->DIRECTION_DEFAULT_RIGHT_TO_LEFT:I
-Landroid/icu/text/Bidi;->DIRECTION_LEFT_TO_RIGHT:I
-Landroid/icu/text/Bidi;->DIRECTION_RIGHT_TO_LEFT:I
-Landroid/icu/text/Bidi;->DirFromStrong(B)B
-Landroid/icu/text/Bidi;->DirPropFlag(B)I
-Landroid/icu/text/Bidi;->DirPropFlagE(B)I
-Landroid/icu/text/Bidi;->DirPropFlagE:[I
-Landroid/icu/text/Bidi;->DirPropFlagLR(B)I
-Landroid/icu/text/Bidi;->DirPropFlagLR:[I
-Landroid/icu/text/Bidi;->DirPropFlagMultiRuns:I
-Landroid/icu/text/Bidi;->DirPropFlagO(B)I
-Landroid/icu/text/Bidi;->DirPropFlagO:[I
-Landroid/icu/text/Bidi;->dirProps:[B
-Landroid/icu/text/Bidi;->dirPropsMemory:[B
-Landroid/icu/text/Bidi;->DO_MIRRORING:S
-Landroid/icu/text/Bidi;->EN:B
-Landroid/icu/text/Bidi;->ENL:B
-Landroid/icu/text/Bidi;->ENR:B
-Landroid/icu/text/Bidi;->epilogue:Ljava/lang/String;
-Landroid/icu/text/Bidi;->ES:B
-Landroid/icu/text/Bidi;->ET:B
-Landroid/icu/text/Bidi;->FIRSTALLOC:I
-Landroid/icu/text/Bidi;->firstL_R_AL()B
-Landroid/icu/text/Bidi;->firstL_R_AL_EN_AN()B
-Landroid/icu/text/Bidi;->fixN0c(Landroid/icu/text/Bidi$BracketData;IIB)V
-Landroid/icu/text/Bidi;->flags:I
-Landroid/icu/text/Bidi;->FOUND_L:B
-Landroid/icu/text/Bidi;->FOUND_R:B
-Landroid/icu/text/Bidi;->FSI:B
-Landroid/icu/text/Bidi;->GetAction(B)S
-Landroid/icu/text/Bidi;->GetActionProps(S)S
-Landroid/icu/text/Bidi;->getBaseDirection(Ljava/lang/CharSequence;)B
-Landroid/icu/text/Bidi;->getBaseLevel()I
-Landroid/icu/text/Bidi;->getCustomClassifier()Landroid/icu/text/BidiClassifier;
-Landroid/icu/text/Bidi;->getCustomizedClass(I)I
-Landroid/icu/text/Bidi;->getDirection()B
-Landroid/icu/text/Bidi;->getDirProps()V
-Landroid/icu/text/Bidi;->getDirPropsMemory(I)V
-Landroid/icu/text/Bidi;->getDirPropsMemory(ZI)V
-Landroid/icu/text/Bidi;->getInitialDirPropsMemory(I)V
-Landroid/icu/text/Bidi;->getInitialLevelsMemory(I)V
-Landroid/icu/text/Bidi;->getInitialRunsMemory(I)V
-Landroid/icu/text/Bidi;->getLength()I
-Landroid/icu/text/Bidi;->getLevelAt(I)B
-Landroid/icu/text/Bidi;->getLevels()[B
-Landroid/icu/text/Bidi;->getLevelsMemory(I)V
-Landroid/icu/text/Bidi;->getLevelsMemory(ZI)V
-Landroid/icu/text/Bidi;->getLogicalIndex(I)I
-Landroid/icu/text/Bidi;->getLogicalMap()[I
-Landroid/icu/text/Bidi;->getLogicalRun(I)Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->getLogicalToVisualRunsMap()V
-Landroid/icu/text/Bidi;->GetLRFromLevel(B)B
-Landroid/icu/text/Bidi;->getMemory(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object;
-Landroid/icu/text/Bidi;->getParagraph(I)Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->getParagraphByIndex(I)Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->getParagraphIndex(I)I
-Landroid/icu/text/Bidi;->getParaLevel()B
-Landroid/icu/text/Bidi;->GetParaLevelAt(I)B
-Landroid/icu/text/Bidi;->getProcessedLength()I
-Landroid/icu/text/Bidi;->getReorderingMode()I
-Landroid/icu/text/Bidi;->getReorderingOptions()I
-Landroid/icu/text/Bidi;->getResultLength()I
-Landroid/icu/text/Bidi;->getRunCount()I
-Landroid/icu/text/Bidi;->getRunLevel(I)I
-Landroid/icu/text/Bidi;->getRunLimit(I)I
-Landroid/icu/text/Bidi;->getRunsMemory(I)V
-Landroid/icu/text/Bidi;->getRunsMemory(ZI)V
-Landroid/icu/text/Bidi;->getRunStart(I)I
-Landroid/icu/text/Bidi;->GetState(B)S
-Landroid/icu/text/Bidi;->GetStateProps(S)S
-Landroid/icu/text/Bidi;->getText()[C
-Landroid/icu/text/Bidi;->getTextAsString()Ljava/lang/String;
-Landroid/icu/text/Bidi;->getVisualIndex(I)I
-Landroid/icu/text/Bidi;->getVisualMap()[I
-Landroid/icu/text/Bidi;->getVisualRun(I)Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->groupProp:[S
-Landroid/icu/text/Bidi;->impAct0:[S
-Landroid/icu/text/Bidi;->impAct1:[S
-Landroid/icu/text/Bidi;->impAct2:[S
-Landroid/icu/text/Bidi;->impAct3:[S
-Landroid/icu/text/Bidi;->IMPTABLEVELS_COLUMNS:I
-Landroid/icu/text/Bidi;->IMPTABLEVELS_RES:I
-Landroid/icu/text/Bidi;->impTabL_DEFAULT:[[B
-Landroid/icu/text/Bidi;->impTabL_GROUP_NUMBERS_WITH_R:[[B
-Landroid/icu/text/Bidi;->impTabL_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS:[[B
-Landroid/icu/text/Bidi;->impTabL_INVERSE_LIKE_DIRECT_WITH_MARKS:[[B
-Landroid/icu/text/Bidi;->impTabL_INVERSE_NUMBERS_AS_L:[[B
-Landroid/icu/text/Bidi;->impTabL_NUMBERS_SPECIAL:[[B
-Landroid/icu/text/Bidi;->impTabPair:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTabProps:[[S
-Landroid/icu/text/Bidi;->IMPTABPROPS_COLUMNS:I
-Landroid/icu/text/Bidi;->IMPTABPROPS_RES:I
-Landroid/icu/text/Bidi;->impTabR_DEFAULT:[[B
-Landroid/icu/text/Bidi;->impTabR_GROUP_NUMBERS_WITH_R:[[B
-Landroid/icu/text/Bidi;->impTabR_INVERSE_LIKE_DIRECT:[[B
-Landroid/icu/text/Bidi;->impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS:[[B
-Landroid/icu/text/Bidi;->impTabR_INVERSE_NUMBERS_AS_L:[[B
-Landroid/icu/text/Bidi;->impTab_DEFAULT:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_GROUP_NUMBERS_WITH_R:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_INVERSE_FOR_NUMBERS_SPECIAL:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_INVERSE_LIKE_DIRECT:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_INVERSE_LIKE_DIRECT_WITH_MARKS:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_INVERSE_NUMBERS_AS_L:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->impTab_NUMBERS_SPECIAL:Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi;->insertPoints:Landroid/icu/text/Bidi$InsertPoints;
-Landroid/icu/text/Bidi;->INSERT_LRM_FOR_NUMERIC:S
-Landroid/icu/text/Bidi;->invertMap([I)[I
-Landroid/icu/text/Bidi;->IsBidiControlChar(I)Z
-Landroid/icu/text/Bidi;->IsDefaultLevel(B)Z
-Landroid/icu/text/Bidi;->isGoodLogicalToVisualRunsMap:Z
-Landroid/icu/text/Bidi;->isInverse()Z
-Landroid/icu/text/Bidi;->isInverse:Z
-Landroid/icu/text/Bidi;->isLeftToRight()Z
-Landroid/icu/text/Bidi;->isMixed()Z
-Landroid/icu/text/Bidi;->ISOLATE:I
-Landroid/icu/text/Bidi;->isolateCount:I
-Landroid/icu/text/Bidi;->isolates:[Landroid/icu/text/Bidi$Isolate;
-Landroid/icu/text/Bidi;->isOrderParagraphsLTR()Z
-Landroid/icu/text/Bidi;->isRightToLeft()Z
-Landroid/icu/text/Bidi;->KEEP_BASE_COMBINING:S
-Landroid/icu/text/Bidi;->L:B
-Landroid/icu/text/Bidi;->lastArabicPos:I
-Landroid/icu/text/Bidi;->lastL_R_AL()B
-Landroid/icu/text/Bidi;->length:I
-Landroid/icu/text/Bidi;->levels:[B
-Landroid/icu/text/Bidi;->levelsMemory:[B
-Landroid/icu/text/Bidi;->LEVEL_DEFAULT_LTR:B
-Landroid/icu/text/Bidi;->LEVEL_DEFAULT_RTL:B
-Landroid/icu/text/Bidi;->LEVEL_OVERRIDE:B
-Landroid/icu/text/Bidi;->LF:C
-Landroid/icu/text/Bidi;->logicalToVisualRunsMap:[I
-Landroid/icu/text/Bidi;->LOOKING_FOR_PDI:I
-Landroid/icu/text/Bidi;->LRE:B
-Landroid/icu/text/Bidi;->LRI:B
-Landroid/icu/text/Bidi;->LRM_AFTER:I
-Landroid/icu/text/Bidi;->LRM_BEFORE:I
-Landroid/icu/text/Bidi;->LRO:B
-Landroid/icu/text/Bidi;->LTR:B
-Landroid/icu/text/Bidi;->MAP_NOWHERE:I
-Landroid/icu/text/Bidi;->MASK_BN_EXPLICIT:I
-Landroid/icu/text/Bidi;->MASK_B_S:I
-Landroid/icu/text/Bidi;->MASK_EMBEDDING:I
-Landroid/icu/text/Bidi;->MASK_EXPLICIT:I
-Landroid/icu/text/Bidi;->MASK_ISO:I
-Landroid/icu/text/Bidi;->MASK_LTR:I
-Landroid/icu/text/Bidi;->MASK_POSSIBLE_N:I
-Landroid/icu/text/Bidi;->MASK_RTL:I
-Landroid/icu/text/Bidi;->MASK_R_AL:I
-Landroid/icu/text/Bidi;->MASK_STRONG_EN_AN:I
-Landroid/icu/text/Bidi;->MASK_WS:I
-Landroid/icu/text/Bidi;->MAX_EXPLICIT_LEVEL:B
-Landroid/icu/text/Bidi;->mayAllocateRuns:Z
-Landroid/icu/text/Bidi;->mayAllocateText:Z
-Landroid/icu/text/Bidi;->MIXED:B
-Landroid/icu/text/Bidi;->NEUTRAL:B
-Landroid/icu/text/Bidi;->NoOverride(B)B
-Landroid/icu/text/Bidi;->NOT_SEEKING_STRONG:I
-Landroid/icu/text/Bidi;->NSM:B
-Landroid/icu/text/Bidi;->ON:B
-Landroid/icu/text/Bidi;->OPTION_DEFAULT:I
-Landroid/icu/text/Bidi;->OPTION_INSERT_MARKS:I
-Landroid/icu/text/Bidi;->OPTION_REMOVE_CONTROLS:I
-Landroid/icu/text/Bidi;->OPTION_STREAMING:I
-Landroid/icu/text/Bidi;->orderParagraphsLTR(Z)V
-Landroid/icu/text/Bidi;->orderParagraphsLTR:Z
-Landroid/icu/text/Bidi;->originalLength:I
-Landroid/icu/text/Bidi;->OUTPUT_REVERSE:S
-Landroid/icu/text/Bidi;->paraBidi:Landroid/icu/text/Bidi;
-Landroid/icu/text/Bidi;->paraCount:I
-Landroid/icu/text/Bidi;->paraLevel:B
-Landroid/icu/text/Bidi;->paras_level:[B
-Landroid/icu/text/Bidi;->paras_limit:[I
-Landroid/icu/text/Bidi;->PDF:B
-Landroid/icu/text/Bidi;->PDI:B
-Landroid/icu/text/Bidi;->processPropertySeq(Landroid/icu/text/Bidi$LevState;SII)V
-Landroid/icu/text/Bidi;->prologue:Ljava/lang/String;
-Landroid/icu/text/Bidi;->R:B
-Landroid/icu/text/Bidi;->REMOVE_BIDI_CONTROLS:S
-Landroid/icu/text/Bidi;->reorderingMode:I
-Landroid/icu/text/Bidi;->reorderingOptions:I
-Landroid/icu/text/Bidi;->reorderLogical([B)[I
-Landroid/icu/text/Bidi;->reorderVisual([B)[I
-Landroid/icu/text/Bidi;->reorderVisually([BI[Ljava/lang/Object;II)V
-Landroid/icu/text/Bidi;->REORDER_COUNT:S
-Landroid/icu/text/Bidi;->REORDER_DEFAULT:S
-Landroid/icu/text/Bidi;->REORDER_GROUP_NUMBERS_WITH_R:S
-Landroid/icu/text/Bidi;->REORDER_INVERSE_FOR_NUMBERS_SPECIAL:S
-Landroid/icu/text/Bidi;->REORDER_INVERSE_LIKE_DIRECT:S
-Landroid/icu/text/Bidi;->REORDER_INVERSE_NUMBERS_AS_L:S
-Landroid/icu/text/Bidi;->REORDER_LAST_LOGICAL_TO_VISUAL:S
-Landroid/icu/text/Bidi;->REORDER_NUMBERS_SPECIAL:S
-Landroid/icu/text/Bidi;->REORDER_RUNS_ONLY:S
-Landroid/icu/text/Bidi;->requiresBidi([CII)Z
-Landroid/icu/text/Bidi;->resolveExplicitLevels()B
-Landroid/icu/text/Bidi;->resolveImplicitLevels(IISS)V
-Landroid/icu/text/Bidi;->resultLength:I
-Landroid/icu/text/Bidi;->RLE:B
-Landroid/icu/text/Bidi;->RLI:B
-Landroid/icu/text/Bidi;->RLM_AFTER:I
-Landroid/icu/text/Bidi;->RLM_BEFORE:I
-Landroid/icu/text/Bidi;->RLO:B
-Landroid/icu/text/Bidi;->RTL:B
-Landroid/icu/text/Bidi;->runCount:I
-Landroid/icu/text/Bidi;->runs:[Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->runsMemory:[Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->S:B
-Landroid/icu/text/Bidi;->SEEKING_STRONG_FOR_FSI:I
-Landroid/icu/text/Bidi;->SEEKING_STRONG_FOR_PARA:I
-Landroid/icu/text/Bidi;->setContext(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/Bidi;->setCustomClassifier(Landroid/icu/text/BidiClassifier;)V
-Landroid/icu/text/Bidi;->setInverse(Z)V
-Landroid/icu/text/Bidi;->setLevelsOutsideIsolates(IIB)V
-Landroid/icu/text/Bidi;->setLine(II)Landroid/icu/text/Bidi;
-Landroid/icu/text/Bidi;->setPara(Ljava/lang/String;B[B)V
-Landroid/icu/text/Bidi;->setPara(Ljava/text/AttributedCharacterIterator;)V
-Landroid/icu/text/Bidi;->setPara([CB[B)V
-Landroid/icu/text/Bidi;->setParaRunsOnly([CB)V
-Landroid/icu/text/Bidi;->setParaSuccess()V
-Landroid/icu/text/Bidi;->setReorderingMode(I)V
-Landroid/icu/text/Bidi;->setReorderingOptions(I)V
-Landroid/icu/text/Bidi;->simpleRuns:[Landroid/icu/text/BidiRun;
-Landroid/icu/text/Bidi;->SIMPLE_OPENINGS_COUNT:I
-Landroid/icu/text/Bidi;->SIMPLE_PARAS_COUNT:I
-Landroid/icu/text/Bidi;->testDirPropFlagAt(II)Z
-Landroid/icu/text/Bidi;->text:[C
-Landroid/icu/text/Bidi;->trailingWSStart:I
-Landroid/icu/text/Bidi;->verifyRange(III)V
-Landroid/icu/text/Bidi;->verifyValidPara()V
-Landroid/icu/text/Bidi;->verifyValidParaOrLine()V
-Landroid/icu/text/Bidi;->writeReordered(I)Ljava/lang/String;
-Landroid/icu/text/Bidi;->writeReverse(Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/text/Bidi;->WS:B
-Landroid/icu/text/Bidi;->_AN:S
-Landroid/icu/text/Bidi;->_B:S
-Landroid/icu/text/Bidi;->_EN:S
-Landroid/icu/text/Bidi;->_L:S
-Landroid/icu/text/Bidi;->_ON:S
-Landroid/icu/text/Bidi;->_R:S
-Landroid/icu/text/Bidi;->_S:S
-Landroid/icu/text/BidiClassifier;-><init>(Ljava/lang/Object;)V
-Landroid/icu/text/BidiClassifier;->classify(I)I
-Landroid/icu/text/BidiClassifier;->context:Ljava/lang/Object;
-Landroid/icu/text/BidiClassifier;->getContext()Ljava/lang/Object;
-Landroid/icu/text/BidiClassifier;->setContext(Ljava/lang/Object;)V
-Landroid/icu/text/BidiRun;-><init>()V
-Landroid/icu/text/BidiRun;-><init>(IIB)V
-Landroid/icu/text/BidiRun;->copyFrom(Landroid/icu/text/BidiRun;)V
-Landroid/icu/text/BidiRun;->getDirection()B
-Landroid/icu/text/BidiRun;->getEmbeddingLevel()B
-Landroid/icu/text/BidiRun;->getLength()I
-Landroid/icu/text/BidiRun;->getLimit()I
-Landroid/icu/text/BidiRun;->getStart()I
-Landroid/icu/text/BidiRun;->insertRemove:I
-Landroid/icu/text/BidiRun;->isEvenRun()Z
-Landroid/icu/text/BidiRun;->isOddRun()Z
-Landroid/icu/text/BidiRun;->level:B
-Landroid/icu/text/BidiRun;->limit:I
-Landroid/icu/text/BidiRun;->start:I
-Landroid/icu/text/BidiTransform$Mirroring;->OFF:Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Mirroring;->ON:Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Mirroring;->valueOf(Ljava/lang/String;)Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Mirroring;->values()[Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Order;->LOGICAL:Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$Order;->valueOf(Ljava/lang/String;)Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$Order;->values()[Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$Order;->VISUAL:Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->doTransform(Landroid/icu/text/BidiTransform;)V
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_RTL_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->matches(BLandroid/icu/text/BidiTransform$Order;BLandroid/icu/text/BidiTransform$Order;)Z
-Landroid/icu/text/BidiTransform$ReorderingScheme;->valueOf(Ljava/lang/String;)Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->values()[Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_LTR_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform;-><init>()V
-Landroid/icu/text/BidiTransform;->bidi:Landroid/icu/text/Bidi;
-Landroid/icu/text/BidiTransform;->findMatchingScheme(BLandroid/icu/text/BidiTransform$Order;BLandroid/icu/text/BidiTransform$Order;)Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform;->IsLogical(Landroid/icu/text/BidiTransform$Order;)Z
-Landroid/icu/text/BidiTransform;->IsLTR(B)Z
-Landroid/icu/text/BidiTransform;->IsRTL(B)Z
-Landroid/icu/text/BidiTransform;->IsVisual(Landroid/icu/text/BidiTransform$Order;)Z
-Landroid/icu/text/BidiTransform;->mirror()V
-Landroid/icu/text/BidiTransform;->reorder()V
-Landroid/icu/text/BidiTransform;->reorderingOptions:I
-Landroid/icu/text/BidiTransform;->resolve(BI)V
-Landroid/icu/text/BidiTransform;->resolveBaseDirection([B)V
-Landroid/icu/text/BidiTransform;->reverse()V
-Landroid/icu/text/BidiTransform;->shapeArabic(I)V
-Landroid/icu/text/BidiTransform;->shapeArabic(II)V
-Landroid/icu/text/BidiTransform;->shapingOptions:I
-Landroid/icu/text/BidiTransform;->text:Ljava/lang/String;
-Landroid/icu/text/BidiTransform;->transform(Ljava/lang/CharSequence;BLandroid/icu/text/BidiTransform$Order;BLandroid/icu/text/BidiTransform$Order;Landroid/icu/text/BidiTransform$Mirroring;I)Ljava/lang/String;
-Landroid/icu/text/BreakIterator$BreakIteratorCache;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/BreakIterator;)V
-Landroid/icu/text/BreakIterator$BreakIteratorCache;->createBreakInstance()Landroid/icu/text/BreakIterator;
-Landroid/icu/text/BreakIterator$BreakIteratorCache;->getLocale()Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator$BreakIteratorCache;->iter:Landroid/icu/text/BreakIterator;
-Landroid/icu/text/BreakIterator$BreakIteratorCache;->where:Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;-><init>()V
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->createBreakIterator(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->getAvailableLocales()[Ljava/util/Locale;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->registerInstance(Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;I)Ljava/lang/Object;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/BreakIterator;->actualLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator;->DEBUG:Z
-Landroid/icu/text/BreakIterator;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator;->getBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
-Landroid/icu/text/BreakIterator;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator;->getShim()Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
-Landroid/icu/text/BreakIterator;->iterCache:[Landroid/icu/impl/CacheValue;
-Landroid/icu/text/BreakIterator;->KIND_COUNT:I
-Landroid/icu/text/BreakIterator;->registerInstance(Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;I)Ljava/lang/Object;
-Landroid/icu/text/BreakIterator;->registerInstance(Landroid/icu/text/BreakIterator;Ljava/util/Locale;I)Ljava/lang/Object;
-Landroid/icu/text/BreakIterator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/BreakIterator;->setText(Ljava/lang/CharSequence;)V
-Landroid/icu/text/BreakIterator;->shim:Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
-Landroid/icu/text/BreakIterator;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/BreakIterator;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/CanonicalIterator;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/CanonicalIterator;->buffer:Ljava/lang/StringBuilder;
-Landroid/icu/text/CanonicalIterator;->current:[I
-Landroid/icu/text/CanonicalIterator;->done:Z
-Landroid/icu/text/CanonicalIterator;->extract(ILjava/lang/String;ILjava/lang/StringBuffer;)Ljava/util/Set;
-Landroid/icu/text/CanonicalIterator;->getEquivalents(Ljava/lang/String;)[Ljava/lang/String;
-Landroid/icu/text/CanonicalIterator;->getEquivalents2(Ljava/lang/String;)Ljava/util/Set;
-Landroid/icu/text/CanonicalIterator;->getSource()Ljava/lang/String;
-Landroid/icu/text/CanonicalIterator;->next()Ljava/lang/String;
-Landroid/icu/text/CanonicalIterator;->nfcImpl:Landroid/icu/impl/Normalizer2Impl;
-Landroid/icu/text/CanonicalIterator;->nfd:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/CanonicalIterator;->permute(Ljava/lang/String;ZLjava/util/Set;)V
-Landroid/icu/text/CanonicalIterator;->pieces:[[Ljava/lang/String;
-Landroid/icu/text/CanonicalIterator;->PROGRESS:Z
-Landroid/icu/text/CanonicalIterator;->reset()V
-Landroid/icu/text/CanonicalIterator;->setSource(Ljava/lang/String;)V
-Landroid/icu/text/CanonicalIterator;->SET_WITH_NULL_STRING:Ljava/util/Set;
-Landroid/icu/text/CanonicalIterator;->SKIP_ZEROS:Z
-Landroid/icu/text/CanonicalIterator;->source:Ljava/lang/String;
-Landroid/icu/text/CaseMap$Fold;-><init>(I)V
-Landroid/icu/text/CaseMap$Fold;->apply(Ljava/lang/CharSequence;)Ljava/lang/String;
-Landroid/icu/text/CaseMap$Fold;->apply(Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
-Landroid/icu/text/CaseMap$Fold;->DEFAULT:Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Fold;->omitUnchangedText()Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Fold;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Fold;->turkic()Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Fold;->TURKIC:Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Fold;->TURKIC_OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Lower;-><init>(I)V
-Landroid/icu/text/CaseMap$Lower;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;)Ljava/lang/String;
-Landroid/icu/text/CaseMap$Lower;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
-Landroid/icu/text/CaseMap$Lower;->DEFAULT:Landroid/icu/text/CaseMap$Lower;
-Landroid/icu/text/CaseMap$Lower;->omitUnchangedText()Landroid/icu/text/CaseMap$Lower;
-Landroid/icu/text/CaseMap$Lower;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Lower;
-Landroid/icu/text/CaseMap$Title;-><init>(I)V
-Landroid/icu/text/CaseMap$Title;->adjustToCased()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->apply(Ljava/util/Locale;Landroid/icu/text/BreakIterator;Ljava/lang/CharSequence;)Ljava/lang/String;
-Landroid/icu/text/CaseMap$Title;->apply(Ljava/util/Locale;Landroid/icu/text/BreakIterator;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
-Landroid/icu/text/CaseMap$Title;->DEFAULT:Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->noBreakAdjustment()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->noLowercase()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->omitUnchangedText()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->sentences()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Title;->wholeString()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Upper;-><init>(I)V
-Landroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;)Ljava/lang/String;
-Landroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
-Landroid/icu/text/CaseMap$Upper;->DEFAULT:Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CaseMap$Upper;->omitUnchangedText()Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CaseMap$Upper;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CaseMap;-><init>(I)V
-Landroid/icu/text/CaseMap;->fold()Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap;->getCaseLocale(Ljava/util/Locale;)I
-Landroid/icu/text/CaseMap;->internalOptions:I
-Landroid/icu/text/CaseMap;->omitUnchangedText()Landroid/icu/text/CaseMap;
-Landroid/icu/text/CaseMap;->toLower()Landroid/icu/text/CaseMap$Lower;
-Landroid/icu/text/CaseMap;->toTitle()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap;->toUpper()Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CharsetDetector$CSRecognizerInfo;-><init>(Landroid/icu/text/CharsetRecognizer;Z)V
-Landroid/icu/text/CharsetDetector$CSRecognizerInfo;->isDefaultEnabled:Z
-Landroid/icu/text/CharsetDetector$CSRecognizerInfo;->recognizer:Landroid/icu/text/CharsetRecognizer;
-Landroid/icu/text/CharsetDetector;-><init>()V
-Landroid/icu/text/CharsetDetector;->ALL_CS_RECOGNIZERS:Ljava/util/List;
-Landroid/icu/text/CharsetDetector;->detect()Landroid/icu/text/CharsetMatch;
-Landroid/icu/text/CharsetDetector;->detectAll()[Landroid/icu/text/CharsetMatch;
-Landroid/icu/text/CharsetDetector;->enableInputFilter(Z)Z
-Landroid/icu/text/CharsetDetector;->fByteStats:[S
-Landroid/icu/text/CharsetDetector;->fC1Bytes:Z
-Landroid/icu/text/CharsetDetector;->fDeclaredEncoding:Ljava/lang/String;
-Landroid/icu/text/CharsetDetector;->fEnabledRecognizers:[Z
-Landroid/icu/text/CharsetDetector;->fInputBytes:[B
-Landroid/icu/text/CharsetDetector;->fInputLen:I
-Landroid/icu/text/CharsetDetector;->fInputStream:Ljava/io/InputStream;
-Landroid/icu/text/CharsetDetector;->fRawInput:[B
-Landroid/icu/text/CharsetDetector;->fRawLength:I
-Landroid/icu/text/CharsetDetector;->fStripTags:Z
-Landroid/icu/text/CharsetDetector;->getAllDetectableCharsets()[Ljava/lang/String;
-Landroid/icu/text/CharsetDetector;->getDetectableCharsets()[Ljava/lang/String;
-Landroid/icu/text/CharsetDetector;->getReader(Ljava/io/InputStream;Ljava/lang/String;)Ljava/io/Reader;
-Landroid/icu/text/CharsetDetector;->getString([BLjava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/CharsetDetector;->inputFilterEnabled()Z
-Landroid/icu/text/CharsetDetector;->kBufSize:I
-Landroid/icu/text/CharsetDetector;->MungeInput()V
-Landroid/icu/text/CharsetDetector;->setDeclaredEncoding(Ljava/lang/String;)Landroid/icu/text/CharsetDetector;
-Landroid/icu/text/CharsetDetector;->setDetectableCharset(Ljava/lang/String;Z)Landroid/icu/text/CharsetDetector;
-Landroid/icu/text/CharsetDetector;->setText(Ljava/io/InputStream;)Landroid/icu/text/CharsetDetector;
-Landroid/icu/text/CharsetDetector;->setText([B)Landroid/icu/text/CharsetDetector;
-Landroid/icu/text/CharsetMatch;-><init>(Landroid/icu/text/CharsetDetector;Landroid/icu/text/CharsetRecognizer;I)V
-Landroid/icu/text/CharsetMatch;-><init>(Landroid/icu/text/CharsetDetector;Landroid/icu/text/CharsetRecognizer;ILjava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/CharsetMatch;->compareTo(Landroid/icu/text/CharsetMatch;)I
-Landroid/icu/text/CharsetMatch;->fCharsetName:Ljava/lang/String;
-Landroid/icu/text/CharsetMatch;->fConfidence:I
-Landroid/icu/text/CharsetMatch;->fInputStream:Ljava/io/InputStream;
-Landroid/icu/text/CharsetMatch;->fLang:Ljava/lang/String;
-Landroid/icu/text/CharsetMatch;->fRawInput:[B
-Landroid/icu/text/CharsetMatch;->fRawLength:I
-Landroid/icu/text/CharsetMatch;->getConfidence()I
-Landroid/icu/text/CharsetMatch;->getLanguage()Ljava/lang/String;
-Landroid/icu/text/CharsetMatch;->getName()Ljava/lang/String;
-Landroid/icu/text/CharsetMatch;->getReader()Ljava/io/Reader;
-Landroid/icu/text/CharsetMatch;->getString()Ljava/lang/String;
-Landroid/icu/text/CharsetMatch;->getString(I)Ljava/lang/String;
-Landroid/icu/text/CharsetRecognizer;-><init>()V
-Landroid/icu/text/CharsetRecognizer;->getLanguage()Ljava/lang/String;
-Landroid/icu/text/CharsetRecognizer;->getName()Ljava/lang/String;
-Landroid/icu/text/CharsetRecognizer;->match(Landroid/icu/text/CharsetDetector;)Landroid/icu/text/CharsetMatch;
-Landroid/icu/text/ChineseDateFormat$Field;-><init>(Ljava/lang/String;I)V
-Landroid/icu/text/ChineseDateFormat$Field;->IS_LEAP_MONTH:Landroid/icu/text/ChineseDateFormat$Field;
-Landroid/icu/text/ChineseDateFormat$Field;->ofCalendarField(I)Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/ChineseDateFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/ChineseDateFormat;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/ChineseDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
-Landroid/icu/text/ChineseDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)V
-Landroid/icu/text/ChineseDateFormatSymbols;-><init>()V
-Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Ljava/util/Locale;)V
-Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Ljava/util/Locale;)V
-Landroid/icu/text/ChineseDateFormatSymbols;->getLeapMonth(I)Ljava/lang/String;
-Landroid/icu/text/ChineseDateFormatSymbols;->initializeData(Landroid/icu/text/DateFormatSymbols;)V
-Landroid/icu/text/ChineseDateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-Landroid/icu/text/ChineseDateFormatSymbols;->initializeIsLeapMonth()V
-Landroid/icu/text/ChineseDateFormatSymbols;->isLeapMonth:[Ljava/lang/String;
-Landroid/icu/text/CollationElementIterator$MaxExpSink;-><init>(Ljava/util/Map;)V
-Landroid/icu/text/CollationElementIterator$MaxExpSink;->maxExpansions:Ljava/util/Map;
-Landroid/icu/text/CollationElementIterator;-><init>(Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/CollationElementIterator;-><init>(Landroid/icu/text/UCharacterIterator;Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/CollationElementIterator;-><init>(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/CollationElementIterator;-><init>(Ljava/text/CharacterIterator;Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/CollationElementIterator;->ceNeedsTwoParts(J)Z
-Landroid/icu/text/CollationElementIterator;->computeMaxExpansions(Landroid/icu/impl/coll/CollationData;)Ljava/util/Map;
-Landroid/icu/text/CollationElementIterator;->dir_:B
-Landroid/icu/text/CollationElementIterator;->getFirstHalf(JI)I
-Landroid/icu/text/CollationElementIterator;->getMaxExpansion(Ljava/util/Map;I)I
-Landroid/icu/text/CollationElementIterator;->getRuleBasedCollator()Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/CollationElementIterator;->getSecondHalf(JI)I
-Landroid/icu/text/CollationElementIterator;->iter_:Landroid/icu/impl/coll/CollationIterator;
-Landroid/icu/text/CollationElementIterator;->normalizeDir()B
-Landroid/icu/text/CollationElementIterator;->offsets_:Landroid/icu/impl/coll/UVector32;
-Landroid/icu/text/CollationElementIterator;->otherHalf_:I
-Landroid/icu/text/CollationElementIterator;->rbc_:Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/CollationElementIterator;->string_:Ljava/lang/String;
-Landroid/icu/text/CollationKey$BoundMode;-><init>()V
-Landroid/icu/text/CollationKey$BoundMode;->COUNT:I
-Landroid/icu/text/CollationKey;-><init>(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)V
-Landroid/icu/text/CollationKey;-><init>(Ljava/lang/String;[BI)V
-Landroid/icu/text/CollationKey;->getLength()I
-Landroid/icu/text/CollationKey;->MERGE_SEPERATOR_:I
-Landroid/icu/text/CollationKey;->m_hashCode_:I
-Landroid/icu/text/CollationKey;->m_key_:[B
-Landroid/icu/text/CollationKey;->m_length_:I
-Landroid/icu/text/CollationKey;->m_source_:Ljava/lang/String;
-Landroid/icu/text/Collator$ASCII;-><init>()V
-Landroid/icu/text/Collator$ASCII;->equalIgnoreCase(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
-Landroid/icu/text/Collator$CollatorFactory;-><init>()V
-Landroid/icu/text/Collator$CollatorFactory;->createCollator(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
-Landroid/icu/text/Collator$CollatorFactory;->createCollator(Ljava/util/Locale;)Landroid/icu/text/Collator;
-Landroid/icu/text/Collator$CollatorFactory;->getDisplayName(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/text/Collator$CollatorFactory;->getDisplayName(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String;
-Landroid/icu/text/Collator$CollatorFactory;->getSupportedLocaleIDs()Ljava/util/Set;
-Landroid/icu/text/Collator$CollatorFactory;->visible()Z
-Landroid/icu/text/Collator$KeywordsSink;-><init>()V
-Landroid/icu/text/Collator$KeywordsSink;->hasDefault:Z
-Landroid/icu/text/Collator$KeywordsSink;->values:Ljava/util/LinkedList;
-Landroid/icu/text/Collator$ReorderCodes;->LIMIT:I
-Landroid/icu/text/Collator$ServiceShim;-><init>()V
-Landroid/icu/text/Collator$ServiceShim;->getAvailableLocales()[Ljava/util/Locale;
-Landroid/icu/text/Collator$ServiceShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/Collator$ServiceShim;->getDisplayName(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/text/Collator$ServiceShim;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
-Landroid/icu/text/Collator$ServiceShim;->registerFactory(Landroid/icu/text/Collator$CollatorFactory;)Ljava/lang/Object;
-Landroid/icu/text/Collator$ServiceShim;->registerInstance(Landroid/icu/text/Collator;Landroid/icu/util/ULocale;)Ljava/lang/Object;
-Landroid/icu/text/Collator$ServiceShim;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/Collator;->BASE:Ljava/lang/String;
-Landroid/icu/text/Collator;->checkNotFrozen()V
-Landroid/icu/text/Collator;->DEBUG:Z
-Landroid/icu/text/Collator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
-Landroid/icu/text/Collator;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
-Landroid/icu/text/Collator;->getRawCollationKey(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/Collator;->getReorderCode(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/Collator;->getShim()Landroid/icu/text/Collator$ServiceShim;
-Landroid/icu/text/Collator;->getYesOrNo(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/text/Collator;->KEYWORDS:[Ljava/lang/String;
-Landroid/icu/text/Collator;->registerFactory(Landroid/icu/text/Collator$CollatorFactory;)Ljava/lang/Object;
-Landroid/icu/text/Collator;->registerInstance(Landroid/icu/text/Collator;Landroid/icu/util/ULocale;)Ljava/lang/Object;
-Landroid/icu/text/Collator;->RESOURCE:Ljava/lang/String;
-Landroid/icu/text/Collator;->setAttributesFromKeywords(Landroid/icu/util/ULocale;Landroid/icu/text/Collator;Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/Collator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/Collator;->setStrength2(I)Landroid/icu/text/Collator;
-Landroid/icu/text/Collator;->setVariableTop(I)V
-Landroid/icu/text/Collator;->setVariableTop(Ljava/lang/String;)I
-Landroid/icu/text/Collator;->shim:Landroid/icu/text/Collator$ServiceShim;
-Landroid/icu/text/Collator;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/CompactDecimalFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/CompactDecimalFormat$CompactStyle;)V
-Landroid/icu/text/ComposedCharIter;-><init>()V
-Landroid/icu/text/ComposedCharIter;-><init>(ZI)V
-Landroid/icu/text/ComposedCharIter;->curChar:I
-Landroid/icu/text/ComposedCharIter;->decompBuf:Ljava/lang/String;
-Landroid/icu/text/ComposedCharIter;->decomposition()Ljava/lang/String;
-Landroid/icu/text/ComposedCharIter;->DONE:C
-Landroid/icu/text/ComposedCharIter;->findNextChar()V
-Landroid/icu/text/ComposedCharIter;->hasNext()Z
-Landroid/icu/text/ComposedCharIter;->n2impl:Landroid/icu/impl/Normalizer2Impl;
-Landroid/icu/text/ComposedCharIter;->next()C
-Landroid/icu/text/ComposedCharIter;->nextChar:I
-Landroid/icu/text/CurrencyDisplayNames;-><init>()V
-Landroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;
-Landroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/text/CurrencyDisplayNames;
-Landroid/icu/text/CurrencyDisplayNames;->getInstance(Ljava/util/Locale;)Landroid/icu/text/CurrencyDisplayNames;
-Landroid/icu/text/CurrencyDisplayNames;->getInstance(Ljava/util/Locale;Z)Landroid/icu/text/CurrencyDisplayNames;
-Landroid/icu/text/CurrencyDisplayNames;->getName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/CurrencyDisplayNames;->getPluralName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/CurrencyDisplayNames;->getSymbol(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/CurrencyDisplayNames;->getULocale()Landroid/icu/util/ULocale;
-Landroid/icu/text/CurrencyDisplayNames;->hasData()Z
-Landroid/icu/text/CurrencyDisplayNames;->nameMap()Ljava/util/Map;
-Landroid/icu/text/CurrencyDisplayNames;->symbolMap()Ljava/util/Map;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;-><init>(II)V
-Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;->fractionDigits:I
-Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;->roundingIncrement:I
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;-><init>(Ljava/lang/String;Ljava/lang/String;JJZ)V
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->all()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->ALL:Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->currency:Ljava/lang/String;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->equals(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Z
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->equals(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->from:J
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->now()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onCurrency(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDate(J)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDateRange(JJ)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDateRange(Ljava/util/Date;Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onTender()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->region:Ljava/lang/String;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->tenderOnly:Z
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->to:J
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withCurrency(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDate(J)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDateRange(JJ)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDateRange(Ljava/util/Date;Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withTender()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;-><init>(Ljava/lang/String;Ljava/lang/String;JJI)V
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;-><init>(Ljava/lang/String;Ljava/lang/String;JJIZ)V
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->code:Ljava/lang/String;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->from:J
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->isTender()Z
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->priority:I
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->region:Ljava/lang/String;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->tender:Z
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->to:J
-Landroid/icu/text/CurrencyMetaInfo;-><init>()V
-Landroid/icu/text/CurrencyMetaInfo;->currencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-Landroid/icu/text/CurrencyMetaInfo;->currencyDigits(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
-Landroid/icu/text/CurrencyMetaInfo;->currencyDigits(Ljava/lang/String;Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
-Landroid/icu/text/CurrencyMetaInfo;->currencyInfo(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-Landroid/icu/text/CurrencyMetaInfo;->dateString(J)Ljava/lang/String;
-Landroid/icu/text/CurrencyMetaInfo;->debugString(Ljava/lang/Object;)Ljava/lang/String;
-Landroid/icu/text/CurrencyMetaInfo;->defaultDigits:Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
-Landroid/icu/text/CurrencyMetaInfo;->getInstance()Landroid/icu/text/CurrencyMetaInfo;
-Landroid/icu/text/CurrencyMetaInfo;->getInstance(Z)Landroid/icu/text/CurrencyMetaInfo;
-Landroid/icu/text/CurrencyMetaInfo;->hasData()Z
-Landroid/icu/text/CurrencyMetaInfo;->hasData:Z
-Landroid/icu/text/CurrencyMetaInfo;->impl:Landroid/icu/text/CurrencyMetaInfo;
-Landroid/icu/text/CurrencyMetaInfo;->regions(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-Landroid/icu/text/CurrencyPluralInfo;->defaultCurrencyPluralPattern:Ljava/lang/String;
-Landroid/icu/text/CurrencyPluralInfo;->defaultCurrencyPluralPatternChar:[C
-Landroid/icu/text/CurrencyPluralInfo;->initialize(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/CurrencyPluralInfo;->pluralCountToCurrencyUnitPattern:Ljava/util/Map;
-Landroid/icu/text/CurrencyPluralInfo;->pluralPatternIterator()Ljava/util/Iterator;
-Landroid/icu/text/CurrencyPluralInfo;->pluralRules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/CurrencyPluralInfo;->select(D)Ljava/lang/String;
-Landroid/icu/text/CurrencyPluralInfo;->select(Landroid/icu/text/PluralRules$FixedDecimal;)Ljava/lang/String;
-Landroid/icu/text/CurrencyPluralInfo;->setupCurrencyPluralPattern(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/CurrencyPluralInfo;->tripleCurrencySign:[C
-Landroid/icu/text/CurrencyPluralInfo;->tripleCurrencyStr:Ljava/lang/String;
-Landroid/icu/text/CurrencyPluralInfo;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormat$BooleanAttribute;->PARSE_PARTIAL_MATCH:Landroid/icu/text/DateFormat$BooleanAttribute;
-Landroid/icu/text/DateFormat$Field;->calendarField:I
-Landroid/icu/text/DateFormat$Field;->CAL_FIELDS:[Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/DateFormat$Field;->CAL_FIELD_COUNT:I
-Landroid/icu/text/DateFormat$Field;->FIELD_NAME_MAP:Ljava/util/Map;
-Landroid/icu/text/DateFormat$Field;->RELATED_YEAR:Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/DateFormat$Field;->TIME_SEPARATOR:Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/DateFormat;->ABBR_STANDALONE_MONTH:Ljava/lang/String;
-Landroid/icu/text/DateFormat;->booleanAttributes:Ljava/util/EnumSet;
-Landroid/icu/text/DateFormat;->capitalizationSetting:Landroid/icu/text/DisplayContext;
-Landroid/icu/text/DateFormat;->currentSerialVersion:I
-Landroid/icu/text/DateFormat;->DATE_SKELETONS:Ljava/util/List;
-Landroid/icu/text/DateFormat;->FIELD_COUNT:I
-Landroid/icu/text/DateFormat;->fixNumberFormatForDates(Landroid/icu/text/NumberFormat;)V
-Landroid/icu/text/DateFormat;->get(IILandroid/icu/util/ULocale;Landroid/icu/util/Calendar;)Landroid/icu/text/DateFormat;
-Landroid/icu/text/DateFormat;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormat;->getInstance(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-Landroid/icu/text/DateFormat;->HOUR_GENERIC_TZ:Ljava/lang/String;
-Landroid/icu/text/DateFormat;->HOUR_MINUTE_GENERIC_TZ:Ljava/lang/String;
-Landroid/icu/text/DateFormat;->HOUR_MINUTE_TZ:Ljava/lang/String;
-Landroid/icu/text/DateFormat;->HOUR_TZ:Ljava/lang/String;
-Landroid/icu/text/DateFormat;->RELATED_YEAR:I
-Landroid/icu/text/DateFormat;->serialVersionOnStream:I
-Landroid/icu/text/DateFormat;->STANDALONE_MONTH:Ljava/lang/String;
-Landroid/icu/text/DateFormat;->TIME_SEPARATOR:I
-Landroid/icu/text/DateFormat;->TIME_SKELETONS:Ljava/util/List;
-Landroid/icu/text/DateFormat;->ZONE_SKELETONS:Ljava/util/List;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->DIFFERENT_CALENDAR:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->GREGORIAN:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->NONE:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->SAME_CALENDAR:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->valueOf(Ljava/lang/String;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->values()[Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;-><init>()V
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->aliasPathPairs:Ljava/util/List;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->aliasRelativePath:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->arrays:Ljava/util/Map;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->CALENDAR_ALIAS_PREFIX:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->currentCalendarType:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->maps:Ljava/util/Map;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->nextCalendarType:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->preEnumerate(Ljava/lang/String;)V
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->processAliasFromValue(Ljava/lang/String;Landroid/icu/impl/UResource$Value;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->processResource(Ljava/lang/String;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->resourcesToVisit:Ljava/util/Set;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->visitAllResources()V
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->DAY_FORMAT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->DAY_NARROW:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->DAY_STANDALONE:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ERA_ABBREV:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ERA_NARROW:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ERA_WIDE:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->METAZONE_LONG:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->METAZONE_SHORT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->MONTH_FORMAT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->MONTH_NARROW:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->MONTH_STANDALONE:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->OTHER:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->valueOf(Ljava/lang/String;)Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ZONE_LONG:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->ZONE_SHORT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-Landroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
-Landroid/icu/text/DateFormatSymbols;->abbreviatedDayPeriods:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->actualLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormatSymbols;->ALTERNATE_TIME_SEPARATOR:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->ampms:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->ampmsNarrow:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->arrayOfArrayEquals([[Ljava/lang/Object;[[Ljava/lang/Object;)Z
-Landroid/icu/text/DateFormatSymbols;->CALENDAR_CLASSES:[[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->capitalization:Ljava/util/Map;
-Landroid/icu/text/DateFormatSymbols;->contextUsageTypeMap:Ljava/util/Map;
-Landroid/icu/text/DateFormatSymbols;->DAY_PERIOD_KEYS:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->DEFAULT_TIME_SEPARATOR:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->DFSCACHE:Landroid/icu/impl/CacheBase;
-Landroid/icu/text/DateFormatSymbols;->DT_CONTEXT_COUNT:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_FORMAT_ABBREV:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_FORMAT_NARROW:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_FORMAT_WIDE:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_NUMERIC:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_STANDALONE_ABBREV:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_STANDALONE_NARROW:I
-Landroid/icu/text/DateFormatSymbols;->DT_LEAP_MONTH_PATTERN_STANDALONE_WIDE:I
-Landroid/icu/text/DateFormatSymbols;->DT_MONTH_PATTERN_COUNT:I
-Landroid/icu/text/DateFormatSymbols;->DT_WIDTH_COUNT:I
-Landroid/icu/text/DateFormatSymbols;->duplicate([Ljava/lang/String;)[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->duplicate([[Ljava/lang/String;)[[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->eraNames:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->eras:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Ljava/util/ResourceBundle;
-Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Landroid/icu/util/Calendar;Ljava/util/Locale;)Ljava/util/ResourceBundle;
-Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Ljava/lang/Class;Landroid/icu/util/ULocale;)Ljava/util/ResourceBundle;
-Landroid/icu/text/DateFormatSymbols;->getDateFormatBundle(Ljava/lang/Class;Ljava/util/Locale;)Ljava/util/ResourceBundle;
-Landroid/icu/text/DateFormatSymbols;->getLeapMonthPattern(II)Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->getNarrowEras()[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->getTimeSeparatorString()Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/text/DateFormatSymbols;)V
-Landroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-Landroid/icu/text/DateFormatSymbols;->leapMonthPatterns:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->LEAP_MONTH_PATTERNS_PATHS:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->loadDayPeriodStrings(Ljava/util/Map;)[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->localPatternChars:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->millisPerHour:I
-Landroid/icu/text/DateFormatSymbols;->months:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->narrowDayPeriods:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->narrowEras:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->narrowMonths:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->narrowWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->NUMERIC:I
-Landroid/icu/text/DateFormatSymbols;->patternChars:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->quarters:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->requestedLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormatSymbols;->setLeapMonthPattern(Ljava/lang/String;II)V
-Landroid/icu/text/DateFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateFormatSymbols;->setTimeSeparatorString(Ljava/lang/String;)V
-Landroid/icu/text/DateFormatSymbols;->shorterWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->shortMonths:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->shortQuarters:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->shortWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->shortYearNames:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->shortZodiacNames:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneAbbreviatedDayPeriods:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneMonths:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneNarrowDayPeriods:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneNarrowMonths:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneNarrowWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneQuarters:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneShorterWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneShortMonths:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneShortQuarters:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneShortWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneWeekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->standaloneWideDayPeriods:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->timeSeparator:Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormatSymbols;->weekdays:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->wideDayPeriods:[Ljava/lang/String;
-Landroid/icu/text/DateFormatSymbols;->zoneStrings:[[Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat$BestMatchInfo;-><init>(Ljava/lang/String;I)V
-Landroid/icu/text/DateIntervalFormat$BestMatchInfo;->bestMatchDistanceInfo:I
-Landroid/icu/text/DateIntervalFormat$BestMatchInfo;->bestMatchSkeleton:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;->bestMatchSkeleton:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;->skeleton:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateIntervalInfo;Landroid/icu/text/SimpleDateFormat;)V
-Landroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/text/SimpleDateFormat;)V
-Landroid/icu/text/DateIntervalFormat;->adjustFieldWidth(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->adjustPosition(Ljava/lang/String;Ljava/lang/String;Ljava/text/FieldPosition;Ljava/lang/String;Ljava/text/FieldPosition;Ljava/text/FieldPosition;)V
-Landroid/icu/text/DateIntervalFormat;->concatSingleDate2TimeInterval(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V
-Landroid/icu/text/DateIntervalFormat;->fallbackFormat(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;ZLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-Landroid/icu/text/DateIntervalFormat;->fallbackFormat(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;ZLjava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/lang/String;)Ljava/lang/StringBuffer;
-Landroid/icu/text/DateIntervalFormat;->fDateFormat:Landroid/icu/text/SimpleDateFormat;
-Landroid/icu/text/DateIntervalFormat;->fDatePattern:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->fDateTimeFormat:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->fFromCalendar:Landroid/icu/util/Calendar;
-Landroid/icu/text/DateIntervalFormat;->fieldExistsInSkeleton(ILjava/lang/String;)Z
-Landroid/icu/text/DateIntervalFormat;->fInfo:Landroid/icu/text/DateIntervalInfo;
-Landroid/icu/text/DateIntervalFormat;->fIntervalPatterns:Ljava/util/Map;
-Landroid/icu/text/DateIntervalFormat;->fSkeleton:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->fTimePattern:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->fToCalendar:Landroid/icu/util/Calendar;
-Landroid/icu/text/DateIntervalFormat;->genFallbackPattern(ILjava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)V
-Landroid/icu/text/DateIntervalFormat;->genIntervalPattern(ILjava/lang/String;Ljava/lang/String;ILjava/util/Map;)Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;
-Landroid/icu/text/DateIntervalFormat;->genSeparateDateTimePtn(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)Z
-Landroid/icu/text/DateIntervalFormat;->getConcatenationPattern(Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->getDateTimeSkeleton(Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)V
-Landroid/icu/text/DateIntervalFormat;->getPatterns(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Landroid/icu/util/Output;)Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat;->getRawPatterns()Ljava/util/Map;
-Landroid/icu/text/DateIntervalFormat;->initializeIntervalPattern(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/util/Map;
-Landroid/icu/text/DateIntervalFormat;->initializePattern(Landroid/icu/impl/ICUCache;)V
-Landroid/icu/text/DateIntervalFormat;->isDateIntervalInfoDefault:Z
-Landroid/icu/text/DateIntervalFormat;->LOCAL_PATTERN_CACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;-><init>(Landroid/icu/text/DateIntervalInfo;)V
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->ACCEPTED_PATTERN_LETTERS:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->dateIntervalInfo:Landroid/icu/text/DateIntervalInfo;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->DATE_INTERVAL_PATH_PREFIX:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->DATE_INTERVAL_PATH_SUFFIX:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->getAndResetNextCalendarType()Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->getCalendarTypeFromPath(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->nextCalendarType:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->processSkeletonTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->setIntervalPatternIfAbsent(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->validateAndProcessPatternLetter(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-Landroid/icu/text/DateIntervalInfo$PatternInfo;->currentSerialVersion:I
-Landroid/icu/text/DateIntervalInfo$PatternInfo;->fFirstDateInPtnIsLaterDate:Z
-Landroid/icu/text/DateIntervalInfo$PatternInfo;->fIntervalPatternFirstPart:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo$PatternInfo;->fIntervalPatternSecondPart:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;-><init>()V
-Landroid/icu/text/DateIntervalInfo;->CALENDAR_FIELD_TO_PATTERN_LETTER:[Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->CALENDAR_KEY:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->cloneIntervalPatterns(Ljava/util/Map;)Ljava/util/Map;
-Landroid/icu/text/DateIntervalInfo;->cloneUnfrozenDII()Ljava/lang/Object;
-Landroid/icu/text/DateIntervalInfo;->currentSerialVersion:I
-Landroid/icu/text/DateIntervalInfo;->DIICACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/text/DateIntervalInfo;->EARLIEST_FIRST_PREFIX:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->FALLBACK_STRING:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->fFallbackIntervalPattern:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->fFirstDateInPtnIsLaterDate:Z
-Landroid/icu/text/DateIntervalInfo;->fIntervalPatterns:Ljava/util/Map;
-Landroid/icu/text/DateIntervalInfo;->fIntervalPatternsReadOnly:Z
-Landroid/icu/text/DateIntervalInfo;->frozen:Z
-Landroid/icu/text/DateIntervalInfo;->genPatternInfo(Ljava/lang/String;Z)Landroid/icu/text/DateIntervalInfo$PatternInfo;
-Landroid/icu/text/DateIntervalInfo;->getBestSkeleton(Ljava/lang/String;)Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
-Landroid/icu/text/DateIntervalInfo;->getPatterns()Ljava/util/Map;
-Landroid/icu/text/DateIntervalInfo;->getRawPatterns()Ljava/util/Map;
-Landroid/icu/text/DateIntervalInfo;->initializeData(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateIntervalInfo;->initializeFromReadOnlyPatterns(Landroid/icu/text/DateIntervalInfo;)V
-Landroid/icu/text/DateIntervalInfo;->INTERVAL_FORMATS_KEY:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->LATEST_FIRST_PREFIX:Ljava/lang/String;
-Landroid/icu/text/DateIntervalInfo;->MINIMUM_SUPPORTED_CALENDAR_FIELD:I
-Landroid/icu/text/DateIntervalInfo;->parseSkeleton(Ljava/lang/String;[I)V
-Landroid/icu/text/DateIntervalInfo;->setIntervalPattern(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/DateIntervalInfo$PatternInfo;)V
-Landroid/icu/text/DateIntervalInfo;->setIntervalPatternInternally(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo;
-Landroid/icu/text/DateIntervalInfo;->setup(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateIntervalInfo;->splitPatternInto2Part(Ljava/lang/String;)I
-Landroid/icu/text/DateIntervalInfo;->stringNumeric(IIC)Z
-Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;->returnInfo:Landroid/icu/text/DateTimePatternGenerator$PatternInfo;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;-><init>()V
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->addedDefaultDayPeriod:Z
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->baseOriginal:Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)I
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->extractFrom(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)V
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->fieldIsNumeric(I)Z
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getBasePattern()Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->original:Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->toCanonicalString()Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->type:[I
-Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;-><init>(Ljava/util/HashMap;)V
-Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;->tempMap:Ljava/util/HashMap;
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addMissing(I)V
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->clear()V
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->extraFieldMask:I
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->missingFieldMask:I
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->setTo(Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;)V
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->FIX_FRACTIONAL_SECONDS:Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->SKELETON_USES_CAP_J:Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->valueOf(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->values()[Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;-><init>()V
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->addVariable(Ljava/lang/StringBuffer;Z)V
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->getItems()Ljava/util/List;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->hasDateAndTimeFields()Z
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->items:Ljava/util/List;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->quoteLiteral(Ljava/lang/String;)Ljava/lang/Object;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->QUOTING_CHARS:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;Z)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->SYNTAX_CHARS:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->tokenizer:Landroid/icu/impl/PatternTokenizer;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;->toString(II)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;-><init>(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)V
-Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;->matcherWithSkeleton:Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;->pattern:Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;-><init>(Ljava/lang/String;Z)V
-Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;->pattern:Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;->skeletonWasSpecified:Z
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><init>()V
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendTo(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendTo(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->chars:[B
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->clear()V
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->clearField(I)V
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->compareTo(Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;)I
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->copyFieldFrom(Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;I)V
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->DEFAULT_CHAR:B
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->DEFAULT_LENGTH:B
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldChar(I)C
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldLength(I)I
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->isFieldEmpty(I)Z
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->lengths:[B
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ICI)V
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ILjava/lang/String;)V
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toCanonicalString()Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toCanonicalString(Z)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toString(Z)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$VariableField;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/DateTimePatternGenerator$VariableField;-><init>(Ljava/lang/String;Z)V
-Landroid/icu/text/DateTimePatternGenerator$VariableField;->canonicalIndex:I
-Landroid/icu/text/DateTimePatternGenerator$VariableField;->getCanonicalCode(I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$VariableField;->getCanonicalIndex()I
-Landroid/icu/text/DateTimePatternGenerator$VariableField;->getType()I
-Landroid/icu/text/DateTimePatternGenerator$VariableField;->isNumeric()Z
-Landroid/icu/text/DateTimePatternGenerator$VariableField;->string:Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->addCanonicalItems()V
-Landroid/icu/text/DateTimePatternGenerator;->addCLDRData(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateTimePatternGenerator;->addICUPatterns(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateTimePatternGenerator;->addPatternWithSkeleton(Ljava/lang/String;Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator;
-Landroid/icu/text/DateTimePatternGenerator;->adjustFieldTypes(Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->allowedHourFormats:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->appendItemFormats:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->appendItemNames:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->basePattern_pattern:Ljava/util/TreeMap;
-Landroid/icu/text/DateTimePatternGenerator;->CANONICAL_ITEMS:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->CANONICAL_SET:Ljava/util/Set;
-Landroid/icu/text/DateTimePatternGenerator;->checkFrozen()V
-Landroid/icu/text/DateTimePatternGenerator;->cldrAvailableFormatKeys:Ljava/util/Set;
-Landroid/icu/text/DateTimePatternGenerator;->CLDR_FIELD_APPEND:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->CLDR_FIELD_NAME:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->consumeShortTimePattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
-Landroid/icu/text/DateTimePatternGenerator;->current:Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
-Landroid/icu/text/DateTimePatternGenerator;->dateTimeFormat:Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->DATE_MASK:I
-Landroid/icu/text/DateTimePatternGenerator;->DEBUG:Z
-Landroid/icu/text/DateTimePatternGenerator;->decimal:Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->defaultHourFormatChar:C
-Landroid/icu/text/DateTimePatternGenerator;->DELTA:I
-Landroid/icu/text/DateTimePatternGenerator;->DTPNG_CACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/text/DateTimePatternGenerator;->EXTRA_FIELD:I
-Landroid/icu/text/DateTimePatternGenerator;->FIELD_NAME:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->fillInMissing()V
-Landroid/icu/text/DateTimePatternGenerator;->fp:Landroid/icu/text/DateTimePatternGenerator$FormatParser;
-Landroid/icu/text/DateTimePatternGenerator;->FRACTIONAL_MASK:I
-Landroid/icu/text/DateTimePatternGenerator;->frozen:Z
-Landroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormats(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateTimePatternGenerator;->getAppendFormat(I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Landroid/icu/impl/UResource$Key;)I
-Landroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Ljava/lang/String;)I
-Landroid/icu/text/DateTimePatternGenerator;->getAppendName(I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getBestAppending(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
-Landroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getCanonicalChar(IC)C
-Landroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I
-Landroid/icu/text/DateTimePatternGenerator;->getCanonicalSkeletonAllowingDuplicates(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getCLDRFieldNumber(Landroid/icu/impl/UResource$Key;)I
-Landroid/icu/text/DateTimePatternGenerator;->getDefaultHourFormatChar()C
-Landroid/icu/text/DateTimePatternGenerator;->getFields(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;
-Landroid/icu/text/DateTimePatternGenerator;->getName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getRedundants(Ljava/util/Collection;)Ljava/util/Collection;
-Landroid/icu/text/DateTimePatternGenerator;->getSet(Ljava/lang/String;)Ljava/util/TreeSet;
-Landroid/icu/text/DateTimePatternGenerator;->getSkeletonAllowingDuplicates(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->getTopBitNumber(I)I
-Landroid/icu/text/DateTimePatternGenerator;->hackTimes(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Ljava/lang/String;)V
-Landroid/icu/text/DateTimePatternGenerator;->initData(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateTimePatternGenerator;->isAvailableFormatSet(Ljava/lang/String;)Z
-Landroid/icu/text/DateTimePatternGenerator;->isSingleField(Ljava/lang/String;)Z
-Landroid/icu/text/DateTimePatternGenerator;->LAST_RESORT_ALLOWED_HOUR_FORMAT:[Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->LOCALE_TO_ALLOWED_HOUR:Ljava/util/Map;
-Landroid/icu/text/DateTimePatternGenerator;->LONG:I
-Landroid/icu/text/DateTimePatternGenerator;->mapSkeletonMetacharacters(Ljava/lang/String;Ljava/util/EnumSet;)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->MATCH_MINUTE_FIELD_LENGTH:I
-Landroid/icu/text/DateTimePatternGenerator;->MATCH_SECOND_FIELD_LENGTH:I
-Landroid/icu/text/DateTimePatternGenerator;->MISSING_FIELD:I
-Landroid/icu/text/DateTimePatternGenerator;->NARROW:I
-Landroid/icu/text/DateTimePatternGenerator;->NONE:I
-Landroid/icu/text/DateTimePatternGenerator;->NUMERIC:I
-Landroid/icu/text/DateTimePatternGenerator;->SECOND_AND_FRACTIONAL_MASK:I
-Landroid/icu/text/DateTimePatternGenerator;->setAvailableFormat(Ljava/lang/String;)V
-Landroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateTimePatternGenerator;->setDecimalSymbols(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DateTimePatternGenerator;->setDefaultHourFormatChar(C)V
-Landroid/icu/text/DateTimePatternGenerator;->SHORT:I
-Landroid/icu/text/DateTimePatternGenerator;->SHORTER:I
-Landroid/icu/text/DateTimePatternGenerator;->showMask(I)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator;->skeleton2pattern:Ljava/util/TreeMap;
-Landroid/icu/text/DateTimePatternGenerator;->skeletonsAreSimilar(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/text/DateTimePatternGenerator;->TIME_MASK:I
-Landroid/icu/text/DateTimePatternGenerator;->types:[[I
-Landroid/icu/text/DateTimePatternGenerator;->TYPE_LIMIT:I
-Landroid/icu/text/DateTimePatternGenerator;->_distanceInfo:Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;
-Landroid/icu/text/DecimalFormat$PropertySetter;->set(Landroid/icu/impl/number/DecimalFormatProperties;)V
-Landroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V
-Landroid/icu/text/DecimalFormat;->exportedProperties:Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/text/DecimalFormat;->formatter:Landroid/icu/number/LocalizedNumberFormatter;
-Landroid/icu/text/DecimalFormat;->getDefaultSymbols()Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DecimalFormat;->getFixedDecimal(D)Landroid/icu/text/PluralRules$IFixedDecimal;
-Landroid/icu/text/DecimalFormat;->getMinimumGroupingDigits()I
-Landroid/icu/text/DecimalFormat;->getParseCaseSensitive()Z
-Landroid/icu/text/DecimalFormat;->getParseNoExponent()Z
-Landroid/icu/text/DecimalFormat;->getSignAlwaysShown()Z
-Landroid/icu/text/DecimalFormat;->icuMathContextForm:I
-Landroid/icu/text/DecimalFormat;->properties:Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/text/DecimalFormat;->refreshFormatter()V
-Landroid/icu/text/DecimalFormat;->safeConvertBigDecimal(Ljava/math/BigDecimal;)Ljava/lang/Number;
-Landroid/icu/text/DecimalFormat;->serialVersionOnStream:I
-Landroid/icu/text/DecimalFormat;->setMinimumGroupingDigits(I)V
-Landroid/icu/text/DecimalFormat;->setParseCaseSensitive(Z)V
-Landroid/icu/text/DecimalFormat;->setParseNoExponent(Z)V
-Landroid/icu/text/DecimalFormat;->setProperties(Landroid/icu/text/DecimalFormat$PropertySetter;)V
-Landroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V
-Landroid/icu/text/DecimalFormat;->setSignAlwaysShown(Z)V
-Landroid/icu/text/DecimalFormat;->symbols:Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DecimalFormat;->threadLocalProperties:Ljava/lang/ThreadLocal;
-Landroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter;
-Landroid/icu/text/DecimalFormat;->useCurrency(Landroid/icu/impl/number/DecimalFormatProperties;)Z
-Landroid/icu/text/DecimalFormatSymbols$CacheData;-><init>(Landroid/icu/util/ULocale;[Ljava/lang/String;[Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormatSymbols$CacheData;->digits:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols$CacheData;->numberElements:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols$CacheData;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;-><init>([Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;->numberElements:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V
-Landroid/icu/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;Landroid/icu/text/NumberingSystem;)V
-Landroid/icu/text/DecimalFormatSymbols;->actualLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DecimalFormatSymbols;->cachedLocaleData:Landroid/icu/impl/CacheBase;
-Landroid/icu/text/DecimalFormatSymbols;->codePointZero:I
-Landroid/icu/text/DecimalFormatSymbols;->currency:Landroid/icu/util/Currency;
-Landroid/icu/text/DecimalFormatSymbols;->currencyPattern:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->currencySpcAfterSym:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->currencySpcBeforeSym:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->currencySymbol:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->currentSerialVersion:I
-Landroid/icu/text/DecimalFormatSymbols;->decimalSeparator:C
-Landroid/icu/text/DecimalFormatSymbols;->decimalSeparatorString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->DEF_DECIMAL_SEPARATOR:C
-Landroid/icu/text/DecimalFormatSymbols;->DEF_DIGIT_CHARS_ARRAY:[C
-Landroid/icu/text/DecimalFormatSymbols;->DEF_DIGIT_STRINGS_ARRAY:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->DEF_GROUPING_SEPARATOR:C
-Landroid/icu/text/DecimalFormatSymbols;->DEF_MINUS_SIGN:C
-Landroid/icu/text/DecimalFormatSymbols;->DEF_PERCENT:C
-Landroid/icu/text/DecimalFormatSymbols;->DEF_PERMILL:C
-Landroid/icu/text/DecimalFormatSymbols;->DEF_PLUS_SIGN:C
-Landroid/icu/text/DecimalFormatSymbols;->digit:C
-Landroid/icu/text/DecimalFormatSymbols;->digits:[C
-Landroid/icu/text/DecimalFormatSymbols;->digitStrings:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->exponential:C
-Landroid/icu/text/DecimalFormatSymbols;->exponentMultiplicationSign:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->exponentSeparator:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->forNumberingSystem(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DecimalFormatSymbols;->forNumberingSystem(Ljava/util/Locale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DecimalFormatSymbols;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/DecimalFormatSymbols;->getCodePointZero()I
-Landroid/icu/text/DecimalFormatSymbols;->getCurrencyPattern()Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->getDigitStringsLocal()[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->groupingSeparator:C
-Landroid/icu/text/DecimalFormatSymbols;->groupingSeparatorString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->infinity:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V
-Landroid/icu/text/DecimalFormatSymbols;->initSpacingInfo(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;)V
-Landroid/icu/text/DecimalFormatSymbols;->intlCurrencySymbol:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->LATIN_NUMBERING_SYSTEM:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->loadData(Landroid/icu/util/ULocale;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
-Landroid/icu/text/DecimalFormatSymbols;->minusSign:C
-Landroid/icu/text/DecimalFormatSymbols;->minusString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->monetaryGroupingSeparator:C
-Landroid/icu/text/DecimalFormatSymbols;->monetaryGroupingSeparatorString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->monetarySeparator:C
-Landroid/icu/text/DecimalFormatSymbols;->monetarySeparatorString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->NaN:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->NUMBER_ELEMENTS:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->padEscape:C
-Landroid/icu/text/DecimalFormatSymbols;->patternSeparator:C
-Landroid/icu/text/DecimalFormatSymbols;->percent:C
-Landroid/icu/text/DecimalFormatSymbols;->percentString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->perMill:C
-Landroid/icu/text/DecimalFormatSymbols;->perMillString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->plusSign:C
-Landroid/icu/text/DecimalFormatSymbols;->plusString:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->requestedLocale:Ljava/util/Locale;
-Landroid/icu/text/DecimalFormatSymbols;->serialVersionOnStream:I
-Landroid/icu/text/DecimalFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DecimalFormatSymbols;->sigDigit:C
-Landroid/icu/text/DecimalFormatSymbols;->SYMBOLS:Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->SYMBOL_DEFAULTS:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->SYMBOL_KEYS:[Ljava/lang/String;
-Landroid/icu/text/DecimalFormatSymbols;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DecimalFormatSymbols;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DecimalFormatSymbols;->zeroDigit:C
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getNegPrefix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getNegSuffix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getPatternType()I
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getPosPrefix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getPosSuffix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->negPrefixPatternForCurrency:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->negSuffixPatternForCurrency:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->patternType:I
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->posPrefixPatternForCurrency:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->posSuffixPatternForCurrency:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->prefix:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->suffix:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->writePrefix(Ljava/lang/StringBuffer;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->writeSuffix(Ljava/lang/StringBuffer;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>()V
-Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/CurrencyPluralInfo;I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->actualRoundingIncrement:Ljava/math/BigDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->actualRoundingIncrementICU:Landroid/icu/math/BigDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->addAttribute(Landroid/icu/text/NumberFormat$Field;II)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->addPadding(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;II)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->adjustNumberAsInFormatting(D)D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->affixPatternsForCurrency:Ljava/util/Set;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->appendAffix(Ljava/lang/StringBuffer;ZZLjava/text/FieldPosition;Z)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->appendAffixPattern(Ljava/lang/StringBuffer;ZZZ)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->applyLocalizedPattern(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->applyPattern(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->applyPattern(Ljava/lang/String;Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->applyPatternWithoutExpandAffix(Ljava/lang/String;Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->areSignificantDigitsUsed()Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->attributes:Ljava/util/ArrayList;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->commaEquivalents:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->compareAffix(Ljava/lang/String;IZZLjava/lang/String;ZI[Landroid/icu/util/Currency;)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->compareComplexAffix(Ljava/lang/String;Ljava/lang/String;II[Landroid/icu/util/Currency;)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->compareSimpleAffix(Ljava/lang/String;Ljava/lang/String;I)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->create(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/CurrencyPluralInfo;I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->createFromPatternAndSymbols(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->currencyChoice:Ljava/text/ChoiceFormat;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->currencyPluralInfo:Landroid/icu/text/CurrencyPluralInfo;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->currencySignCount:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->currencyUsage:Landroid/icu/util/Currency$CurrencyUsage;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_IN_ISO_FORMAT:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_IN_PLURAL_FORMAT:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_IN_SYMBOL_FORMAT:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->CURRENCY_SIGN_COUNT_ZERO:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->currentSerialVersion:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->decimalSeparatorAlwaysShown:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->defaultGroupingSeparators:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->digitList:Landroid/icu/text/DigitList_Android;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->dotEquivalents:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->DOUBLE_FRACTION_DIGITS:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->DOUBLE_INTEGER_DIGITS:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->epsilon:D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->equals(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->equalWithSignCompatibility(II)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->expandAffix(Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuffer;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->expandAffixAdjustWidth(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->expandAffixes(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->exponentSignAlwaysShown:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->format(Ljava/math/BigDecimal;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->format(Ljava/math/BigInteger;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Z)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->formatAffix2Attribute(ZLandroid/icu/text/NumberFormat$Field;Ljava/lang/StringBuffer;II)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->formatPattern:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->formatToCharacterIterator(Ljava/lang/Object;Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;)Ljava/text/AttributedCharacterIterator;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->formatWidth:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getCurrencyPluralInfo()Landroid/icu/text/CurrencyPluralInfo;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getCurrencyUsage()Landroid/icu/util/Currency$CurrencyUsage;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getEffectiveCurrency()Landroid/icu/util/Currency;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getEquivalentDecimals(Ljava/lang/String;Z)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getFixedDecimal(D)Landroid/icu/text/PluralRules$FixedDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getFixedDecimal(DLandroid/icu/text/DigitList_Android;)Landroid/icu/text/PluralRules$FixedDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getFormatWidth()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getGroupingSize()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getMathContext()Ljava/math/MathContext;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getMathContextICU()Landroid/icu/math/MathContext;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getMaximumSignificantDigits()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getMinimumExponentDigits()B
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getMinimumSignificantDigits()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getMultiplier()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getNegativePrefix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getNegativeSuffix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getPadCharacter()C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getPadPosition()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getParseMaxDigits()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getPositivePrefix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getPositiveSuffix()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getRoundingIncrement()Ljava/math/BigDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->getSecondaryGroupingSize()I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->groupingSize2:B
-Landroid/icu/text/DecimalFormat_ICU58_Android;->groupingSize:B
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isBidiMark(I)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isDecimalPatternMatchRequired()Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isDecimalSeparatorAlwaysShown()Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isExponentSignAlwaysShown()Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isGroupingPosition(I)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isNegative(D)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isNumberNegative(D)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isParseBigDecimal()Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isReadyForParsing:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->isScientificNotation()Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->match(Ljava/lang/String;II)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->match(Ljava/lang/String;ILjava/lang/String;)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->matchesDigit(Ljava/lang/String;I[I)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->mathContext:Landroid/icu/math/MathContext;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->maxSignificantDigits:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->MAX_INTEGER_DIGITS:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->MAX_SCIENTIFIC_INTEGER_DIGITS:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->minExponentDigits:B
-Landroid/icu/text/DecimalFormat_ICU58_Android;->minSignificantDigits:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->minusSigns:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->multiplier:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->multiply(D)D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->negativePrefix:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->negativeSuffix:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->negPrefixPattern:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->negSuffixPattern:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->NULL_UNIT:Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->pad:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->padPosition:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_AFTER_PREFIX:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_AFTER_SUFFIX:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_BEFORE_PREFIX:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PAD_BEFORE_SUFFIX:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->parse(Ljava/lang/String;Ljava/text/ParsePosition;[Landroid/icu/util/Currency;)Ljava/lang/Object;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->parseBigDecimal:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->parseForCurrency(Ljava/lang/String;Ljava/text/ParsePosition;[Landroid/icu/util/Currency;[Z)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->parseRequireDecimalPoint:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PARSE_MAX_EXPONENT:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->patternError(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_DECIMAL_SEPARATOR:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_EIGHT_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_EXPONENT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_FIVE_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_FOUR_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_GROUPING_SEPARATOR:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_MINUS_SIGN:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_NINE_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_ONE_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PAD_ESCAPE:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PERCENT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PER_MILLE:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_PLUS_SIGN:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SEPARATOR:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SEVEN_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SIGNIFICANT_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_SIX_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_THREE_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_TWO_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->PATTERN_ZERO_DIGIT:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->plusSigns:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->positivePrefix:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->positiveSuffix:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->posPrefixPattern:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->posSuffixPattern:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->precision(Z)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->QUOTE:C
-Landroid/icu/text/DecimalFormat_ICU58_Android;->resetActualRounding()V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->round(D)D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->round(DDDIZ)D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingDouble:D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingDoubleReciprocal:D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingIncrement:Ljava/math/BigDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingIncrementEpsilon:D
-Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingIncrementICU:Landroid/icu/math/BigDecimal;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->roundingMode:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->serialVersionOnStream:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setCurrencyForSymbols()V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setCurrencyPluralInfo(Landroid/icu/text/CurrencyPluralInfo;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setCurrencyUsage(Landroid/icu/util/Currency$CurrencyUsage;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setDecimalPatternMatchRequired(Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setDecimalSeparatorAlwaysShown(Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setExponentSignAlwaysShown(Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setFormatWidth(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setGroupingSize(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setInternalRoundingIncrement(Landroid/icu/math/BigDecimal;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setMathContext(Ljava/math/MathContext;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setMathContextICU(Landroid/icu/math/MathContext;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setMaximumSignificantDigits(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setMinimumExponentDigits(B)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setMinimumSignificantDigits(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setMultiplier(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setNegativePrefix(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setNegativeSuffix(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setPadCharacter(C)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setPadPosition(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setParseBigDecimal(Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setParseMaxDigits(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setPositivePrefix(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setPositiveSuffix(Ljava/lang/String;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingDouble(D)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingIncrement(D)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingIncrement(Landroid/icu/math/BigDecimal;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setRoundingIncrement(Ljava/math/BigDecimal;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setScientificNotation(Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setSecondaryGroupingSize(I)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setSignificantDigitsUsed(Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->setupCurrencyAffixForAllPatterns()V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->skipBidiMarks(Ljava/lang/String;I)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->skipExtendedSeparatorParsing:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->skipPadding(Ljava/lang/String;I)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->skipPatternWhiteSpace(Ljava/lang/String;I)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->skipUWhiteSpace(Ljava/lang/String;I)I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_INFINITE:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_LENGTH:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_POSITIVE:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->STATUS_UNDERFLOW:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->strictCommaEquivalents:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->strictDefaultGroupingSeparators:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->strictDotEquivalents:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->style:I
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(ILjava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(Ljava/lang/String;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subformat(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;ZZZ)Ljava/lang/StringBuffer;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subformatExponential(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Z)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subformatFixed(Ljava/lang/StringBuffer;Ljava/text/FieldPosition;ZZ)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;->subparse(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/DigitList_Android;[Z[Landroid/icu/util/Currency;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->symbols:Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->toDigitList(D)Landroid/icu/text/DigitList_Android;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->toLocalizedPattern()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->toPattern()Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->toPattern(Z)Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->trimMarksFromAffix(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->unquote(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android;->useExponentialNotation:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->useSignificantDigits:Z
-Landroid/icu/text/DecimalFormat_ICU58_Android;->_setMaximumFractionDigits(I)V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;-><init>()V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->contains(I)Z
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->data:[I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->elementAt(I)I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->firstIdx:I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->grow()V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->isEmpty()Z
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->lastIdx:I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->offer(I)V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->peek()I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->peekLast()I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->pollLast()I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->pop()I
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->push(I)V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->removeAllElements()V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;->size()I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;-><init>()V
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->acceptMarked(Ljava/text/CharacterIterator;)I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->backUp(Ljava/text/CharacterIterator;)Z
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->candidates(Ljava/text/CharacterIterator;Landroid/icu/text/DictionaryMatcher;I)I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->count:[I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->current:I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->lengths:[I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->longestPrefix()I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->mark:I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->markCurrent()V
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->offset:I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->POSSIBLE_WORD_LIST_MAX:I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->prefix:I
-Landroid/icu/text/DictionaryBreakEngine;->divideUpDictionaryRange(Ljava/text/CharacterIterator;IILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
-Landroid/icu/text/DictionaryBreakEngine;->findBreaks(Ljava/text/CharacterIterator;IIILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
-Landroid/icu/text/DictionaryBreakEngine;->fSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/DictionaryBreakEngine;->fTypes:Ljava/util/BitSet;
-Landroid/icu/text/DictionaryBreakEngine;->handles(II)Z
-Landroid/icu/text/DictionaryBreakEngine;->setCharacters(Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/DictionaryMatcher;-><init>()V
-Landroid/icu/text/DictionaryMatcher;->getType()I
-Landroid/icu/text/DictionaryMatcher;->matches(Ljava/text/CharacterIterator;I[I[II)I
-Landroid/icu/text/DictionaryMatcher;->matches(Ljava/text/CharacterIterator;I[I[II[I)I
-Landroid/icu/text/DigitList_Android;-><init>()V
-Landroid/icu/text/DigitList_Android;->append(I)V
-Landroid/icu/text/DigitList_Android;->count:I
-Landroid/icu/text/DigitList_Android;->DBL_DIG:I
-Landroid/icu/text/DigitList_Android;->decimalAt:I
-Landroid/icu/text/DigitList_Android;->didRound:Z
-Landroid/icu/text/DigitList_Android;->digits:[B
-Landroid/icu/text/DigitList_Android;->ensureCapacity(II)V
-Landroid/icu/text/DigitList_Android;->getBigDecimalICU(Z)Landroid/icu/math/BigDecimal;
-Landroid/icu/text/DigitList_Android;->getBigInteger(Z)Ljava/math/BigInteger;
-Landroid/icu/text/DigitList_Android;->getDigitValue(I)B
-Landroid/icu/text/DigitList_Android;->getDouble()D
-Landroid/icu/text/DigitList_Android;->getLong()J
-Landroid/icu/text/DigitList_Android;->getStringRep(Z)Ljava/lang/String;
-Landroid/icu/text/DigitList_Android;->isIntegral()Z
-Landroid/icu/text/DigitList_Android;->isLongMIN_VALUE()Z
-Landroid/icu/text/DigitList_Android;->isZero()Z
-Landroid/icu/text/DigitList_Android;->LONG_MIN_REP:[B
-Landroid/icu/text/DigitList_Android;->MAX_LONG_DIGITS:I
-Landroid/icu/text/DigitList_Android;->round(I)V
-Landroid/icu/text/DigitList_Android;->set(DIZ)V
-Landroid/icu/text/DigitList_Android;->set(J)V
-Landroid/icu/text/DigitList_Android;->set(JI)V
-Landroid/icu/text/DigitList_Android;->set(Landroid/icu/math/BigDecimal;IZ)V
-Landroid/icu/text/DigitList_Android;->set(Ljava/lang/String;I)V
-Landroid/icu/text/DigitList_Android;->set(Ljava/math/BigDecimal;IZ)V
-Landroid/icu/text/DigitList_Android;->set(Ljava/math/BigInteger;I)V
-Landroid/icu/text/DigitList_Android;->setBigDecimalDigits(Ljava/lang/String;IZ)V
-Landroid/icu/text/DigitList_Android;->shouldRoundUp(I)Z
-Landroid/icu/text/DigitList_Android;->wasRounded()Z
-Landroid/icu/text/DisplayContext;->type:Landroid/icu/text/DisplayContext$Type;
-Landroid/icu/text/DisplayContext;->value:I
-Landroid/icu/text/DurationFormat;-><init>()V
-Landroid/icu/text/DurationFormat;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/DurationFormat;->formatDurationFrom(JJ)Ljava/lang/String;
-Landroid/icu/text/DurationFormat;->formatDurationFromNow(J)Ljava/lang/String;
-Landroid/icu/text/DurationFormat;->formatDurationFromNowTo(Ljava/util/Date;)Ljava/lang/String;
-Landroid/icu/text/DurationFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DurationFormat;
-Landroid/icu/text/Edits$Iterator;-><init>([CIZZ)V
-Landroid/icu/text/Edits$Iterator;->array:[C
-Landroid/icu/text/Edits$Iterator;->changed:Z
-Landroid/icu/text/Edits$Iterator;->coarse:Z
-Landroid/icu/text/Edits$Iterator;->destinationIndex()I
-Landroid/icu/text/Edits$Iterator;->destinationIndexFromSourceIndex(I)I
-Landroid/icu/text/Edits$Iterator;->destIndex:I
-Landroid/icu/text/Edits$Iterator;->dir:I
-Landroid/icu/text/Edits$Iterator;->findDestinationIndex(I)Z
-Landroid/icu/text/Edits$Iterator;->findIndex(IZ)I
-Landroid/icu/text/Edits$Iterator;->findSourceIndex(I)Z
-Landroid/icu/text/Edits$Iterator;->hasChange()Z
-Landroid/icu/text/Edits$Iterator;->index:I
-Landroid/icu/text/Edits$Iterator;->length:I
-Landroid/icu/text/Edits$Iterator;->newLength()I
-Landroid/icu/text/Edits$Iterator;->newLength_:I
-Landroid/icu/text/Edits$Iterator;->next()Z
-Landroid/icu/text/Edits$Iterator;->next(Z)Z
-Landroid/icu/text/Edits$Iterator;->noNext()Z
-Landroid/icu/text/Edits$Iterator;->oldLength()I
-Landroid/icu/text/Edits$Iterator;->oldLength_:I
-Landroid/icu/text/Edits$Iterator;->onlyChanges_:Z
-Landroid/icu/text/Edits$Iterator;->previous()Z
-Landroid/icu/text/Edits$Iterator;->readLength(I)I
-Landroid/icu/text/Edits$Iterator;->remaining:I
-Landroid/icu/text/Edits$Iterator;->replacementIndex()I
-Landroid/icu/text/Edits$Iterator;->replIndex:I
-Landroid/icu/text/Edits$Iterator;->sourceIndex()I
-Landroid/icu/text/Edits$Iterator;->sourceIndexFromDestinationIndex(I)I
-Landroid/icu/text/Edits$Iterator;->srcIndex:I
-Landroid/icu/text/Edits$Iterator;->updateNextIndexes()V
-Landroid/icu/text/Edits$Iterator;->updatePreviousIndexes()V
-Landroid/icu/text/Edits;-><init>()V
-Landroid/icu/text/Edits;->addReplace(II)V
-Landroid/icu/text/Edits;->addUnchanged(I)V
-Landroid/icu/text/Edits;->append(I)V
-Landroid/icu/text/Edits;->array:[C
-Landroid/icu/text/Edits;->delta:I
-Landroid/icu/text/Edits;->getCoarseChangesIterator()Landroid/icu/text/Edits$Iterator;
-Landroid/icu/text/Edits;->getCoarseIterator()Landroid/icu/text/Edits$Iterator;
-Landroid/icu/text/Edits;->getFineChangesIterator()Landroid/icu/text/Edits$Iterator;
-Landroid/icu/text/Edits;->getFineIterator()Landroid/icu/text/Edits$Iterator;
-Landroid/icu/text/Edits;->growArray()Z
-Landroid/icu/text/Edits;->hasChanges()Z
-Landroid/icu/text/Edits;->lastUnit()I
-Landroid/icu/text/Edits;->length:I
-Landroid/icu/text/Edits;->lengthDelta()I
-Landroid/icu/text/Edits;->LENGTH_IN_1TRAIL:I
-Landroid/icu/text/Edits;->LENGTH_IN_2TRAIL:I
-Landroid/icu/text/Edits;->MAX_SHORT_CHANGE:I
-Landroid/icu/text/Edits;->MAX_SHORT_CHANGE_NEW_LENGTH:I
-Landroid/icu/text/Edits;->MAX_SHORT_CHANGE_OLD_LENGTH:I
-Landroid/icu/text/Edits;->MAX_UNCHANGED:I
-Landroid/icu/text/Edits;->MAX_UNCHANGED_LENGTH:I
-Landroid/icu/text/Edits;->mergeAndAppend(Landroid/icu/text/Edits;Landroid/icu/text/Edits;)Landroid/icu/text/Edits;
-Landroid/icu/text/Edits;->numberOfChanges()I
-Landroid/icu/text/Edits;->numChanges:I
-Landroid/icu/text/Edits;->reset()V
-Landroid/icu/text/Edits;->setLastUnit(I)V
-Landroid/icu/text/Edits;->SHORT_CHANGE_NUM_MASK:I
-Landroid/icu/text/Edits;->STACK_CAPACITY:I
-Landroid/icu/text/FilteredBreakIteratorBuilder;-><init>()V
-Landroid/icu/text/FilteredBreakIteratorBuilder;->getEmptyInstance()Landroid/icu/text/FilteredBreakIteratorBuilder;
-Landroid/icu/text/FilteredBreakIteratorBuilder;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/FilteredBreakIteratorBuilder;
-Landroid/icu/text/FilteredBreakIteratorBuilder;->getInstance(Ljava/util/Locale;)Landroid/icu/text/FilteredBreakIteratorBuilder;
-Landroid/icu/text/FilteredBreakIteratorBuilder;->suppressBreakAfter(Ljava/lang/CharSequence;)Z
-Landroid/icu/text/FilteredBreakIteratorBuilder;->unsuppressBreakAfter(Ljava/lang/CharSequence;)Z
-Landroid/icu/text/FilteredBreakIteratorBuilder;->wrapIteratorWithFilter(Landroid/icu/text/BreakIterator;)Landroid/icu/text/BreakIterator;
-Landroid/icu/text/FilteredNormalizer2;-><init>(Landroid/icu/text/Normalizer2;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/FilteredNormalizer2;->norm2:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/FilteredNormalizer2;->normalize(Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/UnicodeSet$SpanCondition;)Ljava/lang/Appendable;
-Landroid/icu/text/FilteredNormalizer2;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
-Landroid/icu/text/FilteredNormalizer2;->set:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/IDNA$Info;->errors:Ljava/util/EnumSet;
-Landroid/icu/text/IDNA$Info;->isBiDi:Z
-Landroid/icu/text/IDNA$Info;->isOkBiDi:Z
-Landroid/icu/text/IDNA$Info;->isTransDiff:Z
-Landroid/icu/text/IDNA$Info;->labelErrors:Ljava/util/EnumSet;
-Landroid/icu/text/IDNA$Info;->reset()V
-Landroid/icu/text/IDNA;-><init>()V
-Landroid/icu/text/IDNA;->addError(Landroid/icu/text/IDNA$Info;Landroid/icu/text/IDNA$Error;)V
-Landroid/icu/text/IDNA;->addLabelError(Landroid/icu/text/IDNA$Info;Landroid/icu/text/IDNA$Error;)V
-Landroid/icu/text/IDNA;->ALLOW_UNASSIGNED:I
-Landroid/icu/text/IDNA;->compare(Landroid/icu/text/UCharacterIterator;Landroid/icu/text/UCharacterIterator;I)I
-Landroid/icu/text/IDNA;->compare(Ljava/lang/String;Ljava/lang/String;I)I
-Landroid/icu/text/IDNA;->compare(Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;I)I
-Landroid/icu/text/IDNA;->convertIDNToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertIDNToUnicode(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertIDNToUnicode(Ljava/lang/String;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertIDNToUnicode(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertToASCII(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertToUnicode(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertToUnicode(Ljava/lang/String;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->convertToUnicode(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/IDNA;->hasCertainErrors(Landroid/icu/text/IDNA$Info;Ljava/util/EnumSet;)Z
-Landroid/icu/text/IDNA;->hasCertainLabelErrors(Landroid/icu/text/IDNA$Info;Ljava/util/EnumSet;)Z
-Landroid/icu/text/IDNA;->isBiDi(Landroid/icu/text/IDNA$Info;)Z
-Landroid/icu/text/IDNA;->isOkBiDi(Landroid/icu/text/IDNA$Info;)Z
-Landroid/icu/text/IDNA;->promoteAndResetLabelErrors(Landroid/icu/text/IDNA$Info;)V
-Landroid/icu/text/IDNA;->resetInfo(Landroid/icu/text/IDNA$Info;)V
-Landroid/icu/text/IDNA;->setBiDi(Landroid/icu/text/IDNA$Info;)V
-Landroid/icu/text/IDNA;->setNotOkBiDi(Landroid/icu/text/IDNA$Info;)V
-Landroid/icu/text/IDNA;->setTransitionalDifferent(Landroid/icu/text/IDNA$Info;)V
-Landroid/icu/text/LanguageBreakEngine;->findBreaks(Ljava/text/CharacterIterator;IIILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
-Landroid/icu/text/LanguageBreakEngine;->handles(II)Z
-Landroid/icu/text/ListFormatter$Cache;-><init>()V
-Landroid/icu/text/ListFormatter$Cache;->cache:Landroid/icu/impl/ICUCache;
-Landroid/icu/text/ListFormatter$Cache;->get(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/ListFormatter;
-Landroid/icu/text/ListFormatter$Cache;->load(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/ListFormatter;
-Landroid/icu/text/ListFormatter$FormattedListBuilder;-><init>(Ljava/lang/Object;Z)V
-Landroid/icu/text/ListFormatter$FormattedListBuilder;->append(Ljava/lang/String;Ljava/lang/Object;Z)Landroid/icu/text/ListFormatter$FormattedListBuilder;
-Landroid/icu/text/ListFormatter$FormattedListBuilder;->current:Ljava/lang/StringBuilder;
-Landroid/icu/text/ListFormatter$FormattedListBuilder;->getOffset()I
-Landroid/icu/text/ListFormatter$FormattedListBuilder;->offset:I
-Landroid/icu/text/ListFormatter$FormattedListBuilder;->offsetRecorded()Z
-Landroid/icu/text/ListFormatter$Style;->DURATION:Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter$Style;->DURATION_NARROW:Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter$Style;->DURATION_SHORT:Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter$Style;->getName()Ljava/lang/String;
-Landroid/icu/text/ListFormatter$Style;->name:Ljava/lang/String;
-Landroid/icu/text/ListFormatter$Style;->STANDARD:Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter$Style;->valueOf(Ljava/lang/String;)Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter$Style;->values()[Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/ListFormatter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/ListFormatter;->cache:Landroid/icu/text/ListFormatter$Cache;
-Landroid/icu/text/ListFormatter;->compilePattern(Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/String;
-Landroid/icu/text/ListFormatter;->end:Ljava/lang/String;
-Landroid/icu/text/ListFormatter;->format(Ljava/util/Collection;I)Landroid/icu/text/ListFormatter$FormattedListBuilder;
-Landroid/icu/text/ListFormatter;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/ListFormatter$Style;)Landroid/icu/text/ListFormatter;
-Landroid/icu/text/ListFormatter;->getLocale()Landroid/icu/util/ULocale;
-Landroid/icu/text/ListFormatter;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/ListFormatter;->middle:Ljava/lang/String;
-Landroid/icu/text/ListFormatter;->start:Ljava/lang/String;
-Landroid/icu/text/ListFormatter;->two:Ljava/lang/String;
-Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/LocaleDisplayNames$DialectHandling;)V
-Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;->contexts:[Landroid/icu/text/DisplayContext;
-Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;-><init>(Ljava/util/Comparator;Z)V
-Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;->collator:Ljava/util/Comparator;
-Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;->compare(Landroid/icu/text/LocaleDisplayNames$UiListItem;Landroid/icu/text/LocaleDisplayNames$UiListItem;)I
-Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;->useSelf:Z
-Landroid/icu/text/LocaleDisplayNames;-><init>()V
-Landroid/icu/text/LocaleDisplayNames;->FACTORY_DIALECTHANDLING:Ljava/lang/reflect/Method;
-Landroid/icu/text/LocaleDisplayNames;->FACTORY_DISPLAYCONTEXT:Ljava/lang/reflect/Method;
-Landroid/icu/text/LocaleDisplayNames;->scriptDisplayNameInContext(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$FormatWidth;->currencyStyle:I
-Landroid/icu/text/MeasureFormat$FormatWidth;->getCurrencyStyle()I
-Landroid/icu/text/MeasureFormat$FormatWidth;->getListFormatterStyle()Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/MeasureFormat$FormatWidth;->INDEX_COUNT:I
-Landroid/icu/text/MeasureFormat$FormatWidth;->listFormatterStyle:Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;-><init>(Landroid/icu/text/NumberFormat;)V
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->format(Landroid/icu/util/CurrencyAmount;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->format(Ljava/lang/Number;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->format(Ljava/lang/Number;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->get()Landroid/icu/text/NumberFormat;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->getPrefix(Z)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->getSuffix(Z)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->nf:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/MeasureFormat$MeasureFormatData;-><init>()V
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->hasPerFormatter(Landroid/icu/text/MeasureFormat$FormatWidth;)Z
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->PATTERN_COUNT:I
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->PER_UNIT_INDEX:I
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->styleToPerPattern:Ljava/util/EnumMap;
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->unitToStyleToDnam:Ljava/util/Map;
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->unitToStyleToPatterns:Ljava/util/Map;
-Landroid/icu/text/MeasureFormat$MeasureFormatData;->widthFallback:[Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat$MeasureProxy;-><init>()V
-Landroid/icu/text/MeasureFormat$MeasureProxy;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;I)V
-Landroid/icu/text/MeasureFormat$MeasureProxy;->createTimeUnitFormat()Landroid/icu/text/TimeUnitFormat;
-Landroid/icu/text/MeasureFormat$MeasureProxy;->formatWidth:Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat$MeasureProxy;->keyValues:Ljava/util/HashMap;
-Landroid/icu/text/MeasureFormat$MeasureProxy;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/MeasureFormat$MeasureProxy;->numberFormat:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/MeasureFormat$MeasureProxy;->subClass:I
-Landroid/icu/text/MeasureFormat$NumericFormatters;-><init>(Landroid/icu/text/DateFormat;Landroid/icu/text/DateFormat;Landroid/icu/text/DateFormat;)V
-Landroid/icu/text/MeasureFormat$NumericFormatters;->getHourMinute()Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$NumericFormatters;->getHourMinuteSecond()Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$NumericFormatters;->getMinuteSecond()Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$NumericFormatters;->hourMinute:Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$NumericFormatters;->hourMinuteSecond:Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$NumericFormatters;->minuteSecond:Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$PatternData;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/MeasureFormat$PatternData;->prefix:Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$PatternData;->suffix:Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$UnitDataSink;-><init>(Landroid/icu/text/MeasureFormat$MeasureFormatData;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->cacheData:Landroid/icu/text/MeasureFormat$MeasureFormatData;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeCompoundPattern(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->consumePattern(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeSubtypeTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeUnitTypesTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->patterns:[Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->sb:Ljava/lang/StringBuilder;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->setDnamIfAbsent(Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->setFormatterIfAbsent(ILandroid/icu/impl/UResource$Value;I)V
-Landroid/icu/text/MeasureFormat$UnitDataSink;->type:Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->unit:Landroid/icu/util/MeasureUnit;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->width:Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->widthFromAlias(Landroid/icu/impl/UResource$Value;)Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat$UnitDataSink;->widthFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat;-><init>()V
-Landroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$MeasureFormatData;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;)V
-Landroid/icu/text/MeasureFormat;->appendReplacingCurrency(Ljava/lang/String;Landroid/icu/util/Currency;Landroid/icu/impl/StandardPlural;Ljava/lang/StringBuilder;)V
-Landroid/icu/text/MeasureFormat;->cache:Landroid/icu/text/MeasureFormat$MeasureFormatData;
-Landroid/icu/text/MeasureFormat;->currencyFormat:Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
-Landroid/icu/text/MeasureFormat;->CURRENCY_FORMAT:I
-Landroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;Ljava/lang/StringBuilder;Ljava/text/FieldPosition;)Ljava/lang/StringBuilder;
-Landroid/icu/text/MeasureFormat;->formatMeasureRange(Landroid/icu/util/Measure;Landroid/icu/util/Measure;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->formatNumeric(Ljava/util/Date;Landroid/icu/text/DateFormat;Landroid/icu/text/DateFormat$Field;Ljava/lang/Number;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-Landroid/icu/text/MeasureFormat;->formatNumeric([Ljava/lang/Number;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-Landroid/icu/text/MeasureFormat;->formatWidth:Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat;->fromFormatWidthOrdinal(I)Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat;->getFormatter(Landroid/icu/util/MeasureUnit;Landroid/icu/text/MeasureFormat$FormatWidth;I)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->getFormatterOrNull(Landroid/icu/util/MeasureUnit;Landroid/icu/text/MeasureFormat$FormatWidth;I)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->getPerFormatter(Landroid/icu/text/MeasureFormat$FormatWidth;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->getPluralFormatter(Landroid/icu/util/MeasureUnit;Landroid/icu/text/MeasureFormat$FormatWidth;I)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->getRangeFormat(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->getRegularWidth(Landroid/icu/text/MeasureFormat$FormatWidth;)Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat;->hmsTo012:Ljava/util/Map;
-Landroid/icu/text/MeasureFormat;->integerFormat:Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
-Landroid/icu/text/MeasureFormat;->loadLocaleData(Landroid/icu/util/ULocale;)Landroid/icu/text/MeasureFormat$MeasureFormatData;
-Landroid/icu/text/MeasureFormat;->loadNumericDurationFormat(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat;->loadNumericFormatters(Landroid/icu/util/ULocale;)Landroid/icu/text/MeasureFormat$NumericFormatters;
-Landroid/icu/text/MeasureFormat;->localeIdToRangeFormat:Ljava/util/Map;
-Landroid/icu/text/MeasureFormat;->localeMeasureFormatData:Landroid/icu/impl/SimpleCache;
-Landroid/icu/text/MeasureFormat;->localeToNumericDurationFormatters:Landroid/icu/impl/SimpleCache;
-Landroid/icu/text/MeasureFormat;->MEASURE_FORMAT:I
-Landroid/icu/text/MeasureFormat;->numberFormat:Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
-Landroid/icu/text/MeasureFormat;->numericFormatters:Landroid/icu/text/MeasureFormat$NumericFormatters;
-Landroid/icu/text/MeasureFormat;->rules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/MeasureFormat;->TIME_UNIT_FORMAT:I
-Landroid/icu/text/MeasureFormat;->toCurrencyProxy()Ljava/lang/Object;
-Landroid/icu/text/MeasureFormat;->toHMS([Landroid/icu/util/Measure;)[Ljava/lang/Number;
-Landroid/icu/text/MeasureFormat;->toTimeUnitProxy()Ljava/lang/Object;
-Landroid/icu/text/MeasureFormat;->withLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/MeasureFormat;
-Landroid/icu/text/MeasureFormat;->withNumberFormat(Landroid/icu/text/NumberFormat;)Landroid/icu/text/MeasureFormat;
-Landroid/icu/text/MeasureFormat;->withPerUnitAndAppend(Ljava/lang/CharSequence;Landroid/icu/util/MeasureUnit;Ljava/lang/StringBuilder;)I
-Landroid/icu/text/MessageFormat$AppendableWrapper;-><init>(Ljava/lang/StringBuffer;)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;-><init>(Ljava/lang/StringBuilder;)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;->app:Ljava/lang/Appendable;
-Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/lang/Appendable;Ljava/text/CharacterIterator;)I
-Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/lang/CharSequence;)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/lang/CharSequence;II)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;->append(Ljava/text/CharacterIterator;)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;->attributes:Ljava/util/List;
-Landroid/icu/text/MessageFormat$AppendableWrapper;->formatAndAppend(Ljava/text/Format;Ljava/lang/Object;)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;->formatAndAppend(Ljava/text/Format;Ljava/lang/Object;Ljava/lang/String;)V
-Landroid/icu/text/MessageFormat$AppendableWrapper;->length:I
-Landroid/icu/text/MessageFormat$AppendableWrapper;->useAttributes()V
-Landroid/icu/text/MessageFormat$AttributeAndPosition;-><init>(Ljava/lang/Object;II)V
-Landroid/icu/text/MessageFormat$AttributeAndPosition;-><init>(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
-Landroid/icu/text/MessageFormat$AttributeAndPosition;->init(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
-Landroid/icu/text/MessageFormat$AttributeAndPosition;->key:Ljava/text/AttributedCharacterIterator$Attribute;
-Landroid/icu/text/MessageFormat$AttributeAndPosition;->limit:I
-Landroid/icu/text/MessageFormat$AttributeAndPosition;->start:I
-Landroid/icu/text/MessageFormat$AttributeAndPosition;->value:Ljava/lang/Object;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;-><init>(ILjava/lang/String;Ljava/lang/Number;D)V
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->argName:Ljava/lang/String;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->formatter:Ljava/text/Format;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->forReplaceNumber:Z
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->number:Ljava/lang/Number;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->numberArgIndex:I
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->numberString:Ljava/lang/String;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->offset:D
-Landroid/icu/text/MessageFormat$PluralSelectorContext;->startIndex:I
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;-><init>(Landroid/icu/text/MessageFormat;Landroid/icu/text/PluralRules$PluralType;)V
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;->msgFormat:Landroid/icu/text/MessageFormat;
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;->rules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;->select(Ljava/lang/Object;D)Ljava/lang/String;
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;->type:Landroid/icu/text/PluralRules$PluralType;
-Landroid/icu/text/MessageFormat;->argNameMatches(ILjava/lang/String;I)Z
-Landroid/icu/text/MessageFormat;->cachedFormatters:Ljava/util/Map;
-Landroid/icu/text/MessageFormat;->cacheExplicitFormats()V
-Landroid/icu/text/MessageFormat;->createAppropriateFormat(Ljava/lang/String;Ljava/lang/String;)Ljava/text/Format;
-Landroid/icu/text/MessageFormat;->CURLY_BRACE_LEFT:C
-Landroid/icu/text/MessageFormat;->CURLY_BRACE_RIGHT:C
-Landroid/icu/text/MessageFormat;->customFormatArgStarts:Ljava/util/Set;
-Landroid/icu/text/MessageFormat;->dateModifierList:[Ljava/lang/String;
-Landroid/icu/text/MessageFormat;->DATE_MODIFIER_EMPTY:I
-Landroid/icu/text/MessageFormat;->DATE_MODIFIER_FULL:I
-Landroid/icu/text/MessageFormat;->DATE_MODIFIER_LONG:I
-Landroid/icu/text/MessageFormat;->DATE_MODIFIER_MEDIUM:I
-Landroid/icu/text/MessageFormat;->DATE_MODIFIER_SHORT:I
-Landroid/icu/text/MessageFormat;->findChoiceSubMessage(Landroid/icu/text/MessagePattern;ID)I
-Landroid/icu/text/MessageFormat;->findFirstPluralNumberArg(ILjava/lang/String;)I
-Landroid/icu/text/MessageFormat;->findKeyword(Ljava/lang/String;[Ljava/lang/String;)I
-Landroid/icu/text/MessageFormat;->findOtherSubMessage(I)I
-Landroid/icu/text/MessageFormat;->format(ILandroid/icu/text/MessageFormat$PluralSelectorContext;[Ljava/lang/Object;Ljava/util/Map;Landroid/icu/text/MessageFormat$AppendableWrapper;Ljava/text/FieldPosition;)V
-Landroid/icu/text/MessageFormat;->format(Ljava/lang/Object;Landroid/icu/text/MessageFormat$AppendableWrapper;Ljava/text/FieldPosition;)V
-Landroid/icu/text/MessageFormat;->format([Ljava/lang/Object;Ljava/util/Map;Landroid/icu/text/MessageFormat$AppendableWrapper;Ljava/text/FieldPosition;)V
-Landroid/icu/text/MessageFormat;->formatComplexSubMessage(ILandroid/icu/text/MessageFormat$PluralSelectorContext;[Ljava/lang/Object;Ljava/util/Map;Landroid/icu/text/MessageFormat$AppendableWrapper;)V
-Landroid/icu/text/MessageFormat;->getArgName(I)Ljava/lang/String;
-Landroid/icu/text/MessageFormat;->getLiteralStringUntilNextArgument(I)Ljava/lang/String;
-Landroid/icu/text/MessageFormat;->getStockDateFormatter()Landroid/icu/text/DateFormat;
-Landroid/icu/text/MessageFormat;->getStockNumberFormatter()Landroid/icu/text/NumberFormat;
-Landroid/icu/text/MessageFormat;->matchStringUntilLimitPart(Landroid/icu/text/MessagePattern;IILjava/lang/String;I)I
-Landroid/icu/text/MessageFormat;->modifierList:[Ljava/lang/String;
-Landroid/icu/text/MessageFormat;->MODIFIER_CURRENCY:I
-Landroid/icu/text/MessageFormat;->MODIFIER_EMPTY:I
-Landroid/icu/text/MessageFormat;->MODIFIER_INTEGER:I
-Landroid/icu/text/MessageFormat;->MODIFIER_PERCENT:I
-Landroid/icu/text/MessageFormat;->msgPattern:Landroid/icu/text/MessagePattern;
-Landroid/icu/text/MessageFormat;->nextTopLevelArgStart(I)I
-Landroid/icu/text/MessageFormat;->ordinalProvider:Landroid/icu/text/MessageFormat$PluralSelectorProvider;
-Landroid/icu/text/MessageFormat;->parse(ILjava/lang/String;Ljava/text/ParsePosition;[Ljava/lang/Object;Ljava/util/Map;)V
-Landroid/icu/text/MessageFormat;->parseChoiceArgument(Landroid/icu/text/MessagePattern;ILjava/lang/String;Ljava/text/ParsePosition;)D
-Landroid/icu/text/MessageFormat;->pluralProvider:Landroid/icu/text/MessageFormat$PluralSelectorProvider;
-Landroid/icu/text/MessageFormat;->resetPattern()V
-Landroid/icu/text/MessageFormat;->rootLocale:Ljava/util/Locale;
-Landroid/icu/text/MessageFormat;->setArgStartFormat(ILjava/text/Format;)V
-Landroid/icu/text/MessageFormat;->setCustomArgStartFormat(ILjava/text/Format;)V
-Landroid/icu/text/MessageFormat;->SINGLE_QUOTE:C
-Landroid/icu/text/MessageFormat;->STATE_INITIAL:I
-Landroid/icu/text/MessageFormat;->STATE_IN_QUOTE:I
-Landroid/icu/text/MessageFormat;->STATE_MSG_ELEMENT:I
-Landroid/icu/text/MessageFormat;->STATE_SINGLE_QUOTE:I
-Landroid/icu/text/MessageFormat;->stockDateFormatter:Landroid/icu/text/DateFormat;
-Landroid/icu/text/MessageFormat;->stockNumberFormatter:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/MessageFormat;->typeList:[Ljava/lang/String;
-Landroid/icu/text/MessageFormat;->TYPE_DATE:I
-Landroid/icu/text/MessageFormat;->TYPE_DURATION:I
-Landroid/icu/text/MessageFormat;->TYPE_NUMBER:I
-Landroid/icu/text/MessageFormat;->TYPE_ORDINAL:I
-Landroid/icu/text/MessageFormat;->TYPE_SPELLOUT:I
-Landroid/icu/text/MessageFormat;->TYPE_TIME:I
-Landroid/icu/text/MessageFormat;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/MessageFormat;->updateMetaData(Landroid/icu/text/MessageFormat$AppendableWrapper;ILjava/text/FieldPosition;Ljava/lang/Object;)Ljava/text/FieldPosition;
-Landroid/icu/text/MessagePattern$Part;-><init>(Landroid/icu/text/MessagePattern$Part$Type;III)V
-Landroid/icu/text/MessagePattern$Part;->index:I
-Landroid/icu/text/MessagePattern$Part;->length:C
-Landroid/icu/text/MessagePattern$Part;->limitPartIndex:I
-Landroid/icu/text/MessagePattern$Part;->MAX_LENGTH:I
-Landroid/icu/text/MessagePattern$Part;->MAX_VALUE:I
-Landroid/icu/text/MessagePattern$Part;->type:Landroid/icu/text/MessagePattern$Part$Type;
-Landroid/icu/text/MessagePattern$Part;->value:S
-Landroid/icu/text/MessagePattern;->addArgDoublePart(DII)V
-Landroid/icu/text/MessagePattern;->addLimitPart(ILandroid/icu/text/MessagePattern$Part$Type;III)V
-Landroid/icu/text/MessagePattern;->addPart(Landroid/icu/text/MessagePattern$Part$Type;III)V
-Landroid/icu/text/MessagePattern;->aposMode:Landroid/icu/text/MessagePattern$ApostropheMode;
-Landroid/icu/text/MessagePattern;->appendReducedApostrophes(Ljava/lang/String;IILjava/lang/StringBuilder;)V
-Landroid/icu/text/MessagePattern;->argTypes:[Landroid/icu/text/MessagePattern$ArgType;
-Landroid/icu/text/MessagePattern;->defaultAposMode:Landroid/icu/text/MessagePattern$ApostropheMode;
-Landroid/icu/text/MessagePattern;->frozen:Z
-Landroid/icu/text/MessagePattern;->hasArgNames:Z
-Landroid/icu/text/MessagePattern;->hasArgNumbers:Z
-Landroid/icu/text/MessagePattern;->inMessageFormatPattern(I)Z
-Landroid/icu/text/MessagePattern;->inTopLevelChoiceMessage(ILandroid/icu/text/MessagePattern$ArgType;)Z
-Landroid/icu/text/MessagePattern;->isArgTypeChar(I)Z
-Landroid/icu/text/MessagePattern;->isChoice(I)Z
-Landroid/icu/text/MessagePattern;->isOrdinal(I)Z
-Landroid/icu/text/MessagePattern;->isPlural(I)Z
-Landroid/icu/text/MessagePattern;->isSelect(I)Z
-Landroid/icu/text/MessagePattern;->jdkAposMode()Z
-Landroid/icu/text/MessagePattern;->MAX_PREFIX_LENGTH:I
-Landroid/icu/text/MessagePattern;->msg:Ljava/lang/String;
-Landroid/icu/text/MessagePattern;->needsAutoQuoting:Z
-Landroid/icu/text/MessagePattern;->numericValues:Ljava/util/ArrayList;
-Landroid/icu/text/MessagePattern;->parseArg(III)I
-Landroid/icu/text/MessagePattern;->parseArgNumber(II)I
-Landroid/icu/text/MessagePattern;->parseArgNumber(Ljava/lang/CharSequence;II)I
-Landroid/icu/text/MessagePattern;->parseChoiceStyle(II)I
-Landroid/icu/text/MessagePattern;->parseDouble(IIZ)V
-Landroid/icu/text/MessagePattern;->parseMessage(IIILandroid/icu/text/MessagePattern$ArgType;)I
-Landroid/icu/text/MessagePattern;->parsePluralOrSelectStyle(Landroid/icu/text/MessagePattern$ArgType;II)I
-Landroid/icu/text/MessagePattern;->parseSimpleStyle(I)I
-Landroid/icu/text/MessagePattern;->parts:Ljava/util/ArrayList;
-Landroid/icu/text/MessagePattern;->postParse()V
-Landroid/icu/text/MessagePattern;->prefix()Ljava/lang/String;
-Landroid/icu/text/MessagePattern;->prefix(I)Ljava/lang/String;
-Landroid/icu/text/MessagePattern;->prefix(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/MessagePattern;->prefix(Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/text/MessagePattern;->preParse(Ljava/lang/String;)V
-Landroid/icu/text/MessagePattern;->skipDouble(I)I
-Landroid/icu/text/MessagePattern;->skipIdentifier(I)I
-Landroid/icu/text/MessagePattern;->skipWhiteSpace(I)I
-Landroid/icu/text/MessagePatternUtil$ArgNode;-><init>()V
-Landroid/icu/text/MessagePatternUtil$ArgNode;->argType:Landroid/icu/text/MessagePattern$ArgType;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->complexStyle:Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->createArgNode()Landroid/icu/text/MessagePatternUtil$ArgNode;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->getArgType()Landroid/icu/text/MessagePattern$ArgType;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->getComplexStyle()Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->getName()Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->getNumber()I
-Landroid/icu/text/MessagePatternUtil$ArgNode;->getSimpleStyle()Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->getTypeName()Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->name:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->number:I
-Landroid/icu/text/MessagePatternUtil$ArgNode;->style:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ArgNode;->typeName:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;-><init>(Landroid/icu/text/MessagePattern$ArgType;)V
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->addVariant(Landroid/icu/text/MessagePatternUtil$VariantNode;)V
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->argType:Landroid/icu/text/MessagePattern$ArgType;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->explicitOffset:Z
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->freeze()Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getArgType()Landroid/icu/text/MessagePattern$ArgType;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getOffset()D
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getVariants()Ljava/util/List;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->getVariantsByType(Ljava/util/List;Ljava/util/List;)Landroid/icu/text/MessagePatternUtil$VariantNode;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->hasExplicitOffset()Z
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->list:Ljava/util/List;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->offset:D
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->ARG:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->REPLACE_NUMBER:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->TEXT:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->valueOf(Ljava/lang/String;)Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->values()[Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode;-><init>(Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;)V
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode;->createReplaceNumberNode()Landroid/icu/text/MessagePatternUtil$MessageContentsNode;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode;->getType()Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode;->type:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageNode;-><init>()V
-Landroid/icu/text/MessagePatternUtil$MessageNode;->addContentsNode(Landroid/icu/text/MessagePatternUtil$MessageContentsNode;)V
-Landroid/icu/text/MessagePatternUtil$MessageNode;->freeze()Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil$MessageNode;->getContents()Ljava/util/List;
-Landroid/icu/text/MessagePatternUtil$MessageNode;->list:Ljava/util/List;
-Landroid/icu/text/MessagePatternUtil$Node;-><init>()V
-Landroid/icu/text/MessagePatternUtil$TextNode;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/MessagePatternUtil$TextNode;->getText()Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$TextNode;->text:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$VariantNode;-><init>()V
-Landroid/icu/text/MessagePatternUtil$VariantNode;->getMessage()Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil$VariantNode;->getSelector()Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$VariantNode;->getSelectorValue()D
-Landroid/icu/text/MessagePatternUtil$VariantNode;->isSelectorNumeric()Z
-Landroid/icu/text/MessagePatternUtil$VariantNode;->msgNode:Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil$VariantNode;->numericValue:D
-Landroid/icu/text/MessagePatternUtil$VariantNode;->selector:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil;-><init>()V
-Landroid/icu/text/MessagePatternUtil;->buildArgNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$ArgNode;
-Landroid/icu/text/MessagePatternUtil;->buildChoiceStyleNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/MessagePatternUtil;->buildMessageNode(Landroid/icu/text/MessagePattern;)Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil;->buildMessageNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil;->buildMessageNode(Ljava/lang/String;)Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil;->buildPluralStyleNode(Landroid/icu/text/MessagePattern;IILandroid/icu/text/MessagePattern$ArgType;)Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/MessagePatternUtil;->buildSelectStyleNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/NFRule;-><init>(Landroid/icu/text/RuleBasedNumberFormat;Ljava/lang/String;)V
-Landroid/icu/text/NFRule;->allIgnorable(Ljava/lang/String;)Z
-Landroid/icu/text/NFRule;->baseValue:J
-Landroid/icu/text/NFRule;->decimalPoint:C
-Landroid/icu/text/NFRule;->doFormat(DLjava/lang/StringBuilder;II)V
-Landroid/icu/text/NFRule;->doFormat(JLjava/lang/StringBuilder;II)V
-Landroid/icu/text/NFRule;->doParse(Ljava/lang/String;Ljava/text/ParsePosition;ZD)Ljava/lang/Number;
-Landroid/icu/text/NFRule;->expectedExponent()S
-Landroid/icu/text/NFRule;->exponent:S
-Landroid/icu/text/NFRule;->extractSubstitution(Landroid/icu/text/NFRuleSet;Landroid/icu/text/NFRule;)Landroid/icu/text/NFSubstitution;
-Landroid/icu/text/NFRule;->extractSubstitutions(Landroid/icu/text/NFRuleSet;Ljava/lang/String;Landroid/icu/text/NFRule;)V
-Landroid/icu/text/NFRule;->findText(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/PluralFormat;I)[I
-Landroid/icu/text/NFRule;->formatter:Landroid/icu/text/RuleBasedNumberFormat;
-Landroid/icu/text/NFRule;->getBaseValue()J
-Landroid/icu/text/NFRule;->getDecimalPoint()C
-Landroid/icu/text/NFRule;->getDivisor()J
-Landroid/icu/text/NFRule;->IMPROPER_FRACTION_RULE:I
-Landroid/icu/text/NFRule;->indexOfAnyRulePrefix(Ljava/lang/String;)I
-Landroid/icu/text/NFRule;->INFINITY_RULE:I
-Landroid/icu/text/NFRule;->makeRules(Ljava/lang/String;Landroid/icu/text/NFRuleSet;Landroid/icu/text/NFRule;Landroid/icu/text/RuleBasedNumberFormat;Ljava/util/List;)V
-Landroid/icu/text/NFRule;->MASTER_RULE:I
-Landroid/icu/text/NFRule;->matchToDelimiter(Ljava/lang/String;IDLjava/lang/String;Landroid/icu/text/PluralFormat;Ljava/text/ParsePosition;Landroid/icu/text/NFSubstitution;D)Ljava/lang/Number;
-Landroid/icu/text/NFRule;->NAN_RULE:I
-Landroid/icu/text/NFRule;->NEGATIVE_NUMBER_RULE:I
-Landroid/icu/text/NFRule;->parseRuleDescriptor(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/NFRule;->power(JS)J
-Landroid/icu/text/NFRule;->prefixLength(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/NFRule;->PROPER_FRACTION_RULE:I
-Landroid/icu/text/NFRule;->radix:I
-Landroid/icu/text/NFRule;->rulePatternFormat:Landroid/icu/text/PluralFormat;
-Landroid/icu/text/NFRule;->ruleText:Ljava/lang/String;
-Landroid/icu/text/NFRule;->RULE_PREFIXES:[Ljava/lang/String;
-Landroid/icu/text/NFRule;->setBaseValue(J)V
-Landroid/icu/text/NFRule;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/NFRule;->shouldRollBack(J)Z
-Landroid/icu/text/NFRule;->stripPrefix(Ljava/lang/String;Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
-Landroid/icu/text/NFRule;->sub1:Landroid/icu/text/NFSubstitution;
-Landroid/icu/text/NFRule;->sub2:Landroid/icu/text/NFSubstitution;
-Landroid/icu/text/NFRule;->ZERO:Ljava/lang/Long;
-Landroid/icu/text/NFRuleSet;-><init>(Landroid/icu/text/RuleBasedNumberFormat;[Ljava/lang/String;I)V
-Landroid/icu/text/NFRuleSet;->findFractionRuleSetRule(D)Landroid/icu/text/NFRule;
-Landroid/icu/text/NFRuleSet;->findNormalRule(J)Landroid/icu/text/NFRule;
-Landroid/icu/text/NFRuleSet;->findRule(D)Landroid/icu/text/NFRule;
-Landroid/icu/text/NFRuleSet;->format(DLjava/lang/StringBuilder;II)V
-Landroid/icu/text/NFRuleSet;->format(JLjava/lang/StringBuilder;II)V
-Landroid/icu/text/NFRuleSet;->fractionRules:Ljava/util/LinkedList;
-Landroid/icu/text/NFRuleSet;->getName()Ljava/lang/String;
-Landroid/icu/text/NFRuleSet;->IMPROPER_FRACTION_RULE_INDEX:I
-Landroid/icu/text/NFRuleSet;->INFINITY_RULE_INDEX:I
-Landroid/icu/text/NFRuleSet;->isFractionRuleSet:Z
-Landroid/icu/text/NFRuleSet;->isFractionSet()Z
-Landroid/icu/text/NFRuleSet;->isParseable()Z
-Landroid/icu/text/NFRuleSet;->isParseable:Z
-Landroid/icu/text/NFRuleSet;->isPublic()Z
-Landroid/icu/text/NFRuleSet;->lcm(JJ)J
-Landroid/icu/text/NFRuleSet;->makeIntoFractionRuleSet()V
-Landroid/icu/text/NFRuleSet;->MASTER_RULE_INDEX:I
-Landroid/icu/text/NFRuleSet;->name:Ljava/lang/String;
-Landroid/icu/text/NFRuleSet;->NAN_RULE_INDEX:I
-Landroid/icu/text/NFRuleSet;->NEGATIVE_RULE_INDEX:I
-Landroid/icu/text/NFRuleSet;->nonNumericalRules:[Landroid/icu/text/NFRule;
-Landroid/icu/text/NFRuleSet;->owner:Landroid/icu/text/RuleBasedNumberFormat;
-Landroid/icu/text/NFRuleSet;->parse(Ljava/lang/String;Ljava/text/ParsePosition;D)Ljava/lang/Number;
-Landroid/icu/text/NFRuleSet;->parseRules(Ljava/lang/String;)V
-Landroid/icu/text/NFRuleSet;->PROPER_FRACTION_RULE_INDEX:I
-Landroid/icu/text/NFRuleSet;->RECURSION_LIMIT:I
-Landroid/icu/text/NFRuleSet;->rules:[Landroid/icu/text/NFRule;
-Landroid/icu/text/NFRuleSet;->setBestFractionRule(ILandroid/icu/text/NFRule;Z)V
-Landroid/icu/text/NFRuleSet;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/NFRuleSet;->setNonNumericalRule(Landroid/icu/text/NFRule;)V
-Landroid/icu/text/NFSubstitution;-><init>(ILandroid/icu/text/NFRuleSet;Ljava/lang/String;)V
-Landroid/icu/text/NFSubstitution;->calcUpperBound(D)D
-Landroid/icu/text/NFSubstitution;->composeRuleValue(DD)D
-Landroid/icu/text/NFSubstitution;->doParse(Ljava/lang/String;Ljava/text/ParsePosition;DDZ)Ljava/lang/Number;
-Landroid/icu/text/NFSubstitution;->doSubstitution(DLjava/lang/StringBuilder;II)V
-Landroid/icu/text/NFSubstitution;->doSubstitution(JLjava/lang/StringBuilder;II)V
-Landroid/icu/text/NFSubstitution;->getPos()I
-Landroid/icu/text/NFSubstitution;->isModulusSubstitution()Z
-Landroid/icu/text/NFSubstitution;->makeSubstitution(ILandroid/icu/text/NFRule;Landroid/icu/text/NFRule;Landroid/icu/text/NFRuleSet;Landroid/icu/text/RuleBasedNumberFormat;Ljava/lang/String;)Landroid/icu/text/NFSubstitution;
-Landroid/icu/text/NFSubstitution;->MAX_INT64_IN_DOUBLE:J
-Landroid/icu/text/NFSubstitution;->numberFormat:Landroid/icu/text/DecimalFormat;
-Landroid/icu/text/NFSubstitution;->pos:I
-Landroid/icu/text/NFSubstitution;->ruleSet:Landroid/icu/text/NFRuleSet;
-Landroid/icu/text/NFSubstitution;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/NFSubstitution;->setDivisor(IS)V
-Landroid/icu/text/NFSubstitution;->tokenChar()C
-Landroid/icu/text/NFSubstitution;->transformNumber(D)D
-Landroid/icu/text/NFSubstitution;->transformNumber(J)J
-Landroid/icu/text/Normalizer$CharsAppendable;-><init>([CII)V
-Landroid/icu/text/Normalizer$CharsAppendable;->chars:[C
-Landroid/icu/text/Normalizer$CharsAppendable;->length()I
-Landroid/icu/text/Normalizer$CharsAppendable;->limit:I
-Landroid/icu/text/Normalizer$CharsAppendable;->offset:I
-Landroid/icu/text/Normalizer$CharsAppendable;->start:I
-Landroid/icu/text/Normalizer$CmpEquivLevel;-><init>()V
-Landroid/icu/text/Normalizer$CmpEquivLevel;->cs:Ljava/lang/CharSequence;
-Landroid/icu/text/Normalizer$CmpEquivLevel;->s:I
-Landroid/icu/text/Normalizer$FCD32ModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$FCD32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$FCDMode;-><init>()V
-Landroid/icu/text/Normalizer$FCDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$FCDModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$FCDModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$Mode;-><init>()V
-Landroid/icu/text/Normalizer$Mode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$ModeImpl;-><init>(Landroid/icu/text/Normalizer2;)V
-Landroid/icu/text/Normalizer$ModeImpl;->normalizer2:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFC32ModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFC32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFCMode;-><init>()V
-Landroid/icu/text/Normalizer$NFCMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFCModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFCModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFD32ModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFD32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFDMode;-><init>()V
-Landroid/icu/text/Normalizer$NFDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFDModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFDModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKC32ModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFKC32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKCMode;-><init>()V
-Landroid/icu/text/Normalizer$NFKCMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFKCModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFKCModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKD32ModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFKD32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKDMode;-><init>()V
-Landroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFKDModeImpl;-><init>()V
-Landroid/icu/text/Normalizer$NFKDModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NONEMode;-><init>()V
-Landroid/icu/text/Normalizer$NONEMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$QuickCheckResult;-><init>(I)V
-Landroid/icu/text/Normalizer$Unicode32;-><init>()V
-Landroid/icu/text/Normalizer$Unicode32;->INSTANCE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Normalizer2;-><init>()V
-Landroid/icu/text/Normalizer;-><init>(Landroid/icu/text/UCharacterIterator;Landroid/icu/text/Normalizer$Mode;I)V
-Landroid/icu/text/Normalizer;-><init>(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)V
-Landroid/icu/text/Normalizer;-><init>(Ljava/text/CharacterIterator;Landroid/icu/text/Normalizer$Mode;I)V
-Landroid/icu/text/Normalizer;->buffer:Ljava/lang/StringBuilder;
-Landroid/icu/text/Normalizer;->bufferPos:I
-Landroid/icu/text/Normalizer;->clearBuffer()V
-Landroid/icu/text/Normalizer;->cmpEquivFold(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)I
-Landroid/icu/text/Normalizer;->COMPARE_EQUIV:I
-Landroid/icu/text/Normalizer;->COMPARE_NORM_OPTIONS_SHIFT:I
-Landroid/icu/text/Normalizer;->compose(Ljava/lang/String;Z)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->compose(Ljava/lang/String;ZI)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->compose([CII[CIIZI)I
-Landroid/icu/text/Normalizer;->compose([C[CZI)I
-Landroid/icu/text/Normalizer;->COMPOSE:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->COMPOSE_COMPAT:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->concatenate(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->concatenate([CII[CII[CIILandroid/icu/text/Normalizer$Mode;I)I
-Landroid/icu/text/Normalizer;->concatenate([C[CLandroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->createCmpEquivLevelStack()[Landroid/icu/text/Normalizer$CmpEquivLevel;
-Landroid/icu/text/Normalizer;->current()I
-Landroid/icu/text/Normalizer;->currentIndex:I
-Landroid/icu/text/Normalizer;->DECOMP:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->decompose(Ljava/lang/String;Z)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->decompose(Ljava/lang/String;ZI)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->decompose([CII[CIIZI)I
-Landroid/icu/text/Normalizer;->decompose([C[CZI)I
-Landroid/icu/text/Normalizer;->DECOMP_COMPAT:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->DEFAULT:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->DONE:I
-Landroid/icu/text/Normalizer;->endIndex()I
-Landroid/icu/text/Normalizer;->FCD:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->first()I
-Landroid/icu/text/Normalizer;->getBeginIndex()I
-Landroid/icu/text/Normalizer;->getComposeNormalizer2(ZI)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer;->getDecomposeNormalizer2(ZI)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer;->getEndIndex()I
-Landroid/icu/text/Normalizer;->getFC_NFKC_Closure(I)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->getFC_NFKC_Closure(I[C)I
-Landroid/icu/text/Normalizer;->getIndex()I
-Landroid/icu/text/Normalizer;->getLength()I
-Landroid/icu/text/Normalizer;->getMode()Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->getOption(I)I
-Landroid/icu/text/Normalizer;->getText()Ljava/lang/String;
-Landroid/icu/text/Normalizer;->getText([C)I
-Landroid/icu/text/Normalizer;->IGNORE_HANGUL:I
-Landroid/icu/text/Normalizer;->internalCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)I
-Landroid/icu/text/Normalizer;->isNormalized(ILandroid/icu/text/Normalizer$Mode;I)Z
-Landroid/icu/text/Normalizer;->isNormalized(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Z
-Landroid/icu/text/Normalizer;->isNormalized([CIILandroid/icu/text/Normalizer$Mode;I)Z
-Landroid/icu/text/Normalizer;->last()I
-Landroid/icu/text/Normalizer;->mode:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->next()I
-Landroid/icu/text/Normalizer;->nextIndex:I
-Landroid/icu/text/Normalizer;->nextNormalize()Z
-Landroid/icu/text/Normalizer;->NFC:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->NFD:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->NFKC:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->NFKD:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->NONE:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->norm2:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer;->normalize(ILandroid/icu/text/Normalizer$Mode;)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->normalize(ILandroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
-Landroid/icu/text/Normalizer;->normalize([CII[CIILandroid/icu/text/Normalizer$Mode;I)I
-Landroid/icu/text/Normalizer;->normalize([C[CLandroid/icu/text/Normalizer$Mode;I)I
-Landroid/icu/text/Normalizer;->NO_OP:Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer;->options:I
-Landroid/icu/text/Normalizer;->previous()I
-Landroid/icu/text/Normalizer;->previousNormalize()Z
-Landroid/icu/text/Normalizer;->quickCheck(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Landroid/icu/text/Normalizer$QuickCheckResult;
-Landroid/icu/text/Normalizer;->quickCheck(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Landroid/icu/text/Normalizer$QuickCheckResult;
-Landroid/icu/text/Normalizer;->quickCheck([CIILandroid/icu/text/Normalizer$Mode;I)Landroid/icu/text/Normalizer$QuickCheckResult;
-Landroid/icu/text/Normalizer;->quickCheck([CLandroid/icu/text/Normalizer$Mode;I)Landroid/icu/text/Normalizer$QuickCheckResult;
-Landroid/icu/text/Normalizer;->reset()V
-Landroid/icu/text/Normalizer;->setIndex(I)I
-Landroid/icu/text/Normalizer;->setIndexOnly(I)V
-Landroid/icu/text/Normalizer;->setMode(Landroid/icu/text/Normalizer$Mode;)V
-Landroid/icu/text/Normalizer;->setOption(IZ)V
-Landroid/icu/text/Normalizer;->setText(Landroid/icu/text/UCharacterIterator;)V
-Landroid/icu/text/Normalizer;->setText(Ljava/lang/String;)V
-Landroid/icu/text/Normalizer;->setText(Ljava/lang/StringBuffer;)V
-Landroid/icu/text/Normalizer;->setText(Ljava/text/CharacterIterator;)V
-Landroid/icu/text/Normalizer;->setText([C)V
-Landroid/icu/text/Normalizer;->startIndex()I
-Landroid/icu/text/Normalizer;->text:Landroid/icu/text/UCharacterIterator;
-Landroid/icu/text/Normalizer;->UNICODE_3_2:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;-><init>()V
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->createFormat(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->createFormat(Ljava/util/Locale;I)Landroid/icu/text/NumberFormat;
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_CURRENCY:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_INTEGER:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_NUMBER:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_PERCENT:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_SCIENTIFIC:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->getSupportedLocaleNames()Ljava/util/Set;
-Landroid/icu/text/NumberFormat$NumberFormatFactory;->visible()Z
-Landroid/icu/text/NumberFormat$NumberFormatShim;-><init>()V
-Landroid/icu/text/NumberFormat$NumberFormatShim;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
-Landroid/icu/text/NumberFormat$NumberFormatShim;->getAvailableLocales()[Ljava/util/Locale;
-Landroid/icu/text/NumberFormat$NumberFormatShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/NumberFormat$NumberFormatShim;->registerFactory(Landroid/icu/text/NumberFormat$NumberFormatFactory;)Ljava/lang/Object;
-Landroid/icu/text/NumberFormat$NumberFormatShim;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Landroid/icu/util/ULocale;Z)V
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Ljava/util/Locale;)V
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Ljava/util/Locale;Z)V
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->getSupportedLocaleNames()Ljava/util/Set;
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->localeNames:Ljava/util/Set;
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->visible()Z
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;->visible:Z
-Landroid/icu/text/NumberFormat;->capitalizationSetting:Landroid/icu/text/DisplayContext;
-Landroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
-Landroid/icu/text/NumberFormat;->currency:Landroid/icu/util/Currency;
-Landroid/icu/text/NumberFormat;->currentSerialVersion:I
-Landroid/icu/text/NumberFormat;->doubleCurrencySign:[C
-Landroid/icu/text/NumberFormat;->doubleCurrencyStr:Ljava/lang/String;
-Landroid/icu/text/NumberFormat;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/NumberFormat;->getEffectiveCurrency()Landroid/icu/util/Currency;
-Landroid/icu/text/NumberFormat;->getPattern(Ljava/util/Locale;I)Ljava/lang/String;
-Landroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String;
-Landroid/icu/text/NumberFormat;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/text/NumberFormat;->getShim()Landroid/icu/text/NumberFormat$NumberFormatShim;
-Landroid/icu/text/NumberFormat;->groupingUsed:Z
-Landroid/icu/text/NumberFormat;->maxFractionDigits:B
-Landroid/icu/text/NumberFormat;->maximumFractionDigits:I
-Landroid/icu/text/NumberFormat;->maximumIntegerDigits:I
-Landroid/icu/text/NumberFormat;->maxIntegerDigits:B
-Landroid/icu/text/NumberFormat;->minFractionDigits:B
-Landroid/icu/text/NumberFormat;->minimumFractionDigits:I
-Landroid/icu/text/NumberFormat;->minimumIntegerDigits:I
-Landroid/icu/text/NumberFormat;->minIntegerDigits:B
-Landroid/icu/text/NumberFormat;->parseIntegerOnly:Z
-Landroid/icu/text/NumberFormat;->parseStrict:Z
-Landroid/icu/text/NumberFormat;->registerFactory(Landroid/icu/text/NumberFormat$NumberFormatFactory;)Ljava/lang/Object;
-Landroid/icu/text/NumberFormat;->serialVersionOnStream:I
-Landroid/icu/text/NumberFormat;->shim:Landroid/icu/text/NumberFormat$NumberFormatShim;
-Landroid/icu/text/NumberFormat;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/NumberingSystem$LocaleLookupData;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
-Landroid/icu/text/NumberingSystem$LocaleLookupData;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/NumberingSystem$LocaleLookupData;->numbersKeyword:Ljava/lang/String;
-Landroid/icu/text/NumberingSystem;->algorithmic:Z
-Landroid/icu/text/NumberingSystem;->cachedLocaleData:Landroid/icu/impl/CacheBase;
-Landroid/icu/text/NumberingSystem;->cachedStringData:Landroid/icu/impl/CacheBase;
-Landroid/icu/text/NumberingSystem;->desc:Ljava/lang/String;
-Landroid/icu/text/NumberingSystem;->getInstance(Ljava/lang/String;IZLjava/lang/String;)Landroid/icu/text/NumberingSystem;
-Landroid/icu/text/NumberingSystem;->LATIN:Landroid/icu/text/NumberingSystem;
-Landroid/icu/text/NumberingSystem;->lookupInstanceByLocale(Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
-Landroid/icu/text/NumberingSystem;->lookupInstanceByName(Ljava/lang/String;)Landroid/icu/text/NumberingSystem;
-Landroid/icu/text/NumberingSystem;->name:Ljava/lang/String;
-Landroid/icu/text/NumberingSystem;->OTHER_NS_KEYWORDS:[Ljava/lang/String;
-Landroid/icu/text/NumberingSystem;->radix:I
-Landroid/icu/text/PluralFormat$PluralSelector;->select(Ljava/lang/Object;D)Ljava/lang/String;
-Landroid/icu/text/PluralFormat$PluralSelectorAdapter;->select(Ljava/lang/Object;D)Ljava/lang/String;
-Landroid/icu/text/PluralFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;Ljava/lang/String;Landroid/icu/text/NumberFormat;)V
-Landroid/icu/text/PluralFormat;->findSubMessage(Landroid/icu/text/MessagePattern;ILandroid/icu/text/PluralFormat$PluralSelector;Ljava/lang/Object;D)I
-Landroid/icu/text/PluralFormat;->format(Ljava/lang/Number;D)Ljava/lang/String;
-Landroid/icu/text/PluralFormat;->init(Landroid/icu/text/PluralRules;Landroid/icu/text/PluralRules$PluralType;Landroid/icu/util/ULocale;Landroid/icu/text/NumberFormat;)V
-Landroid/icu/text/PluralFormat;->msgPattern:Landroid/icu/text/MessagePattern;
-Landroid/icu/text/PluralFormat;->numberFormat:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/PluralFormat;->offset:D
-Landroid/icu/text/PluralFormat;->parsedValues:Ljava/util/Map;
-Landroid/icu/text/PluralFormat;->parseType(Ljava/lang/String;Landroid/icu/text/RbnfLenientScanner;Ljava/text/FieldPosition;)Ljava/lang/String;
-Landroid/icu/text/PluralFormat;->pattern:Ljava/lang/String;
-Landroid/icu/text/PluralFormat;->pluralRules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/PluralFormat;->pluralRulesWrapper:Landroid/icu/text/PluralFormat$PluralSelectorAdapter;
-Landroid/icu/text/PluralFormat;->resetPattern()V
-Landroid/icu/text/PluralFormat;->setLocale(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/PluralFormat;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/PluralRanges$Matrix;-><init>()V
-Landroid/icu/text/PluralRanges$Matrix;->compareTo(Landroid/icu/text/PluralRanges$Matrix;)I
-Landroid/icu/text/PluralRanges$Matrix;->data:[B
-Landroid/icu/text/PluralRanges$Matrix;->endSame(Landroid/icu/impl/StandardPlural;)Landroid/icu/impl/StandardPlural;
-Landroid/icu/text/PluralRanges$Matrix;->get(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)Landroid/icu/impl/StandardPlural;
-Landroid/icu/text/PluralRanges$Matrix;->set(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
-Landroid/icu/text/PluralRanges$Matrix;->setIfNew(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
-Landroid/icu/text/PluralRanges$Matrix;->startSame(Landroid/icu/impl/StandardPlural;Ljava/util/EnumSet;Landroid/icu/util/Output;)Landroid/icu/impl/StandardPlural;
-Landroid/icu/text/PluralRanges;-><init>()V
-Landroid/icu/text/PluralRanges;->add(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
-Landroid/icu/text/PluralRanges;->compareTo(Landroid/icu/text/PluralRanges;)I
-Landroid/icu/text/PluralRanges;->explicit:[Z
-Landroid/icu/text/PluralRanges;->get(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)Landroid/icu/impl/StandardPlural;
-Landroid/icu/text/PluralRanges;->isExplicit(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)Z
-Landroid/icu/text/PluralRanges;->isExplicitlySet(Landroid/icu/impl/StandardPlural;)Z
-Landroid/icu/text/PluralRanges;->isFrozen:Z
-Landroid/icu/text/PluralRanges;->matrix:Landroid/icu/text/PluralRanges$Matrix;
-Landroid/icu/text/PluralRules$AndConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
-Landroid/icu/text/PluralRules$AndConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-Landroid/icu/text/PluralRules$AndConstraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$BinaryConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
-Landroid/icu/text/PluralRules$BinaryConstraint;->a:Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules$BinaryConstraint;->b:Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules$Constraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-Landroid/icu/text/PluralRules$Constraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$Factory;-><init>()V
-Landroid/icu/text/PluralRules$Factory;->forLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/PluralRules;
-Landroid/icu/text/PluralRules$Factory;->forLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules;
-Landroid/icu/text/PluralRules$Factory;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/PluralRules$Factory;->getDefaultFactory()Landroid/icu/impl/PluralRulesLoader;
-Landroid/icu/text/PluralRules$Factory;->getFunctionalEquivalent(Landroid/icu/util/ULocale;[Z)Landroid/icu/util/ULocale;
-Landroid/icu/text/PluralRules$Factory;->hasOverride(Landroid/icu/util/ULocale;)Z
-Landroid/icu/text/PluralRules$FixedDecimal;-><init>(D)V
-Landroid/icu/text/PluralRules$FixedDecimal;-><init>(DI)V
-Landroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJ)V
-Landroid/icu/text/PluralRules$FixedDecimal;-><init>(J)V
-Landroid/icu/text/PluralRules$FixedDecimal;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/PluralRules$FixedDecimal;->baseFactor:I
-Landroid/icu/text/PluralRules$FixedDecimal;->compareTo(Landroid/icu/text/PluralRules$FixedDecimal;)I
-Landroid/icu/text/PluralRules$FixedDecimal;->decimalDigits:J
-Landroid/icu/text/PluralRules$FixedDecimal;->decimalDigitsWithoutTrailingZeros:J
-Landroid/icu/text/PluralRules$FixedDecimal;->decimals(D)I
-Landroid/icu/text/PluralRules$FixedDecimal;->getBaseFactor()I
-Landroid/icu/text/PluralRules$FixedDecimal;->getDecimalDigits()J
-Landroid/icu/text/PluralRules$FixedDecimal;->getDecimalDigitsWithoutTrailingZeros()J
-Landroid/icu/text/PluralRules$FixedDecimal;->getFractionalDigits(DI)I
-Landroid/icu/text/PluralRules$FixedDecimal;->getIntegerValue()J
-Landroid/icu/text/PluralRules$FixedDecimal;->getOperand(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$FixedDecimal;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
-Landroid/icu/text/PluralRules$FixedDecimal;->getShiftedValue()J
-Landroid/icu/text/PluralRules$FixedDecimal;->getSource()D
-Landroid/icu/text/PluralRules$FixedDecimal;->getVisibleDecimalDigitCount()I
-Landroid/icu/text/PluralRules$FixedDecimal;->getVisibleDecimalDigitCountWithoutTrailingZeros()I
-Landroid/icu/text/PluralRules$FixedDecimal;->getVisibleFractionCount(Ljava/lang/String;)I
-Landroid/icu/text/PluralRules$FixedDecimal;->hasIntegerValue()Z
-Landroid/icu/text/PluralRules$FixedDecimal;->hasIntegerValue:Z
-Landroid/icu/text/PluralRules$FixedDecimal;->integerValue:J
-Landroid/icu/text/PluralRules$FixedDecimal;->isHasIntegerValue()Z
-Landroid/icu/text/PluralRules$FixedDecimal;->isInfinite()Z
-Landroid/icu/text/PluralRules$FixedDecimal;->isNaN()Z
-Landroid/icu/text/PluralRules$FixedDecimal;->isNegative()Z
-Landroid/icu/text/PluralRules$FixedDecimal;->isNegative:Z
-Landroid/icu/text/PluralRules$FixedDecimal;->MAX:J
-Landroid/icu/text/PluralRules$FixedDecimal;->MAX_INTEGER_PART:J
-Landroid/icu/text/PluralRules$FixedDecimal;->source:D
-Landroid/icu/text/PluralRules$FixedDecimal;->visibleDecimalDigitCount:I
-Landroid/icu/text/PluralRules$FixedDecimal;->visibleDecimalDigitCountWithoutTrailingZeros:I
-Landroid/icu/text/PluralRules$FixedDecimalRange;-><init>(Landroid/icu/text/PluralRules$FixedDecimal;Landroid/icu/text/PluralRules$FixedDecimal;)V
-Landroid/icu/text/PluralRules$FixedDecimalRange;->end:Landroid/icu/text/PluralRules$FixedDecimal;
-Landroid/icu/text/PluralRules$FixedDecimalRange;->start:Landroid/icu/text/PluralRules$FixedDecimal;
-Landroid/icu/text/PluralRules$FixedDecimalSamples;-><init>(Landroid/icu/text/PluralRules$SampleType;Ljava/util/Set;Z)V
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->addSamples(Ljava/util/Set;)Ljava/util/Set;
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->bounded:Z
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->checkDecimal(Landroid/icu/text/PluralRules$SampleType;Landroid/icu/text/PluralRules$FixedDecimal;)V
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->getSamples()Ljava/util/Set;
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->getStartEndSamples(Ljava/util/Set;)V
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->parse(Ljava/lang/String;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->samples:Ljava/util/Set;
-Landroid/icu/text/PluralRules$FixedDecimalSamples;->sampleType:Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$IFixedDecimal;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
-Landroid/icu/text/PluralRules$IFixedDecimal;->isInfinite()Z
-Landroid/icu/text/PluralRules$IFixedDecimal;->isNaN()Z
-Landroid/icu/text/PluralRules$KeywordStatus;->BOUNDED:Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;->INVALID:Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;->SUPPRESSED:Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;->UNBOUNDED:Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;->UNIQUE:Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;->values()[Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$Operand;->f:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->i:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->j:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->n:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->t:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->v:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->values()[Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;->w:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$OrConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
-Landroid/icu/text/PluralRules$OrConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-Landroid/icu/text/PluralRules$OrConstraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$RangeConstraint;-><init>(IZLandroid/icu/text/PluralRules$Operand;ZDD[J)V
-Landroid/icu/text/PluralRules$RangeConstraint;->inRange:Z
-Landroid/icu/text/PluralRules$RangeConstraint;->integersOnly:Z
-Landroid/icu/text/PluralRules$RangeConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-Landroid/icu/text/PluralRules$RangeConstraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$RangeConstraint;->lowerBound:D
-Landroid/icu/text/PluralRules$RangeConstraint;->mod:I
-Landroid/icu/text/PluralRules$RangeConstraint;->operand:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$RangeConstraint;->range_list:[J
-Landroid/icu/text/PluralRules$RangeConstraint;->upperBound:D
-Landroid/icu/text/PluralRules$Rule;-><init>(Ljava/lang/String;Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$FixedDecimalSamples;Landroid/icu/text/PluralRules$FixedDecimalSamples;)V
-Landroid/icu/text/PluralRules$Rule;->and(Landroid/icu/text/PluralRules$Constraint;)Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules$Rule;->appliesTo(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-Landroid/icu/text/PluralRules$Rule;->constraint:Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules$Rule;->decimalSamples:Landroid/icu/text/PluralRules$FixedDecimalSamples;
-Landroid/icu/text/PluralRules$Rule;->getConstraint()Ljava/lang/String;
-Landroid/icu/text/PluralRules$Rule;->getKeyword()Ljava/lang/String;
-Landroid/icu/text/PluralRules$Rule;->integerSamples:Landroid/icu/text/PluralRules$FixedDecimalSamples;
-Landroid/icu/text/PluralRules$Rule;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$Rule;->keyword:Ljava/lang/String;
-Landroid/icu/text/PluralRules$Rule;->or(Landroid/icu/text/PluralRules$Constraint;)Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules$RuleList;-><init>()V
-Landroid/icu/text/PluralRules$RuleList;->addRule(Landroid/icu/text/PluralRules$Rule;)Landroid/icu/text/PluralRules$RuleList;
-Landroid/icu/text/PluralRules$RuleList;->computeLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$RuleList;->finish()Landroid/icu/text/PluralRules$RuleList;
-Landroid/icu/text/PluralRules$RuleList;->getDecimalSamples(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
-Landroid/icu/text/PluralRules$RuleList;->getKeywords()Ljava/util/Set;
-Landroid/icu/text/PluralRules$RuleList;->getRules(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/PluralRules$RuleList;->hasExplicitBoundingInfo:Z
-Landroid/icu/text/PluralRules$RuleList;->isLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$RuleList;->rules:Ljava/util/List;
-Landroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
-Landroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;Ljava/lang/String;)Z
-Landroid/icu/text/PluralRules$RuleList;->selectRule(Landroid/icu/text/PluralRules$IFixedDecimal;)Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules$SampleType;->DECIMAL:Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SampleType;->INTEGER:Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SampleType;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SampleType;->values()[Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SimpleTokenizer;-><init>()V
-Landroid/icu/text/PluralRules$SimpleTokenizer;->BREAK_AND_IGNORE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/PluralRules$SimpleTokenizer;->BREAK_AND_KEEP:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/PluralRules$SimpleTokenizer;->split(Ljava/lang/String;)[Ljava/lang/String;
-Landroid/icu/text/PluralRules;-><init>(Landroid/icu/text/PluralRules$RuleList;)V
-Landroid/icu/text/PluralRules;->addConditional(Ljava/util/Set;Ljava/util/Set;D)Z
-Landroid/icu/text/PluralRules;->addRange(Ljava/lang/StringBuilder;DDZ)V
-Landroid/icu/text/PluralRules;->addSample(Ljava/lang/String;Ljava/lang/Number;ILjava/util/Set;)Z
-Landroid/icu/text/PluralRules;->ALLOWED_ID:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/PluralRules;->AND_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->AT_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->CATEGORY_SEPARATOR:Ljava/lang/String;
-Landroid/icu/text/PluralRules;->COMMA_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->compareTo(Landroid/icu/text/PluralRules;)I
-Landroid/icu/text/PluralRules;->computeLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules;->DEFAULT_RULE:Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules;->DOTDOT_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->format(D)Ljava/lang/String;
-Landroid/icu/text/PluralRules;->getAllKeywordValues(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Ljava/util/Collection;
-Landroid/icu/text/PluralRules;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/PluralRules;->getDecimalSamples(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
-Landroid/icu/text/PluralRules;->getFunctionalEquivalent(Landroid/icu/util/ULocale;[Z)Landroid/icu/util/ULocale;
-Landroid/icu/text/PluralRules;->getKeywordStatus(Ljava/lang/String;ILjava/util/Set;Landroid/icu/util/Output;)Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules;->getKeywordStatus(Ljava/lang/String;ILjava/util/Set;Landroid/icu/util/Output;Landroid/icu/text/PluralRules$SampleType;)Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules;->getRules(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/PluralRules;->getSamples(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Ljava/util/Collection;
-Landroid/icu/text/PluralRules;->isLimited(Ljava/lang/String;)Ljava/lang/Boolean;
-Landroid/icu/text/PluralRules;->isLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules;->isValidKeyword(Ljava/lang/String;)Z
-Landroid/icu/text/PluralRules;->keywords:Ljava/util/Set;
-Landroid/icu/text/PluralRules;->KEYWORD_RULE_SEPARATOR:Ljava/lang/String;
-Landroid/icu/text/PluralRules;->matches(Landroid/icu/text/PluralRules$FixedDecimal;Ljava/lang/String;)Z
-Landroid/icu/text/PluralRules;->nextToken([Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/PluralRules;->NO_CONSTRAINT:Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules;->OR_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->parseConstraint(Ljava/lang/String;)Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules;->parseRule(Ljava/lang/String;)Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules;->parseRuleChain(Ljava/lang/String;)Landroid/icu/text/PluralRules$RuleList;
-Landroid/icu/text/PluralRules;->rules:Landroid/icu/text/PluralRules$RuleList;
-Landroid/icu/text/PluralRules;->select(DIJ)Ljava/lang/String;
-Landroid/icu/text/PluralRules;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
-Landroid/icu/text/PluralRules;->SEMI_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->TILDE_SEPARATED:Ljava/util/regex/Pattern;
-Landroid/icu/text/PluralRules;->unexpected(Ljava/lang/String;Ljava/lang/String;)Ljava/text/ParseException;
-Landroid/icu/text/PluralSamples;-><init>(Landroid/icu/text/PluralRules;)V
-Landroid/icu/text/PluralSamples;->addIfNotPresent(DLjava/util/Set;Ljava/util/Map;)Z
-Landroid/icu/text/PluralSamples;->addRelation(Ljava/util/Map;Ljava/lang/String;Landroid/icu/text/PluralRules$FixedDecimal;)V
-Landroid/icu/text/PluralSamples;->addSimpleSamples(Landroid/icu/text/PluralRules;ILjava/util/Map;ID)I
-Landroid/icu/text/PluralSamples;->fractions(Ljava/util/Set;)Ljava/util/Set;
-Landroid/icu/text/PluralSamples;->getAllKeywordValues(Ljava/lang/String;)Ljava/util/Collection;
-Landroid/icu/text/PluralSamples;->getDifferentCategory(Ljava/util/List;Ljava/lang/String;)Ljava/lang/Integer;
-Landroid/icu/text/PluralSamples;->getFractionSamples()Ljava/util/Set;
-Landroid/icu/text/PluralSamples;->getKeyFractionSamplesMap()Ljava/util/Map;
-Landroid/icu/text/PluralSamples;->getKeySamplesMap()Ljava/util/Map;
-Landroid/icu/text/PluralSamples;->getStatus(Ljava/lang/String;ILjava/util/Set;Landroid/icu/util/Output;)Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralSamples;->LIMIT_FRACTION_SAMPLES:I
-Landroid/icu/text/PluralSamples;->pluralRules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/PluralSamples;->TENS:[I
-Landroid/icu/text/PluralSamples;->_fractionSamples:Ljava/util/Set;
-Landroid/icu/text/PluralSamples;->_keyFractionSamplesMap:Ljava/util/Map;
-Landroid/icu/text/PluralSamples;->_keyLimitedMap:Ljava/util/Map;
-Landroid/icu/text/PluralSamples;->_keySamplesMap:Ljava/util/Map;
-Landroid/icu/text/RawCollationKey;-><init>()V
-Landroid/icu/text/RawCollationKey;-><init>(I)V
-Landroid/icu/text/RawCollationKey;-><init>([B)V
-Landroid/icu/text/RawCollationKey;-><init>([BI)V
-Landroid/icu/text/RawCollationKey;->compareTo(Landroid/icu/text/RawCollationKey;)I
-Landroid/icu/text/RBBIDataWrapper$IsAcceptable;-><init>()V
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;-><init>()V
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fCatCount:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fFormatVersion:[B
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fFTable:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fFTableLen:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fLength:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fMagic:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRTable:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRTableLen:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRuleSource:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fRuleSourceLen:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSFTable:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSFTableLen:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSRTable:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fSRTableLen:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fStatusTable:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fStatusTableLen:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fTrie:I
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fTrieLen:I
-Landroid/icu/text/RBBIDataWrapper;-><init>()V
-Landroid/icu/text/RBBIDataWrapper;->ACCEPTING:I
-Landroid/icu/text/RBBIDataWrapper;->DATA_FORMAT:I
-Landroid/icu/text/RBBIDataWrapper;->DH_CATCOUNT:I
-Landroid/icu/text/RBBIDataWrapper;->DH_FORMATVERSION:I
-Landroid/icu/text/RBBIDataWrapper;->DH_FTABLE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_FTABLELEN:I
-Landroid/icu/text/RBBIDataWrapper;->DH_LENGTH:I
-Landroid/icu/text/RBBIDataWrapper;->DH_MAGIC:I
-Landroid/icu/text/RBBIDataWrapper;->DH_RTABLE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_RTABLELEN:I
-Landroid/icu/text/RBBIDataWrapper;->DH_RULESOURCE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_RULESOURCELEN:I
-Landroid/icu/text/RBBIDataWrapper;->DH_SFTABLE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_SFTABLELEN:I
-Landroid/icu/text/RBBIDataWrapper;->DH_SIZE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_SRTABLE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_SRTABLELEN:I
-Landroid/icu/text/RBBIDataWrapper;->DH_STATUSTABLE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_STATUSTABLELEN:I
-Landroid/icu/text/RBBIDataWrapper;->DH_TRIE:I
-Landroid/icu/text/RBBIDataWrapper;->DH_TRIELEN:I
-Landroid/icu/text/RBBIDataWrapper;->dump(Ljava/io/PrintStream;)V
-Landroid/icu/text/RBBIDataWrapper;->dumpCharCategories(Ljava/io/PrintStream;)V
-Landroid/icu/text/RBBIDataWrapper;->dumpRow(Ljava/io/PrintStream;[SI)V
-Landroid/icu/text/RBBIDataWrapper;->dumpTable(Ljava/io/PrintStream;[S)V
-Landroid/icu/text/RBBIDataWrapper;->fFTable:[S
-Landroid/icu/text/RBBIDataWrapper;->fHeader:Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;
-Landroid/icu/text/RBBIDataWrapper;->FLAGS:I
-Landroid/icu/text/RBBIDataWrapper;->FORMAT_VERSION:I
-Landroid/icu/text/RBBIDataWrapper;->fRTable:[S
-Landroid/icu/text/RBBIDataWrapper;->fRuleSource:Ljava/lang/String;
-Landroid/icu/text/RBBIDataWrapper;->fSFTable:[S
-Landroid/icu/text/RBBIDataWrapper;->fSRTable:[S
-Landroid/icu/text/RBBIDataWrapper;->fStatusTable:[I
-Landroid/icu/text/RBBIDataWrapper;->fTrie:Landroid/icu/impl/Trie2;
-Landroid/icu/text/RBBIDataWrapper;->get(Ljava/nio/ByteBuffer;)Landroid/icu/text/RBBIDataWrapper;
-Landroid/icu/text/RBBIDataWrapper;->getRowIndex(I)I
-Landroid/icu/text/RBBIDataWrapper;->getStateTableFlags([S)I
-Landroid/icu/text/RBBIDataWrapper;->getStateTableNumStates([S)I
-Landroid/icu/text/RBBIDataWrapper;->intToHexString(II)Ljava/lang/String;
-Landroid/icu/text/RBBIDataWrapper;->intToString(II)Ljava/lang/String;
-Landroid/icu/text/RBBIDataWrapper;->isBigEndian:Z
-Landroid/icu/text/RBBIDataWrapper;->IS_ACCEPTABLE:Landroid/icu/text/RBBIDataWrapper$IsAcceptable;
-Landroid/icu/text/RBBIDataWrapper;->LOOKAHEAD:I
-Landroid/icu/text/RBBIDataWrapper;->NEXTSTATES:I
-Landroid/icu/text/RBBIDataWrapper;->NUMSTATES:I
-Landroid/icu/text/RBBIDataWrapper;->RBBI_BOF_REQUIRED:I
-Landroid/icu/text/RBBIDataWrapper;->RBBI_LOOKAHEAD_HARD_BREAK:I
-Landroid/icu/text/RBBIDataWrapper;->RESERVED:I
-Landroid/icu/text/RBBIDataWrapper;->ROWLEN:I
-Landroid/icu/text/RBBIDataWrapper;->ROW_DATA:I
-Landroid/icu/text/RBBIDataWrapper;->TAGIDX:I
-Landroid/icu/text/RbnfLenientScanner;->allIgnorable(Ljava/lang/String;)Z
-Landroid/icu/text/RbnfLenientScanner;->findText(Ljava/lang/String;Ljava/lang/String;I)[I
-Landroid/icu/text/RbnfLenientScanner;->prefixLength(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/RbnfLenientScannerProvider;->get(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/RbnfLenientScanner;
-Landroid/icu/text/RBNFPostProcessor;->init(Landroid/icu/text/RuleBasedNumberFormat;Ljava/lang/String;)V
-Landroid/icu/text/RBNFPostProcessor;->process(Ljava/lang/StringBuilder;Landroid/icu/text/NFRuleSet;)V
-Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;->QUARTER:Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$Cache;-><init>()V
-Landroid/icu/text/RelativeDateTimeFormatter$Cache;->cache:Landroid/icu/impl/CacheBase;
-Landroid/icu/text/RelativeDateTimeFormatter$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-Landroid/icu/text/RelativeDateTimeFormatter$Loader;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RelativeDateTimeFormatter$Loader;->getDateTimePattern(Landroid/icu/impl/ICUResourceBundle;)Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter$Loader;->load()Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-Landroid/icu/text/RelativeDateTimeFormatter$Loader;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;->dateTimePattern:Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;->qualitativeUnitMap:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;->relUnitPatternMap:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;->QUARTERS:Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->absUnit:Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->DAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->FRIDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->HOUR:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->MINUTE:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->MONDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->MONTH:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->QUARTER:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->relUnit:Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->SATURDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->SECOND:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->SUNDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->THURSDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->TUESDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->valueOf(Ljava/lang/String;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->WEDNESDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->WEEK:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->YEAR:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;-><init>()V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelative(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelativeTime(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeDetail(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeUnit(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handleAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handlePlainDirection(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->pastFutureIndex:I
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->qualitativeUnitMap:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->sb:Ljava/lang/StringBuilder;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->style:Landroid/icu/text/RelativeDateTimeFormatter$Style;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleFromAlias(Landroid/icu/impl/UResource$Value;)Landroid/icu/text/RelativeDateTimeFormatter$Style;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Style;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleRelUnitPatterns:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleSuffixLength(Landroid/icu/text/RelativeDateTimeFormatter$Style;)I
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->unit:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$Style;->INDEX_COUNT:I
-Landroid/icu/text/RelativeDateTimeFormatter;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RelativeDateTimeFormatter;->adjustForContext(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter;->breakIterator:Landroid/icu/text/BreakIterator;
-Landroid/icu/text/RelativeDateTimeFormatter;->cache:Landroid/icu/text/RelativeDateTimeFormatter$Cache;
-Landroid/icu/text/RelativeDateTimeFormatter;->capitalizationContext:Landroid/icu/text/DisplayContext;
-Landroid/icu/text/RelativeDateTimeFormatter;->combinedDateAndTime:Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter;->dateFormatSymbols:Landroid/icu/text/DateFormatSymbols;
-Landroid/icu/text/RelativeDateTimeFormatter;->fallbackCache:[Landroid/icu/text/RelativeDateTimeFormatter$Style;
-Landroid/icu/text/RelativeDateTimeFormatter;->getAbsoluteUnitString(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;Landroid/icu/text/RelativeDateTimeFormatter$Direction;)Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter;->getRelativeUnitPattern(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;ILandroid/icu/impl/StandardPlural;)Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter;->getRelativeUnitPluralPattern(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;ILandroid/icu/impl/StandardPlural;)Ljava/lang/String;
-Landroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Direction;
-Landroid/icu/text/RelativeDateTimeFormatter;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/RelativeDateTimeFormatter;->numberFormat:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/RelativeDateTimeFormatter;->patternMap:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter;->pluralRules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/RelativeDateTimeFormatter;->qualitativeUnitMap:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter;->style:Landroid/icu/text/RelativeDateTimeFormatter$Style;
-Landroid/icu/text/RelativeDateTimeFormatter;->styleToDateFormatSymbolsWidth:[I
-Landroid/icu/text/ReplaceableString;-><init>()V
-Landroid/icu/text/ReplaceableString;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/ReplaceableString;-><init>(Ljava/lang/StringBuffer;)V
-Landroid/icu/text/ReplaceableString;->buf:Ljava/lang/StringBuffer;
-Landroid/icu/text/ReplaceableString;->substring(II)Ljava/lang/String;
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->addFollowing(IIZ)V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->addPreceding(IIZ)Z
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->CACHE_SIZE:I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->current()I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->dumpCache()V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fBoundaries:[I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fBufIdx:I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fEndBufIdx:I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->following(I)V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fSideBuffer:Landroid/icu/text/DictionaryBreakEngine$DequeI;
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fStartBufIdx:I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fStatuses:[S
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->fTextIdx:I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->modChunkSize(I)I
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->next()V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->previous()V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset()V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset(II)V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->RetainCachePosition:Z
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->seek(I)Z
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->UpdateCachePosition:Z
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fBoundary:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fBreaks:Landroid/icu/text/DictionaryBreakEngine$DequeI;
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fFirstRuleStatusIndex:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fLimit:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->following(I)Z
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fOtherRuleStatusIndex:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fPositionInCache:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fStart:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fStatusIndex:I
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->populateDictionary(IIII)V
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->preceding(I)Z
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->reset()V
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;-><init>()V
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->fKeys:[I
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->fPositions:[I
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->fUsedSlotLimit:I
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->getPosition(I)I
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->reset()V
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->setPosition(II)V
-Landroid/icu/text/RuleBasedBreakIterator;-><init>()V
-Landroid/icu/text/RuleBasedBreakIterator;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedBreakIterator;->checkOffset(ILjava/text/CharacterIterator;)V
-Landroid/icu/text/RuleBasedBreakIterator;->CISetIndex32(Ljava/text/CharacterIterator;I)I
-Landroid/icu/text/RuleBasedBreakIterator;->compileRules(Ljava/lang/String;Ljava/io/OutputStream;)V
-Landroid/icu/text/RuleBasedBreakIterator;->dump(Ljava/io/PrintStream;)V
-Landroid/icu/text/RuleBasedBreakIterator;->fBreakCache:Landroid/icu/text/RuleBasedBreakIterator$BreakCache;
-Landroid/icu/text/RuleBasedBreakIterator;->fBreakEngines:Ljava/util/List;
-Landroid/icu/text/RuleBasedBreakIterator;->fBreakType:I
-Landroid/icu/text/RuleBasedBreakIterator;->fDebugEnv:Ljava/lang/String;
-Landroid/icu/text/RuleBasedBreakIterator;->fDictionaryCache:Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;
-Landroid/icu/text/RuleBasedBreakIterator;->fDictionaryCharCount:I
-Landroid/icu/text/RuleBasedBreakIterator;->fDone:Z
-Landroid/icu/text/RuleBasedBreakIterator;->fLookAheadMatches:Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;
-Landroid/icu/text/RuleBasedBreakIterator;->fPosition:I
-Landroid/icu/text/RuleBasedBreakIterator;->fRData:Landroid/icu/text/RBBIDataWrapper;
-Landroid/icu/text/RuleBasedBreakIterator;->fRuleStatusIndex:I
-Landroid/icu/text/RuleBasedBreakIterator;->fText:Ljava/text/CharacterIterator;
-Landroid/icu/text/RuleBasedBreakIterator;->gAllBreakEngines:Ljava/util/List;
-Landroid/icu/text/RuleBasedBreakIterator;->getBreakType()I
-Landroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/io/InputStream;)Landroid/icu/text/RuleBasedBreakIterator;
-Landroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/nio/ByteBuffer;)Landroid/icu/text/RuleBasedBreakIterator;
-Landroid/icu/text/RuleBasedBreakIterator;->getLanguageBreakEngine(I)Landroid/icu/text/LanguageBreakEngine;
-Landroid/icu/text/RuleBasedBreakIterator;->gUnhandledBreakEngine:Landroid/icu/text/UnhandledBreakEngine;
-Landroid/icu/text/RuleBasedBreakIterator;->handleNext()I
-Landroid/icu/text/RuleBasedBreakIterator;->handlePrevious(I)I
-Landroid/icu/text/RuleBasedBreakIterator;->kMaxLookaheads:I
-Landroid/icu/text/RuleBasedBreakIterator;->RBBI_DEBUG_ARG:Ljava/lang/String;
-Landroid/icu/text/RuleBasedBreakIterator;->RBBI_END:I
-Landroid/icu/text/RuleBasedBreakIterator;->RBBI_RUN:I
-Landroid/icu/text/RuleBasedBreakIterator;->RBBI_START:I
-Landroid/icu/text/RuleBasedBreakIterator;->setBreakType(I)V
-Landroid/icu/text/RuleBasedBreakIterator;->START_STATE:I
-Landroid/icu/text/RuleBasedBreakIterator;->STOP_STATE:I
-Landroid/icu/text/RuleBasedBreakIterator;->TRACE:Z
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;)V
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftFCDUTF16Iter:Landroid/icu/impl/coll/FCDUTF16CollationIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftFCDUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftUTF16CollIter:Landroid/icu/impl/coll/UTF16CollationIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rawCollationKey:Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightFCDUTF16Iter:Landroid/icu/impl/coll/FCDUTF16CollationIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightFCDUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightUTF16CollIter:Landroid/icu/impl/coll/UTF16CollationIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;-><init>(Landroid/icu/text/RawCollationKey;)V
-Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;->key_:Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;-><init>()V
-Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;->setText(Landroid/icu/impl/Normalizer2Impl;Ljava/lang/CharSequence;I)V
-Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;->str:Ljava/lang/StringBuilder;
-Landroid/icu/text/RuleBasedCollator$NFDIterator;-><init>()V
-Landroid/icu/text/RuleBasedCollator$NFDIterator;->decomp:Ljava/lang/String;
-Landroid/icu/text/RuleBasedCollator$NFDIterator;->index:I
-Landroid/icu/text/RuleBasedCollator$NFDIterator;->nextCodePoint()I
-Landroid/icu/text/RuleBasedCollator$NFDIterator;->nextDecomposedCodePoint(Landroid/icu/impl/Normalizer2Impl;I)I
-Landroid/icu/text/RuleBasedCollator$NFDIterator;->nextRawCodePoint()I
-Landroid/icu/text/RuleBasedCollator$NFDIterator;->reset()V
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;-><init>()V
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->nextRawCodePoint()I
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->pos:I
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->s:Ljava/lang/CharSequence;
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->setText(Ljava/lang/CharSequence;I)V
-Landroid/icu/text/RuleBasedCollator;-><init>(Landroid/icu/impl/coll/CollationTailoring;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RuleBasedCollator;->actualLocaleIsSameAsValid:Z
-Landroid/icu/text/RuleBasedCollator;->adoptTailoring(Landroid/icu/impl/coll/CollationTailoring;)V
-Landroid/icu/text/RuleBasedCollator;->checkNotFrozen()V
-Landroid/icu/text/RuleBasedCollator;->collationBuffer:Landroid/icu/text/RuleBasedCollator$CollationBuffer;
-Landroid/icu/text/RuleBasedCollator;->compareNFDIter(Landroid/icu/impl/Normalizer2Impl;Landroid/icu/text/RuleBasedCollator$NFDIterator;Landroid/icu/text/RuleBasedCollator$NFDIterator;)I
-Landroid/icu/text/RuleBasedCollator;->data:Landroid/icu/impl/coll/CollationData;
-Landroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
-Landroid/icu/text/RuleBasedCollator;->frozenLock:Ljava/util/concurrent/locks/Lock;
-Landroid/icu/text/RuleBasedCollator;->getCollationBuffer()Landroid/icu/text/RuleBasedCollator$CollationBuffer;
-Landroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/CollationKey;
-Landroid/icu/text/RuleBasedCollator;->getDefaultSettings()Landroid/icu/impl/coll/CollationSettings;
-Landroid/icu/text/RuleBasedCollator;->getOwnedSettings()Landroid/icu/impl/coll/CollationSettings;
-Landroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/CharSequence;Landroid/icu/text/RawCollationKey;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/RuleBasedCollator;->initMaxExpansions()V
-Landroid/icu/text/RuleBasedCollator;->internalAddContractions(ILandroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/RuleBasedCollator;->internalBuildTailoring(Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedCollator;->internalGetCEs(Ljava/lang/CharSequence;)[J
-Landroid/icu/text/RuleBasedCollator;->internalSetVariableTop(J)V
-Landroid/icu/text/RuleBasedCollator;->isHiraganaQuaternary()Z
-Landroid/icu/text/RuleBasedCollator;->isUnsafe(I)Z
-Landroid/icu/text/RuleBasedCollator;->releaseCollationBuffer(Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
-Landroid/icu/text/RuleBasedCollator;->setFastLatinOptions(Landroid/icu/impl/coll/CollationSettings;)V
-Landroid/icu/text/RuleBasedCollator;->setHiraganaQuaternary(Z)V
-Landroid/icu/text/RuleBasedCollator;->setHiraganaQuaternaryDefault()V
-Landroid/icu/text/RuleBasedCollator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RuleBasedCollator;->settings:Landroid/icu/impl/coll/SharedObject$Reference;
-Landroid/icu/text/RuleBasedCollator;->setVariableTop(I)V
-Landroid/icu/text/RuleBasedCollator;->setVariableTop(Ljava/lang/String;)I
-Landroid/icu/text/RuleBasedCollator;->simpleKeyLengthEstimate(Ljava/lang/CharSequence;)I
-Landroid/icu/text/RuleBasedCollator;->tailoring:Landroid/icu/impl/coll/CollationTailoring;
-Landroid/icu/text/RuleBasedCollator;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/RuleBasedCollator;->writeIdenticalLevel(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;)V
-Landroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(I)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Landroid/icu/util/ULocale;I)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;[[Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;[[Ljava/lang/String;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/util/Locale;I)V
-Landroid/icu/text/RuleBasedNumberFormat;->adjustForContext(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->capitalizationBrkIter:Landroid/icu/text/BreakIterator;
-Landroid/icu/text/RuleBasedNumberFormat;->capitalizationForListOrMenu:Z
-Landroid/icu/text/RuleBasedNumberFormat;->capitalizationForStandAlone:Z
-Landroid/icu/text/RuleBasedNumberFormat;->capitalizationInfoIsSet:Z
-Landroid/icu/text/RuleBasedNumberFormat;->createPluralFormat(Landroid/icu/text/PluralRules$PluralType;Ljava/lang/String;)Landroid/icu/text/PluralFormat;
-Landroid/icu/text/RuleBasedNumberFormat;->DEBUG:Z
-Landroid/icu/text/RuleBasedNumberFormat;->decimalFormat:Landroid/icu/text/DecimalFormat;
-Landroid/icu/text/RuleBasedNumberFormat;->decimalFormatSymbols:Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/RuleBasedNumberFormat;->defaultInfinityRule:Landroid/icu/text/NFRule;
-Landroid/icu/text/RuleBasedNumberFormat;->defaultNaNRule:Landroid/icu/text/NFRule;
-Landroid/icu/text/RuleBasedNumberFormat;->defaultRuleSet:Landroid/icu/text/NFRuleSet;
-Landroid/icu/text/RuleBasedNumberFormat;->DURATION:I
-Landroid/icu/text/RuleBasedNumberFormat;->extractSpecial(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->findRuleSet(Ljava/lang/String;)Landroid/icu/text/NFRuleSet;
-Landroid/icu/text/RuleBasedNumberFormat;->format(DLandroid/icu/text/NFRuleSet;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->format(DLjava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->format(JLandroid/icu/text/NFRuleSet;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->format(JLjava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getDecimalFormat()Landroid/icu/text/DecimalFormat;
-Landroid/icu/text/RuleBasedNumberFormat;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/RuleBasedNumberFormat;->getDefaultInfinityRule()Landroid/icu/text/NFRule;
-Landroid/icu/text/RuleBasedNumberFormat;->getDefaultNaNRule()Landroid/icu/text/NFRule;
-Landroid/icu/text/RuleBasedNumberFormat;->getDefaultRuleSet()Landroid/icu/text/NFRuleSet;
-Landroid/icu/text/RuleBasedNumberFormat;->getDefaultRuleSetName()Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getLenientScanner()Landroid/icu/text/RbnfLenientScanner;
-Landroid/icu/text/RuleBasedNumberFormat;->getLenientScannerProvider()Landroid/icu/text/RbnfLenientScannerProvider;
-Landroid/icu/text/RuleBasedNumberFormat;->getNameListForLocale(Landroid/icu/util/ULocale;)[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayName(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayNameLocales()[Landroid/icu/util/ULocale;
-Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayNames()[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetDisplayNames(Landroid/icu/util/ULocale;)[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->getRuleSetNames()[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->init(Ljava/lang/String;[[Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedNumberFormat;->initCapitalizationContextInfo(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/RuleBasedNumberFormat;->initLocalizations([[Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedNumberFormat;->lenientParse:Z
-Landroid/icu/text/RuleBasedNumberFormat;->lenientParseEnabled()Z
-Landroid/icu/text/RuleBasedNumberFormat;->lenientParseRules:Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/RuleBasedNumberFormat;->locnames:[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->lookedForScanner:Z
-Landroid/icu/text/RuleBasedNumberFormat;->MAX_VALUE:Landroid/icu/math/BigDecimal;
-Landroid/icu/text/RuleBasedNumberFormat;->MIN_VALUE:Landroid/icu/math/BigDecimal;
-Landroid/icu/text/RuleBasedNumberFormat;->NUMBERING_SYSTEM:I
-Landroid/icu/text/RuleBasedNumberFormat;->ORDINAL:I
-Landroid/icu/text/RuleBasedNumberFormat;->postProcess(Ljava/lang/StringBuilder;Landroid/icu/text/NFRuleSet;)V
-Landroid/icu/text/RuleBasedNumberFormat;->postProcessor:Landroid/icu/text/RBNFPostProcessor;
-Landroid/icu/text/RuleBasedNumberFormat;->postProcessRules:Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->publicRuleSetNames:[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->roundingMode:I
-Landroid/icu/text/RuleBasedNumberFormat;->rulenames:[Ljava/lang/String;
-Landroid/icu/text/RuleBasedNumberFormat;->ruleSetDisplayNames:Ljava/util/Map;
-Landroid/icu/text/RuleBasedNumberFormat;->ruleSets:[Landroid/icu/text/NFRuleSet;
-Landroid/icu/text/RuleBasedNumberFormat;->ruleSetsMap:Ljava/util/Map;
-Landroid/icu/text/RuleBasedNumberFormat;->scannerProvider:Landroid/icu/text/RbnfLenientScannerProvider;
-Landroid/icu/text/RuleBasedNumberFormat;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
-Landroid/icu/text/RuleBasedNumberFormat;->setDefaultRuleSet(Ljava/lang/String;)V
-Landroid/icu/text/RuleBasedNumberFormat;->setLenientParseMode(Z)V
-Landroid/icu/text/RuleBasedNumberFormat;->setLenientScannerProvider(Landroid/icu/text/RbnfLenientScannerProvider;)V
-Landroid/icu/text/RuleBasedNumberFormat;->SPELLOUT:I
-Landroid/icu/text/RuleBasedNumberFormat;->stripWhitespace(Ljava/lang/String;)Ljava/lang/StringBuilder;
-Landroid/icu/text/RuleBasedTransliterator$Data;-><init>()V
-Landroid/icu/text/RuleBasedTransliterator$Data;->lookupMatcher(I)Landroid/icu/text/UnicodeMatcher;
-Landroid/icu/text/RuleBasedTransliterator$Data;->lookupReplacer(I)Landroid/icu/text/UnicodeReplacer;
-Landroid/icu/text/RuleBasedTransliterator$Data;->ruleSet:Landroid/icu/text/TransliterationRuleSet;
-Landroid/icu/text/RuleBasedTransliterator$Data;->variableNames:Ljava/util/Map;
-Landroid/icu/text/RuleBasedTransliterator$Data;->variables:[Ljava/lang/Object;
-Landroid/icu/text/RuleBasedTransliterator$Data;->variablesBase:C
-Landroid/icu/text/RuleBasedTransliterator;-><init>(Ljava/lang/String;Landroid/icu/text/RuleBasedTransliterator$Data;Landroid/icu/text/UnicodeFilter;)V
-Landroid/icu/text/RuleBasedTransliterator;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/RuleBasedTransliterator;->data:Landroid/icu/text/RuleBasedTransliterator$Data;
-Landroid/icu/text/RuleBasedTransliterator;->handleTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V
-Landroid/icu/text/RuleBasedTransliterator;->safeClone()Landroid/icu/text/Transliterator;
-Landroid/icu/text/RuleBasedTransliterator;->toRules(Z)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;->beginMarkup:Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;->endMarkup:Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;->format(Ljava/text/AttributedCharacterIterator;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$Style;-><init>()V
-Landroid/icu/text/ScientificNumberFormatter$Style;->append(Ljava/text/AttributedCharacterIterator;IILjava/lang/StringBuilder;)V
-Landroid/icu/text/ScientificNumberFormatter$Style;->format(Ljava/text/AttributedCharacterIterator;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;-><init>()V
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->char32AtAndAdvance(Ljava/text/AttributedCharacterIterator;)I
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->copyAsSuperscript(Ljava/text/AttributedCharacterIterator;IILjava/lang/StringBuilder;)V
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->format(Ljava/text/AttributedCharacterIterator;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->SUPERSCRIPT_DIGITS:[C
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->SUPERSCRIPT_MINUS_SIGN:C
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->SUPERSCRIPT_PLUS_SIGN:C
-Landroid/icu/text/ScientificNumberFormatter;-><init>(Landroid/icu/text/DecimalFormat;Ljava/lang/String;Landroid/icu/text/ScientificNumberFormatter$Style;)V
-Landroid/icu/text/ScientificNumberFormatter;->fmt:Landroid/icu/text/DecimalFormat;
-Landroid/icu/text/ScientificNumberFormatter;->getInstance(Landroid/icu/text/DecimalFormat;Landroid/icu/text/ScientificNumberFormatter$Style;)Landroid/icu/text/ScientificNumberFormatter;
-Landroid/icu/text/ScientificNumberFormatter;->getInstanceForLocale(Landroid/icu/util/ULocale;Landroid/icu/text/ScientificNumberFormatter$Style;)Landroid/icu/text/ScientificNumberFormatter;
-Landroid/icu/text/ScientificNumberFormatter;->getPreExponent(Landroid/icu/text/DecimalFormatSymbols;)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter;->preExponent:Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter;->style:Landroid/icu/text/ScientificNumberFormatter$Style;
-Landroid/icu/text/ScientificNumberFormatter;->SUPER_SCRIPT:Landroid/icu/text/ScientificNumberFormatter$Style;
-Landroid/icu/text/SCSU;->ARMENIANINDEX:I
-Landroid/icu/text/SCSU;->COMPRESSIONOFFSET:I
-Landroid/icu/text/SCSU;->GREEKINDEX:I
-Landroid/icu/text/SCSU;->HALFWIDTHKATAKANAINDEX:I
-Landroid/icu/text/SCSU;->HIRAGANAINDEX:I
-Landroid/icu/text/SCSU;->INVALIDCHAR:I
-Landroid/icu/text/SCSU;->INVALIDWINDOW:I
-Landroid/icu/text/SCSU;->IPAEXTENSIONINDEX:I
-Landroid/icu/text/SCSU;->KATAKANAINDEX:I
-Landroid/icu/text/SCSU;->LATININDEX:I
-Landroid/icu/text/SCSU;->MAXINDEX:I
-Landroid/icu/text/SCSU;->NUMSTATICWINDOWS:I
-Landroid/icu/text/SCSU;->NUMWINDOWS:I
-Landroid/icu/text/SCSU;->RESERVEDINDEX:I
-Landroid/icu/text/SCSU;->SCHANGE0:I
-Landroid/icu/text/SCSU;->SCHANGE1:I
-Landroid/icu/text/SCSU;->SCHANGE2:I
-Landroid/icu/text/SCSU;->SCHANGE3:I
-Landroid/icu/text/SCSU;->SCHANGE4:I
-Landroid/icu/text/SCSU;->SCHANGE5:I
-Landroid/icu/text/SCSU;->SCHANGE6:I
-Landroid/icu/text/SCSU;->SCHANGE7:I
-Landroid/icu/text/SCSU;->SCHANGEU:I
-Landroid/icu/text/SCSU;->SDEFINE0:I
-Landroid/icu/text/SCSU;->SDEFINE1:I
-Landroid/icu/text/SCSU;->SDEFINE2:I
-Landroid/icu/text/SCSU;->SDEFINE3:I
-Landroid/icu/text/SCSU;->SDEFINE4:I
-Landroid/icu/text/SCSU;->SDEFINE5:I
-Landroid/icu/text/SCSU;->SDEFINE6:I
-Landroid/icu/text/SCSU;->SDEFINE7:I
-Landroid/icu/text/SCSU;->SDEFINEX:I
-Landroid/icu/text/SCSU;->SINGLEBYTEMODE:I
-Landroid/icu/text/SCSU;->sOffsets:[I
-Landroid/icu/text/SCSU;->sOffsetTable:[I
-Landroid/icu/text/SCSU;->SQUOTE0:I
-Landroid/icu/text/SCSU;->SQUOTE1:I
-Landroid/icu/text/SCSU;->SQUOTE2:I
-Landroid/icu/text/SCSU;->SQUOTE3:I
-Landroid/icu/text/SCSU;->SQUOTE4:I
-Landroid/icu/text/SCSU;->SQUOTE5:I
-Landroid/icu/text/SCSU;->SQUOTE6:I
-Landroid/icu/text/SCSU;->SQUOTE7:I
-Landroid/icu/text/SCSU;->SQUOTEU:I
-Landroid/icu/text/SCSU;->SRESERVED:I
-Landroid/icu/text/SCSU;->UCHANGE0:I
-Landroid/icu/text/SCSU;->UCHANGE1:I
-Landroid/icu/text/SCSU;->UCHANGE2:I
-Landroid/icu/text/SCSU;->UCHANGE3:I
-Landroid/icu/text/SCSU;->UCHANGE4:I
-Landroid/icu/text/SCSU;->UCHANGE5:I
-Landroid/icu/text/SCSU;->UCHANGE6:I
-Landroid/icu/text/SCSU;->UCHANGE7:I
-Landroid/icu/text/SCSU;->UDEFINE0:I
-Landroid/icu/text/SCSU;->UDEFINE1:I
-Landroid/icu/text/SCSU;->UDEFINE2:I
-Landroid/icu/text/SCSU;->UDEFINE3:I
-Landroid/icu/text/SCSU;->UDEFINE4:I
-Landroid/icu/text/SCSU;->UDEFINE5:I
-Landroid/icu/text/SCSU;->UDEFINE6:I
-Landroid/icu/text/SCSU;->UDEFINE7:I
-Landroid/icu/text/SCSU;->UDEFINEX:I
-Landroid/icu/text/SCSU;->UNICODEMODE:I
-Landroid/icu/text/SCSU;->UQUOTEU:I
-Landroid/icu/text/SCSU;->URESERVED:I
-Landroid/icu/text/SearchIterator$Search;->beginIndex()I
-Landroid/icu/text/SearchIterator$Search;->breakIter()Landroid/icu/text/BreakIterator;
-Landroid/icu/text/SearchIterator$Search;->elementComparisonType_:Landroid/icu/text/SearchIterator$ElementComparisonType;
-Landroid/icu/text/SearchIterator$Search;->endIndex()I
-Landroid/icu/text/SearchIterator$Search;->internalBreakIter_:Landroid/icu/text/BreakIterator;
-Landroid/icu/text/SearchIterator$Search;->isCanonicalMatch_:Z
-Landroid/icu/text/SearchIterator$Search;->isForwardSearching_:Z
-Landroid/icu/text/SearchIterator$Search;->isOverlap_:Z
-Landroid/icu/text/SearchIterator$Search;->matchedIndex_:I
-Landroid/icu/text/SearchIterator$Search;->matchedLength()I
-Landroid/icu/text/SearchIterator$Search;->reset_:Z
-Landroid/icu/text/SearchIterator$Search;->setBreakIter(Landroid/icu/text/BreakIterator;)V
-Landroid/icu/text/SearchIterator$Search;->setMatchedLength(I)V
-Landroid/icu/text/SearchIterator$Search;->setTarget(Ljava/text/CharacterIterator;)V
-Landroid/icu/text/SearchIterator$Search;->text()Ljava/text/CharacterIterator;
-Landroid/icu/text/SearchIterator;->search_:Landroid/icu/text/SearchIterator$Search;
-Landroid/icu/text/SearchIterator;->setMatchNotFound()V
-Landroid/icu/text/SelectFormat;->findSubMessage(Landroid/icu/text/MessagePattern;ILjava/lang/String;)I
-Landroid/icu/text/SelectFormat;->msgPattern:Landroid/icu/text/MessagePattern;
-Landroid/icu/text/SelectFormat;->pattern:Ljava/lang/String;
-Landroid/icu/text/SelectFormat;->reset()V
-Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE:Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE:Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_STANDALONE:Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_UI_LIST_OR_MENU:Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;->UNKNOWN:Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;->valueOf(Ljava/lang/String;)Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;->values()[Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$PatternItem;-><init>(CI)V
-Landroid/icu/text/SimpleDateFormat$PatternItem;->isNumeric:Z
-Landroid/icu/text/SimpleDateFormat$PatternItem;->length:I
-Landroid/icu/text/SimpleDateFormat$PatternItem;->type:C
-Landroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/text/NumberFormat;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
-Landroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
-Landroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/SimpleDateFormat;->allowNumericFallback(I)Z
-Landroid/icu/text/SimpleDateFormat;->cachedDefaultLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/SimpleDateFormat;->cachedDefaultPattern:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->CALENDAR_FIELD_TO_LEVEL:[I
-Landroid/icu/text/SimpleDateFormat;->capitalizationBrkIter:Landroid/icu/text/BreakIterator;
-Landroid/icu/text/SimpleDateFormat;->countDigits(Ljava/lang/String;II)I
-Landroid/icu/text/SimpleDateFormat;->currentSerialVersion:I
-Landroid/icu/text/SimpleDateFormat;->DATE_PATTERN_TYPE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SimpleDateFormat;->decDigits:[C
-Landroid/icu/text/SimpleDateFormat;->decimalBuf:[C
-Landroid/icu/text/SimpleDateFormat;->DECIMAL_BUF_SIZE:I
-Landroid/icu/text/SimpleDateFormat;->defaultCenturyBase:J
-Landroid/icu/text/SimpleDateFormat;->defaultCenturyStart:Ljava/util/Date;
-Landroid/icu/text/SimpleDateFormat;->defaultCenturyStartYear:I
-Landroid/icu/text/SimpleDateFormat;->DelayedHebrewMonthCheck:Z
-Landroid/icu/text/SimpleDateFormat;->diffCalFieldValue(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;[Ljava/lang/Object;I)Z
-Landroid/icu/text/SimpleDateFormat;->FALLBACKPATTERN:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V
-Landroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/text/DisplayContext;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
-Landroid/icu/text/SimpleDateFormat;->formatData:Landroid/icu/text/DateFormatSymbols;
-Landroid/icu/text/SimpleDateFormat;->getDefaultCenturyStart()Ljava/util/Date;
-Landroid/icu/text/SimpleDateFormat;->getDefaultCenturyStartYear()I
-Landroid/icu/text/SimpleDateFormat;->getDefaultPattern()Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->getIndexFromChar(C)I
-Landroid/icu/text/SimpleDateFormat;->getInstance(Landroid/icu/util/Calendar$FormatConfiguration;)Landroid/icu/text/SimpleDateFormat;
-Landroid/icu/text/SimpleDateFormat;->getLevelFromChar(C)I
-Landroid/icu/text/SimpleDateFormat;->getLocale()Landroid/icu/util/ULocale;
-Landroid/icu/text/SimpleDateFormat;->getPatternItems()[Ljava/lang/Object;
-Landroid/icu/text/SimpleDateFormat;->hasMinute:Z
-Landroid/icu/text/SimpleDateFormat;->hasSecond:Z
-Landroid/icu/text/SimpleDateFormat;->HEBREW_CAL_CUR_MILLENIUM_END_YEAR:I
-Landroid/icu/text/SimpleDateFormat;->HEBREW_CAL_CUR_MILLENIUM_START_YEAR:I
-Landroid/icu/text/SimpleDateFormat;->initialize()V
-Landroid/icu/text/SimpleDateFormat;->initializeDefaultCenturyStart(J)V
-Landroid/icu/text/SimpleDateFormat;->initializeTimeZoneFormat(Z)V
-Landroid/icu/text/SimpleDateFormat;->initLocalZeroPaddingNumberFormat()V
-Landroid/icu/text/SimpleDateFormat;->initNumberFormatters(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/SimpleDateFormat;->intervalFormatByAlgorithm(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-Landroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(I)Z
-Landroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(Ljava/lang/String;I)Z
-Landroid/icu/text/SimpleDateFormat;->isNumeric(CI)Z
-Landroid/icu/text/SimpleDateFormat;->ISOSpecialEra:I
-Landroid/icu/text/SimpleDateFormat;->isSyntaxChar(C)Z
-Landroid/icu/text/SimpleDateFormat;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/SimpleDateFormat;->lowerLevel([Ljava/lang/Object;II)Z
-Landroid/icu/text/SimpleDateFormat;->matchDayPeriodString(Ljava/lang/String;I[Ljava/lang/String;ILandroid/icu/util/Output;)I
-Landroid/icu/text/SimpleDateFormat;->matchLiteral(Ljava/lang/String;I[Ljava/lang/Object;I[Z)I
-Landroid/icu/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/Calendar;)I
-Landroid/icu/text/SimpleDateFormat;->millisPerHour:I
-Landroid/icu/text/SimpleDateFormat;->numberFormatters:Ljava/util/HashMap;
-Landroid/icu/text/SimpleDateFormat;->NUMERIC_FORMAT_CHARS2:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->NUMERIC_FORMAT_CHARS:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->override:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->overrideMap:Ljava/util/HashMap;
-Landroid/icu/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V
-Landroid/icu/text/SimpleDateFormat;->PARSED_PATTERN_CACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/text/SimpleDateFormat;->parseInt(Ljava/lang/String;ILjava/text/ParsePosition;ZLandroid/icu/text/NumberFormat;)Ljava/lang/Number;
-Landroid/icu/text/SimpleDateFormat;->parseInt(Ljava/lang/String;Ljava/text/ParsePosition;ZLandroid/icu/text/NumberFormat;)Ljava/lang/Number;
-Landroid/icu/text/SimpleDateFormat;->parsePattern()V
-Landroid/icu/text/SimpleDateFormat;->pattern:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->patternItems:[Ljava/lang/Object;
-Landroid/icu/text/SimpleDateFormat;->PATTERN_CHAR_IS_SYNTAX:[Z
-Landroid/icu/text/SimpleDateFormat;->PATTERN_CHAR_TO_INDEX:[I
-Landroid/icu/text/SimpleDateFormat;->PATTERN_CHAR_TO_LEVEL:[I
-Landroid/icu/text/SimpleDateFormat;->PATTERN_INDEX_TO_CALENDAR_FIELD:[I
-Landroid/icu/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_ATTRIBUTE:[Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_FIELD:[I
-Landroid/icu/text/SimpleDateFormat;->processOverrideString(Landroid/icu/util/ULocale;Ljava/lang/String;)V
-Landroid/icu/text/SimpleDateFormat;->regionMatchesWithOptionalDot(Ljava/lang/String;ILjava/lang/String;I)I
-Landroid/icu/text/SimpleDateFormat;->safeAppend([Ljava/lang/String;ILjava/lang/StringBuffer;)V
-Landroid/icu/text/SimpleDateFormat;->safeAppendWithMonthPattern([Ljava/lang/String;ILjava/lang/StringBuffer;Ljava/lang/String;)V
-Landroid/icu/text/SimpleDateFormat;->serialVersionOnStream:I
-Landroid/icu/text/SimpleDateFormat;->subFormat(CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)V
-Landroid/icu/text/SimpleDateFormat;->subParse(Ljava/lang/String;ICIZZ[ZLandroid/icu/util/Calendar;Landroid/icu/text/MessageFormat;Landroid/icu/util/Output;)I
-Landroid/icu/text/SimpleDateFormat;->subParse(Ljava/lang/String;ICIZZ[ZLandroid/icu/util/Calendar;Landroid/icu/text/MessageFormat;Landroid/icu/util/Output;Landroid/icu/util/Output;)I
-Landroid/icu/text/SimpleDateFormat;->SUPPRESS_NEGATIVE_PREFIX:Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->translatePattern(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/SimpleDateFormat;->tzFormat()Landroid/icu/text/TimeZoneFormat;
-Landroid/icu/text/SimpleDateFormat;->tzFormat:Landroid/icu/text/TimeZoneFormat;
-Landroid/icu/text/SimpleDateFormat;->useFastFormat:Z
-Landroid/icu/text/SimpleDateFormat;->useLocalZeroPaddingNumberFormat:Z
-Landroid/icu/text/SimpleDateFormat;->zeroPaddingNumber(Landroid/icu/text/NumberFormat;Ljava/lang/StringBuffer;III)V
-Landroid/icu/text/SimpleFormatter;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/SimpleFormatter;->compile(Ljava/lang/CharSequence;)Landroid/icu/text/SimpleFormatter;
-Landroid/icu/text/SimpleFormatter;->compiledPattern:Ljava/lang/String;
-Landroid/icu/text/SimpleFormatter;->compileMinMaxArguments(Ljava/lang/CharSequence;II)Landroid/icu/text/SimpleFormatter;
-Landroid/icu/text/SimpleFormatter;->getArgumentLimit()I
-Landroid/icu/text/SimpleFormatter;->getTextWithNoArguments()Ljava/lang/String;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;->fCharOrStrTableIndex:I
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;->fStr:Ljava/lang/String;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;-><init>()V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;->compare(Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;)I
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;->INSTANCE:Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;-><init>()V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->addString(Ljava/lang/String;)Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->fHash:Ljava/util/Hashtable;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->fVec:Ljava/util/Vector;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->getByIndex(I)Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->size()I
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->sort()V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;-><init>()V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->build(Ljava/io/Reader;Landroid/icu/text/SpoofChecker$SpoofData;)V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->buildConfusableData(Ljava/io/Reader;Landroid/icu/text/SpoofChecker$SpoofData;)V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fKeySet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fKeyVec:Ljava/util/ArrayList;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fLineNum:I
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fParseHexNum:Ljava/util/regex/Pattern;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fParseLine:Ljava/util/regex/Pattern;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fStringTable:Ljava/lang/StringBuffer;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fTable:Ljava/util/Hashtable;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fValueVec:Ljava/util/ArrayList;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->stringPool:Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;
-Landroid/icu/text/SpoofChecker$Builder;-><init>()V
-Landroid/icu/text/SpoofChecker$Builder;-><init>(Landroid/icu/text/SpoofChecker;)V
-Landroid/icu/text/SpoofChecker$Builder;->addScriptChars(Landroid/icu/util/ULocale;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/SpoofChecker$Builder;->build()Landroid/icu/text/SpoofChecker;
-Landroid/icu/text/SpoofChecker$Builder;->fAllowedCharsSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker$Builder;->fAllowedLocales:Ljava/util/Set;
-Landroid/icu/text/SpoofChecker$Builder;->fChecks:I
-Landroid/icu/text/SpoofChecker$Builder;->fRestrictionLevel:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$Builder;->fSpoofData:Landroid/icu/text/SpoofChecker$SpoofData;
-Landroid/icu/text/SpoofChecker$Builder;->setAllowedChars(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$Builder;->setAllowedJavaLocales(Ljava/util/Set;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$Builder;->setAllowedLocales(Ljava/util/Set;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$Builder;->setChecks(I)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$Builder;->setData(Ljava/io/Reader;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$Builder;->setData(Ljava/io/Reader;Ljava/io/Reader;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$Builder;->setRestrictionLevel(Landroid/icu/text/SpoofChecker$RestrictionLevel;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$CheckResult;-><init>()V
-Landroid/icu/text/SpoofChecker$CheckResult;->checks:I
-Landroid/icu/text/SpoofChecker$CheckResult;->numerics:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker$CheckResult;->position:I
-Landroid/icu/text/SpoofChecker$CheckResult;->restrictionLevel:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;-><init>()V
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->codePointAndLengthToKey(II)I
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->FORMAT_VERSION:I
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->keyToCodePoint(I)I
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->keyToLength(I)I
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->ASCII:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->HIGHLY_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->MINIMALLY_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->MODERATELY_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->SINGLE_SCRIPT_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->UNRESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->valueOf(Ljava/lang/String;)Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;->values()[Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$ScriptSet;->appendStringTo(Ljava/lang/StringBuilder;)V
-Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;-><init>()V
-Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;->EXCEPTION:Ljava/io/IOException;
-Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;->INSTANCE:Landroid/icu/text/SpoofChecker$SpoofData;
-Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable;-><init>()V
-Landroid/icu/text/SpoofChecker$SpoofData;-><init>()V
-Landroid/icu/text/SpoofChecker$SpoofData;-><init>(Ljava/nio/ByteBuffer;)V
-Landroid/icu/text/SpoofChecker$SpoofData;->appendValueTo(ILjava/lang/StringBuilder;)V
-Landroid/icu/text/SpoofChecker$SpoofData;->codePointAt(I)I
-Landroid/icu/text/SpoofChecker$SpoofData;->confusableLookup(ILjava/lang/StringBuilder;)V
-Landroid/icu/text/SpoofChecker$SpoofData;->DATA_FORMAT:I
-Landroid/icu/text/SpoofChecker$SpoofData;->fCFUKeys:[I
-Landroid/icu/text/SpoofChecker$SpoofData;->fCFUStrings:Ljava/lang/String;
-Landroid/icu/text/SpoofChecker$SpoofData;->fCFUValues:[S
-Landroid/icu/text/SpoofChecker$SpoofData;->getDefault()Landroid/icu/text/SpoofChecker$SpoofData;
-Landroid/icu/text/SpoofChecker$SpoofData;->IS_ACCEPTABLE:Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable;
-Landroid/icu/text/SpoofChecker$SpoofData;->length()I
-Landroid/icu/text/SpoofChecker$SpoofData;->readData(Ljava/nio/ByteBuffer;)V
-Landroid/icu/text/SpoofChecker;-><init>()V
-Landroid/icu/text/SpoofChecker;->ALL_CHECKS:I
-Landroid/icu/text/SpoofChecker;->ANY_CASE:I
-Landroid/icu/text/SpoofChecker;->areConfusable(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/SpoofChecker;->ASCII:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker;->CHAR_LIMIT:I
-Landroid/icu/text/SpoofChecker;->CONFUSABLE:I
-Landroid/icu/text/SpoofChecker;->failsChecks(Ljava/lang/String;)Z
-Landroid/icu/text/SpoofChecker;->failsChecks(Ljava/lang/String;Landroid/icu/text/SpoofChecker$CheckResult;)Z
-Landroid/icu/text/SpoofChecker;->fAllowedCharsSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker;->fAllowedLocales:Ljava/util/Set;
-Landroid/icu/text/SpoofChecker;->fChecks:I
-Landroid/icu/text/SpoofChecker;->fRestrictionLevel:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker;->fSpoofData:Landroid/icu/text/SpoofChecker$SpoofData;
-Landroid/icu/text/SpoofChecker;->getAllowedChars()Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker;->getAllowedJavaLocales()Ljava/util/Set;
-Landroid/icu/text/SpoofChecker;->getAllowedLocales()Ljava/util/Set;
-Landroid/icu/text/SpoofChecker;->getAugmentedScriptSet(ILandroid/icu/text/SpoofChecker$ScriptSet;)V
-Landroid/icu/text/SpoofChecker;->getChecks()I
-Landroid/icu/text/SpoofChecker;->getNumerics(Ljava/lang/String;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/SpoofChecker;->getResolvedScriptSet(Ljava/lang/CharSequence;Landroid/icu/text/SpoofChecker$ScriptSet;)V
-Landroid/icu/text/SpoofChecker;->getResolvedScriptSetWithout(Ljava/lang/CharSequence;ILandroid/icu/text/SpoofChecker$ScriptSet;)V
-Landroid/icu/text/SpoofChecker;->getRestrictionLevel()Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker;->getRestrictionLevel(Ljava/lang/String;)Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker;->getSkeleton(ILjava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/SpoofChecker;->getSkeleton(Ljava/lang/CharSequence;)Ljava/lang/String;
-Landroid/icu/text/SpoofChecker;->INCLUSION:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker;->INVISIBLE:I
-Landroid/icu/text/SpoofChecker;->MIXED_NUMBERS:I
-Landroid/icu/text/SpoofChecker;->MIXED_SCRIPT_CONFUSABLE:I
-Landroid/icu/text/SpoofChecker;->nfdNormalizer:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/SpoofChecker;->RECOMMENDED:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/SpoofChecker;->RESTRICTION_LEVEL:I
-Landroid/icu/text/SpoofChecker;->SINGLE_SCRIPT:I
-Landroid/icu/text/SpoofChecker;->SINGLE_SCRIPT_CONFUSABLE:I
-Landroid/icu/text/SpoofChecker;->WHOLE_SCRIPT_CONFUSABLE:I
-Landroid/icu/text/StringCharacterIterator;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/StringCharacterIterator;-><init>(Ljava/lang/String;I)V
-Landroid/icu/text/StringCharacterIterator;-><init>(Ljava/lang/String;III)V
-Landroid/icu/text/StringCharacterIterator;->begin:I
-Landroid/icu/text/StringCharacterIterator;->end:I
-Landroid/icu/text/StringCharacterIterator;->pos:I
-Landroid/icu/text/StringCharacterIterator;->setText(Ljava/lang/String;)V
-Landroid/icu/text/StringCharacterIterator;->text:Ljava/lang/String;
-Landroid/icu/text/StringMatcher;-><init>(Ljava/lang/String;IIILandroid/icu/text/RuleBasedTransliterator$Data;)V
-Landroid/icu/text/StringMatcher;-><init>(Ljava/lang/String;ILandroid/icu/text/RuleBasedTransliterator$Data;)V
-Landroid/icu/text/StringMatcher;->addReplacementSetTo(Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/StringMatcher;->data:Landroid/icu/text/RuleBasedTransliterator$Data;
-Landroid/icu/text/StringMatcher;->matchLimit:I
-Landroid/icu/text/StringMatcher;->matchStart:I
-Landroid/icu/text/StringMatcher;->pattern:Ljava/lang/String;
-Landroid/icu/text/StringMatcher;->replace(Landroid/icu/text/Replaceable;II[I)I
-Landroid/icu/text/StringMatcher;->resetMatch()V
-Landroid/icu/text/StringMatcher;->segmentNumber:I
-Landroid/icu/text/StringMatcher;->toReplacerPattern(Z)Ljava/lang/String;
-Landroid/icu/text/StringPrep$Values;-><init>()V
-Landroid/icu/text/StringPrep$Values;->isIndex:Z
-Landroid/icu/text/StringPrep$Values;->reset()V
-Landroid/icu/text/StringPrep$Values;->type:I
-Landroid/icu/text/StringPrep$Values;->value:I
-Landroid/icu/text/StringPrep;-><init>(Ljava/io/InputStream;)V
-Landroid/icu/text/StringPrep;-><init>(Ljava/nio/ByteBuffer;)V
-Landroid/icu/text/StringPrep;->ALLOW_UNASSIGNED:I
-Landroid/icu/text/StringPrep;->bdp:Landroid/icu/impl/UBiDiProps;
-Landroid/icu/text/StringPrep;->CACHE:[Ljava/lang/ref/WeakReference;
-Landroid/icu/text/StringPrep;->checkBiDi:Z
-Landroid/icu/text/StringPrep;->CHECK_BIDI_ON:I
-Landroid/icu/text/StringPrep;->DEFAULT:I
-Landroid/icu/text/StringPrep;->DELETE:I
-Landroid/icu/text/StringPrep;->doNFKC:Z
-Landroid/icu/text/StringPrep;->FOUR_UCHARS_MAPPING_INDEX_START:I
-Landroid/icu/text/StringPrep;->getCodePointValue(I)C
-Landroid/icu/text/StringPrep;->getInstance(I)Landroid/icu/text/StringPrep;
-Landroid/icu/text/StringPrep;->getValues(CLandroid/icu/text/StringPrep$Values;)V
-Landroid/icu/text/StringPrep;->getVersionInfo(I)Landroid/icu/util/VersionInfo;
-Landroid/icu/text/StringPrep;->getVersionInfo([B)Landroid/icu/util/VersionInfo;
-Landroid/icu/text/StringPrep;->indexes:[I
-Landroid/icu/text/StringPrep;->INDEX_MAPPING_DATA_SIZE:I
-Landroid/icu/text/StringPrep;->INDEX_TOP:I
-Landroid/icu/text/StringPrep;->map(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/StringPrep;->MAP:I
-Landroid/icu/text/StringPrep;->mappingData:[C
-Landroid/icu/text/StringPrep;->MAX_INDEX_VALUE:I
-Landroid/icu/text/StringPrep;->MAX_PROFILE:I
-Landroid/icu/text/StringPrep;->NORMALIZATION_ON:I
-Landroid/icu/text/StringPrep;->normalize(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
-Landroid/icu/text/StringPrep;->normCorrVer:Landroid/icu/util/VersionInfo;
-Landroid/icu/text/StringPrep;->NORM_CORRECTNS_LAST_UNI_VERSION:I
-Landroid/icu/text/StringPrep;->ONE_UCHAR_MAPPING_INDEX_START:I
-Landroid/icu/text/StringPrep;->OPTIONS:I
-Landroid/icu/text/StringPrep;->prepare(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/StringPrep;->prepare(Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/text/StringPrep;->PROFILE_NAMES:[Ljava/lang/String;
-Landroid/icu/text/StringPrep;->PROHIBITED:I
-Landroid/icu/text/StringPrep;->RFC3491_NAMEPREP:I
-Landroid/icu/text/StringPrep;->RFC3530_NFS4_CIS_PREP:I
-Landroid/icu/text/StringPrep;->RFC3530_NFS4_CS_PREP:I
-Landroid/icu/text/StringPrep;->RFC3530_NFS4_CS_PREP_CI:I
-Landroid/icu/text/StringPrep;->RFC3530_NFS4_MIXED_PREP_PREFIX:I
-Landroid/icu/text/StringPrep;->RFC3530_NFS4_MIXED_PREP_SUFFIX:I
-Landroid/icu/text/StringPrep;->RFC3722_ISCSI:I
-Landroid/icu/text/StringPrep;->RFC3920_NODEPREP:I
-Landroid/icu/text/StringPrep;->RFC3920_RESOURCEPREP:I
-Landroid/icu/text/StringPrep;->RFC4011_MIB:I
-Landroid/icu/text/StringPrep;->RFC4013_SASLPREP:I
-Landroid/icu/text/StringPrep;->RFC4505_TRACE:I
-Landroid/icu/text/StringPrep;->RFC4518_LDAP:I
-Landroid/icu/text/StringPrep;->RFC4518_LDAP_CI:I
-Landroid/icu/text/StringPrep;->sprepTrie:Landroid/icu/impl/CharTrie;
-Landroid/icu/text/StringPrep;->sprepUniVer:Landroid/icu/util/VersionInfo;
-Landroid/icu/text/StringPrep;->THREE_UCHARS_MAPPING_INDEX_START:I
-Landroid/icu/text/StringPrep;->TWO_UCHARS_MAPPING_INDEX_START:I
-Landroid/icu/text/StringPrep;->TYPE_LIMIT:I
-Landroid/icu/text/StringPrep;->TYPE_THRESHOLD:I
-Landroid/icu/text/StringPrep;->UNASSIGNED:I
-Landroid/icu/text/StringPrepParseException;->error:I
-Landroid/icu/text/StringPrepParseException;->line:I
-Landroid/icu/text/StringPrepParseException;->PARSE_CONTEXT_LEN:I
-Landroid/icu/text/StringPrepParseException;->postContext:Ljava/lang/StringBuffer;
-Landroid/icu/text/StringPrepParseException;->preContext:Ljava/lang/StringBuffer;
-Landroid/icu/text/StringPrepParseException;->setContext(Ljava/lang/String;I)V
-Landroid/icu/text/StringPrepParseException;->setPostContext(Ljava/lang/String;I)V
-Landroid/icu/text/StringPrepParseException;->setPostContext([CI)V
-Landroid/icu/text/StringPrepParseException;->setPreContext(Ljava/lang/String;I)V
-Landroid/icu/text/StringPrepParseException;->setPreContext([CI)V
-Landroid/icu/text/StringSearch$CEBuffer;-><init>(Landroid/icu/text/StringSearch;)V
-Landroid/icu/text/StringSearch$CEBuffer;->bufSize_:I
-Landroid/icu/text/StringSearch$CEBuffer;->buf_:[Landroid/icu/text/StringSearch$CEI;
-Landroid/icu/text/StringSearch$CEBuffer;->CEBUFFER_EXTRA:I
-Landroid/icu/text/StringSearch$CEBuffer;->firstIx_:I
-Landroid/icu/text/StringSearch$CEBuffer;->get(I)Landroid/icu/text/StringSearch$CEI;
-Landroid/icu/text/StringSearch$CEBuffer;->getPrevious(I)Landroid/icu/text/StringSearch$CEI;
-Landroid/icu/text/StringSearch$CEBuffer;->limitIx_:I
-Landroid/icu/text/StringSearch$CEBuffer;->MAX_TARGET_IGNORABLES_PER_PAT_JAMO_L:I
-Landroid/icu/text/StringSearch$CEBuffer;->MAX_TARGET_IGNORABLES_PER_PAT_OTHER:I
-Landroid/icu/text/StringSearch$CEBuffer;->MIGHT_BE_JAMO_L(C)Z
-Landroid/icu/text/StringSearch$CEBuffer;->strSearch_:Landroid/icu/text/StringSearch;
-Landroid/icu/text/StringSearch$CEI;-><init>()V
-Landroid/icu/text/StringSearch$CEI;->ce_:J
-Landroid/icu/text/StringSearch$CEI;->highIndex_:I
-Landroid/icu/text/StringSearch$CEI;->lowIndex_:I
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;-><init>()V
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->bufferIndex_:I
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->buffer_:[Landroid/icu/text/StringSearch$CollationPCE$PCEI;
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->empty()Z
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->get()Landroid/icu/text/StringSearch$CollationPCE$PCEI;
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->put(JII)V
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->reset()V
-Landroid/icu/text/StringSearch$CollationPCE$PCEI;-><init>()V
-Landroid/icu/text/StringSearch$CollationPCE$PCEI;->ce_:J
-Landroid/icu/text/StringSearch$CollationPCE$PCEI;->high_:I
-Landroid/icu/text/StringSearch$CollationPCE$PCEI;->low_:I
-Landroid/icu/text/StringSearch$CollationPCE$Range;-><init>()V
-Landroid/icu/text/StringSearch$CollationPCE$Range;->ixHigh_:I
-Landroid/icu/text/StringSearch$CollationPCE$Range;->ixLow_:I
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;-><init>()V
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->bufferIndex_:I
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->buffer_:[Landroid/icu/text/StringSearch$CollationPCE$RCEI;
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->empty()Z
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->get()Landroid/icu/text/StringSearch$CollationPCE$RCEI;
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->put(III)V
-Landroid/icu/text/StringSearch$CollationPCE$RCEI;-><init>()V
-Landroid/icu/text/StringSearch$CollationPCE$RCEI;->ce_:I
-Landroid/icu/text/StringSearch$CollationPCE$RCEI;->high_:I
-Landroid/icu/text/StringSearch$CollationPCE$RCEI;->low_:I
-Landroid/icu/text/StringSearch$CollationPCE;-><init>(Landroid/icu/text/CollationElementIterator;)V
-Landroid/icu/text/StringSearch$CollationPCE;->BUFFER_GROW:I
-Landroid/icu/text/StringSearch$CollationPCE;->cei_:Landroid/icu/text/CollationElementIterator;
-Landroid/icu/text/StringSearch$CollationPCE;->CONTINUATION_MARKER:I
-Landroid/icu/text/StringSearch$CollationPCE;->DEFAULT_BUFFER_SIZE:I
-Landroid/icu/text/StringSearch$CollationPCE;->init(Landroid/icu/text/CollationElementIterator;)V
-Landroid/icu/text/StringSearch$CollationPCE;->init(Landroid/icu/text/RuleBasedCollator;)V
-Landroid/icu/text/StringSearch$CollationPCE;->isContinuation(I)Z
-Landroid/icu/text/StringSearch$CollationPCE;->isShifted_:Z
-Landroid/icu/text/StringSearch$CollationPCE;->nextProcessed(Landroid/icu/text/StringSearch$CollationPCE$Range;)J
-Landroid/icu/text/StringSearch$CollationPCE;->pceBuffer_:Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;
-Landroid/icu/text/StringSearch$CollationPCE;->previousProcessed(Landroid/icu/text/StringSearch$CollationPCE$Range;)J
-Landroid/icu/text/StringSearch$CollationPCE;->PRIMARYORDERMASK:I
-Landroid/icu/text/StringSearch$CollationPCE;->processCE(I)J
-Landroid/icu/text/StringSearch$CollationPCE;->PROCESSED_NULLORDER:J
-Landroid/icu/text/StringSearch$CollationPCE;->strength_:I
-Landroid/icu/text/StringSearch$CollationPCE;->toShift_:Z
-Landroid/icu/text/StringSearch$CollationPCE;->variableTop_:I
-Landroid/icu/text/StringSearch$Match;-><init>()V
-Landroid/icu/text/StringSearch$Match;->limit_:I
-Landroid/icu/text/StringSearch$Match;->start_:I
-Landroid/icu/text/StringSearch$Pattern;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/StringSearch$Pattern;->CELength_:I
-Landroid/icu/text/StringSearch$Pattern;->CE_:[I
-Landroid/icu/text/StringSearch$Pattern;->PCELength_:I
-Landroid/icu/text/StringSearch$Pattern;->PCE_:[J
-Landroid/icu/text/StringSearch$Pattern;->text_:Ljava/lang/String;
-Landroid/icu/text/StringSearch;->addToIntArray([IIII)[I
-Landroid/icu/text/StringSearch;->addToLongArray([JIIJI)[J
-Landroid/icu/text/StringSearch;->ceMask_:I
-Landroid/icu/text/StringSearch;->CE_LEVEL2_BASE:I
-Landroid/icu/text/StringSearch;->CE_LEVEL3_BASE:I
-Landroid/icu/text/StringSearch;->CE_MATCH:I
-Landroid/icu/text/StringSearch;->CE_NO_MATCH:I
-Landroid/icu/text/StringSearch;->CE_SKIP_PATN:I
-Landroid/icu/text/StringSearch;->CE_SKIP_TARG:I
-Landroid/icu/text/StringSearch;->checkIdentical(II)Z
-Landroid/icu/text/StringSearch;->codePointAt(Ljava/text/CharacterIterator;I)I
-Landroid/icu/text/StringSearch;->codePointBefore(Ljava/text/CharacterIterator;I)I
-Landroid/icu/text/StringSearch;->collator_:Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/StringSearch;->compareCE64s(JJLandroid/icu/text/SearchIterator$ElementComparisonType;)I
-Landroid/icu/text/StringSearch;->getCE(I)I
-Landroid/icu/text/StringSearch;->getMask(I)I
-Landroid/icu/text/StringSearch;->getString(Ljava/text/CharacterIterator;II)Ljava/lang/String;
-Landroid/icu/text/StringSearch;->handleNextCanonical()Z
-Landroid/icu/text/StringSearch;->handleNextCommonImpl()Z
-Landroid/icu/text/StringSearch;->handleNextExact()Z
-Landroid/icu/text/StringSearch;->handlePreviousCanonical()Z
-Landroid/icu/text/StringSearch;->handlePreviousCommonImpl()Z
-Landroid/icu/text/StringSearch;->handlePreviousExact()Z
-Landroid/icu/text/StringSearch;->initialize()V
-Landroid/icu/text/StringSearch;->initializePattern()I
-Landroid/icu/text/StringSearch;->initializePatternCETable()I
-Landroid/icu/text/StringSearch;->initializePatternPCETable()I
-Landroid/icu/text/StringSearch;->INITIAL_ARRAY_SIZE_:I
-Landroid/icu/text/StringSearch;->initTextProcessedIter()Z
-Landroid/icu/text/StringSearch;->isBreakBoundary(I)Z
-Landroid/icu/text/StringSearch;->isOutOfBounds(III)Z
-Landroid/icu/text/StringSearch;->nextBoundaryAfter(I)I
-Landroid/icu/text/StringSearch;->nfd_:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/StringSearch;->pattern_:Landroid/icu/text/StringSearch$Pattern;
-Landroid/icu/text/StringSearch;->PRIMARYORDERMASK:I
-Landroid/icu/text/StringSearch;->search(ILandroid/icu/text/StringSearch$Match;)Z
-Landroid/icu/text/StringSearch;->searchBackwards(ILandroid/icu/text/StringSearch$Match;)Z
-Landroid/icu/text/StringSearch;->SECONDARYORDERMASK:I
-Landroid/icu/text/StringSearch;->setMatchNotFound()V
-Landroid/icu/text/StringSearch;->strength_:I
-Landroid/icu/text/StringSearch;->TERTIARYORDERMASK:I
-Landroid/icu/text/StringSearch;->textIter_:Landroid/icu/text/CollationElementIterator;
-Landroid/icu/text/StringSearch;->textProcessedIter_:Landroid/icu/text/StringSearch$CollationPCE;
-Landroid/icu/text/StringSearch;->toShift_:Z
-Landroid/icu/text/StringSearch;->utilIter_:Landroid/icu/text/CollationElementIterator;
-Landroid/icu/text/StringSearch;->variableTop_:I
-Landroid/icu/text/StringTransform;->transform(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;-><init>(Ljava/util/Map;ILjava/util/Set;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->beenHere:Z
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->pluralKeywords:Ljava/util/Set;
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->style:I
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->timeUnitToCountToPatterns:Ljava/util/Map;
-Landroid/icu/text/TimeUnitFormat;-><init>()V
-Landroid/icu/text/TimeUnitFormat;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/text/TimeUnitFormat;-><init>(Landroid/icu/util/ULocale;I)V
-Landroid/icu/text/TimeUnitFormat;-><init>(Landroid/icu/util/ULocale;ILandroid/icu/text/NumberFormat;)V
-Landroid/icu/text/TimeUnitFormat;-><init>(Ljava/util/Locale;)V
-Landroid/icu/text/TimeUnitFormat;-><init>(Ljava/util/Locale;I)V
-Landroid/icu/text/TimeUnitFormat;->ABBREVIATED_NAME:I
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_DAY:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_HOUR:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_MINUTE:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_MONTH:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_SECOND:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_WEEK:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->DEFAULT_PATTERN_FOR_YEAR:Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat;->format:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/TimeUnitFormat;->FULL_NAME:I
-Landroid/icu/text/TimeUnitFormat;->isReady:Z
-Landroid/icu/text/TimeUnitFormat;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/TimeUnitFormat;->mf:Landroid/icu/text/MeasureFormat;
-Landroid/icu/text/TimeUnitFormat;->pluralRules:Landroid/icu/text/PluralRules;
-Landroid/icu/text/TimeUnitFormat;->searchInTree(Ljava/lang/String;ILandroid/icu/util/TimeUnit;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
-Landroid/icu/text/TimeUnitFormat;->setLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeUnitFormat;
-Landroid/icu/text/TimeUnitFormat;->setLocale(Ljava/util/Locale;)Landroid/icu/text/TimeUnitFormat;
-Landroid/icu/text/TimeUnitFormat;->setNumberFormat(Landroid/icu/text/NumberFormat;)Landroid/icu/text/TimeUnitFormat;
-Landroid/icu/text/TimeUnitFormat;->setup()V
-Landroid/icu/text/TimeUnitFormat;->setup(Ljava/lang/String;Ljava/util/Map;ILjava/util/Set;)V
-Landroid/icu/text/TimeUnitFormat;->style:I
-Landroid/icu/text/TimeUnitFormat;->timeUnitToCountToPatterns:Ljava/util/Map;
-Landroid/icu/text/TimeUnitFormat;->TOTAL_STYLES:I
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;-><init>(CI)V
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->getType()C
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->getWidth()I
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->isValid(CI)Z
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->_type:C
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->_width:I
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->defaultPattern()Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->isPositive()Z
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->required()Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->_defaultPattern:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->_isPositive:Z
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->_required:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;->H:Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;->HM:Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;->HMS:Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;->valueOf(Ljava/lang/String;)Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;->values()[Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$Style;->flag:I
-Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;-><init>()V
-Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;->createInstance(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneFormat;
-Landroid/icu/text/TimeZoneFormat;->ALL_GENERIC_NAME_TYPES:Ljava/util/EnumSet;
-Landroid/icu/text/TimeZoneFormat;->ALL_SIMPLE_NAME_TYPES:Ljava/util/EnumSet;
-Landroid/icu/text/TimeZoneFormat;->ALT_GMT_STRINGS:[Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->appendOffsetDigits(Ljava/lang/StringBuilder;II)V
-Landroid/icu/text/TimeZoneFormat;->ASCII_DIGITS:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->checkAbuttingHoursAndMinutes()V
-Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_DIGITS:[Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_OFFSET_SEP:C
-Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_PATTERN:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->DEFAULT_GMT_ZERO:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->expandOffsetPattern(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->formatExemplarLocation(Landroid/icu/util/TimeZone;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->formatOffsetISO8601(IZZZZ)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->formatOffsetLocalizedGMT(IZ)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->formatSpecific(Landroid/icu/util/TimeZone;Landroid/icu/text/TimeZoneNames$NameType;Landroid/icu/text/TimeZoneNames$NameType;JLandroid/icu/util/Output;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->getTargetRegion()Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->getTimeType(Landroid/icu/text/TimeZoneNames$NameType;)Landroid/icu/text/TimeZoneFormat$TimeType;
-Landroid/icu/text/TimeZoneFormat;->getTimeZoneForOffset(I)Landroid/icu/util/TimeZone;
-Landroid/icu/text/TimeZoneFormat;->getTimeZoneGenericNames()Landroid/icu/impl/TimeZoneGenericNames;
-Landroid/icu/text/TimeZoneFormat;->getTimeZoneID(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->getTZDBTimeZoneNames()Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneFormat;->initGMTOffsetPatterns([Ljava/lang/String;)V
-Landroid/icu/text/TimeZoneFormat;->initGMTPattern(Ljava/lang/String;)V
-Landroid/icu/text/TimeZoneFormat;->ISO8601_UTC:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->ISO_LOCAL_STYLE_FLAG:I
-Landroid/icu/text/TimeZoneFormat;->ISO_Z_STYLE_FLAG:I
-Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET:I
-Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET_HOUR:I
-Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET_MINUTE:I
-Landroid/icu/text/TimeZoneFormat;->MAX_OFFSET_SECOND:I
-Landroid/icu/text/TimeZoneFormat;->MILLIS_PER_HOUR:I
-Landroid/icu/text/TimeZoneFormat;->MILLIS_PER_MINUTE:I
-Landroid/icu/text/TimeZoneFormat;->MILLIS_PER_SECOND:I
-Landroid/icu/text/TimeZoneFormat;->parseAbuttingAsciiOffsetFields(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/TimeZoneFormat$OffsetFields;Landroid/icu/text/TimeZoneFormat$OffsetFields;Z)I
-Landroid/icu/text/TimeZoneFormat;->parseAbuttingOffsetFields(Ljava/lang/String;I[I)I
-Landroid/icu/text/TimeZoneFormat;->parseAsciiOffsetFields(Ljava/lang/String;Ljava/text/ParsePosition;CLandroid/icu/text/TimeZoneFormat$OffsetFields;Landroid/icu/text/TimeZoneFormat$OffsetFields;)I
-Landroid/icu/text/TimeZoneFormat;->parseDefaultOffsetFields(Ljava/lang/String;IC[I)I
-Landroid/icu/text/TimeZoneFormat;->parseExemplarLocation(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->parseOffsetDefaultLocalizedGMT(Ljava/lang/String;I[I)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetFields(Ljava/lang/String;IZ[I)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetFieldsWithPattern(Ljava/lang/String;I[Ljava/lang/Object;Z[I)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetFieldWithLocalizedDigits(Ljava/lang/String;IIIII[I)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetISO8601(Ljava/lang/String;Ljava/text/ParsePosition;ZLandroid/icu/util/Output;)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetLocalizedGMT(Ljava/lang/String;Ljava/text/ParsePosition;ZLandroid/icu/util/Output;)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetLocalizedGMTPattern(Ljava/lang/String;IZ[I)I
-Landroid/icu/text/TimeZoneFormat;->parseOffsetPattern(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
-Landroid/icu/text/TimeZoneFormat;->parseShortZoneID(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->parseSingleLocalizedDigit(Ljava/lang/String;I[I)I
-Landroid/icu/text/TimeZoneFormat;->parseZoneID(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->PARSE_GMT_OFFSET_TYPES:[Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;
-Landroid/icu/text/TimeZoneFormat;->SHORT_ZONE_ID_TRIE:Landroid/icu/impl/TextTrieMap;
-Landroid/icu/text/TimeZoneFormat;->toCodePoints(Ljava/lang/String;)[Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->truncateOffsetPattern(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->TZID_GMT:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->UNKNOWN_LOCATION:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->UNKNOWN_OFFSET:I
-Landroid/icu/text/TimeZoneFormat;->UNKNOWN_SHORT_ZONE_ID:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->UNKNOWN_ZONE_ID:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->unquote(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->ZONE_ID_TRIE:Landroid/icu/impl/TextTrieMap;
-Landroid/icu/text/TimeZoneFormat;->_abuttingOffsetHoursAndMinutes:Z
-Landroid/icu/text/TimeZoneFormat;->_frozen:Z
-Landroid/icu/text/TimeZoneFormat;->_gmtOffsetDigits:[Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_gmtOffsetPatternItems:[[Ljava/lang/Object;
-Landroid/icu/text/TimeZoneFormat;->_gmtOffsetPatterns:[Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_gmtPattern:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_gmtPatternPrefix:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_gmtPatternSuffix:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_gmtZeroFormat:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_gnames:Landroid/icu/impl/TimeZoneGenericNames;
-Landroid/icu/text/TimeZoneFormat;->_locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/TimeZoneFormat;->_parseAllStyles:Z
-Landroid/icu/text/TimeZoneFormat;->_parseTZDBNames:Z
-Landroid/icu/text/TimeZoneFormat;->_region:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat;->_tzdbNames:Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneFormat;->_tzfCache:Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;
-Landroid/icu/text/TimeZoneFormat;->_tznames:Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$Cache;-><init>()V
-Landroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames$FactoryImpl;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;-><init>()V
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;->find(Ljava/lang/CharSequence;ILjava/util/EnumSet;)Ljava/util/Collection;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;->INSTANCE:Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;
-Landroid/icu/text/TimeZoneNames$Factory;-><init>()V
-Landroid/icu/text/TimeZoneNames$Factory;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$MatchInfo;-><init>(Landroid/icu/text/TimeZoneNames$NameType;Ljava/lang/String;Ljava/lang/String;I)V
-Landroid/icu/text/TimeZoneNames$MatchInfo;->matchLength()I
-Landroid/icu/text/TimeZoneNames$MatchInfo;->mzID()Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames$MatchInfo;->nameType()Landroid/icu/text/TimeZoneNames$NameType;
-Landroid/icu/text/TimeZoneNames$MatchInfo;->tzID()Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames$MatchInfo;->_matchLength:I
-Landroid/icu/text/TimeZoneNames$MatchInfo;->_mzID:Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames$MatchInfo;->_nameType:Landroid/icu/text/TimeZoneNames$NameType;
-Landroid/icu/text/TimeZoneNames$MatchInfo;->_tzID:Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames;-><init>()V
-Landroid/icu/text/TimeZoneNames;->DEFAULT_FACTORY_CLASS:Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames;->FACTORY_NAME_PROP:Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames;->find(Ljava/lang/CharSequence;ILjava/util/EnumSet;)Ljava/util/Collection;
-Landroid/icu/text/TimeZoneNames;->getDisplayNames(Ljava/lang/String;[Landroid/icu/text/TimeZoneNames$NameType;J[Ljava/lang/String;I)V
-Landroid/icu/text/TimeZoneNames;->loadAllDisplayNames()V
-Landroid/icu/text/TimeZoneNames;->TZNAMES_CACHE:Landroid/icu/text/TimeZoneNames$Cache;
-Landroid/icu/text/TimeZoneNames;->TZNAMES_FACTORY:Landroid/icu/text/TimeZoneNames$Factory;
-Landroid/icu/text/Transform;->transform(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/text/TransliterationRule;-><init>(Ljava/lang/String;IILjava/lang/String;II[Landroid/icu/text/UnicodeMatcher;ZZLandroid/icu/text/RuleBasedTransliterator$Data;)V
-Landroid/icu/text/TransliterationRule;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/TransliterationRule;->ANCHOR_END:I
-Landroid/icu/text/TransliterationRule;->ANCHOR_START:I
-Landroid/icu/text/TransliterationRule;->anteContext:Landroid/icu/text/StringMatcher;
-Landroid/icu/text/TransliterationRule;->anteContextLength:I
-Landroid/icu/text/TransliterationRule;->data:Landroid/icu/text/RuleBasedTransliterator$Data;
-Landroid/icu/text/TransliterationRule;->flags:B
-Landroid/icu/text/TransliterationRule;->getAnteContextLength()I
-Landroid/icu/text/TransliterationRule;->getIndexValue()I
-Landroid/icu/text/TransliterationRule;->key:Landroid/icu/text/StringMatcher;
-Landroid/icu/text/TransliterationRule;->keyLength:I
-Landroid/icu/text/TransliterationRule;->masks(Landroid/icu/text/TransliterationRule;)Z
-Landroid/icu/text/TransliterationRule;->matchAndReplace(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)I
-Landroid/icu/text/TransliterationRule;->matchesIndexValue(I)Z
-Landroid/icu/text/TransliterationRule;->output:Landroid/icu/text/UnicodeReplacer;
-Landroid/icu/text/TransliterationRule;->pattern:Ljava/lang/String;
-Landroid/icu/text/TransliterationRule;->posAfter(Landroid/icu/text/Replaceable;I)I
-Landroid/icu/text/TransliterationRule;->posBefore(Landroid/icu/text/Replaceable;I)I
-Landroid/icu/text/TransliterationRule;->postContext:Landroid/icu/text/StringMatcher;
-Landroid/icu/text/TransliterationRule;->segments:[Landroid/icu/text/UnicodeMatcher;
-Landroid/icu/text/TransliterationRule;->toRule(Z)Ljava/lang/String;
-Landroid/icu/text/TransliterationRuleSet;-><init>()V
-Landroid/icu/text/TransliterationRuleSet;->addRule(Landroid/icu/text/TransliterationRule;)V
-Landroid/icu/text/TransliterationRuleSet;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/TransliterationRuleSet;->freeze()V
-Landroid/icu/text/TransliterationRuleSet;->getMaximumContextLength()I
-Landroid/icu/text/TransliterationRuleSet;->index:[I
-Landroid/icu/text/TransliterationRuleSet;->maxContextLength:I
-Landroid/icu/text/TransliterationRuleSet;->rules:[Landroid/icu/text/TransliterationRule;
-Landroid/icu/text/TransliterationRuleSet;->ruleVector:Ljava/util/List;
-Landroid/icu/text/TransliterationRuleSet;->toRules(Z)Ljava/lang/String;
-Landroid/icu/text/TransliterationRuleSet;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)Z
-Landroid/icu/text/Transliterator$Factory;->getInstance(Ljava/lang/String;)Landroid/icu/text/Transliterator;
-Landroid/icu/text/Transliterator$Position;-><init>()V
-Landroid/icu/text/Transliterator$Position;-><init>(III)V
-Landroid/icu/text/Transliterator$Position;-><init>(IIII)V
-Landroid/icu/text/Transliterator$Position;-><init>(Landroid/icu/text/Transliterator$Position;)V
-Landroid/icu/text/Transliterator$Position;->contextLimit:I
-Landroid/icu/text/Transliterator$Position;->contextStart:I
-Landroid/icu/text/Transliterator$Position;->limit:I
-Landroid/icu/text/Transliterator$Position;->set(Landroid/icu/text/Transliterator$Position;)V
-Landroid/icu/text/Transliterator$Position;->start:I
-Landroid/icu/text/Transliterator$Position;->validate(I)V
-Landroid/icu/text/Transliterator;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeFilter;)V
-Landroid/icu/text/Transliterator;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/Transliterator;->baseToRules(Z)Ljava/lang/String;
-Landroid/icu/text/Transliterator;->DEBUG:Z
-Landroid/icu/text/Transliterator;->displayNameCache:Ljava/util/Map;
-Landroid/icu/text/Transliterator;->filter:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Transliterator;->filteredTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V
-Landroid/icu/text/Transliterator;->filteredTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;ZZ)V
-Landroid/icu/text/Transliterator;->finishTransliteration(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;)V
-Landroid/icu/text/Transliterator;->FORWARD:I
-Landroid/icu/text/Transliterator;->getAvailableIDs()Ljava/util/Enumeration;
-Landroid/icu/text/Transliterator;->getAvailableSources()Ljava/util/Enumeration;
-Landroid/icu/text/Transliterator;->getAvailableTargets(Ljava/lang/String;)Ljava/util/Enumeration;
-Landroid/icu/text/Transliterator;->getAvailableVariants(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Enumeration;
-Landroid/icu/text/Transliterator;->getBasicInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/Transliterator;
-Landroid/icu/text/Transliterator;->getDisplayName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/Transliterator;->getDisplayName(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/text/Transliterator;->getDisplayName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-Landroid/icu/text/Transliterator;->getElements()[Landroid/icu/text/Transliterator;
-Landroid/icu/text/Transliterator;->getFilter()Landroid/icu/text/UnicodeFilter;
-Landroid/icu/text/Transliterator;->getFilterAsUnicodeSet(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Transliterator;->getID()Ljava/lang/String;
-Landroid/icu/text/Transliterator;->getInverse()Landroid/icu/text/Transliterator;
-Landroid/icu/text/Transliterator;->getMaximumContextLength()I
-Landroid/icu/text/Transliterator;->getSourceSet()Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Transliterator;->getTargetSet()Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Transliterator;->handleGetSourceSet()Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Transliterator;->handleTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V
-Landroid/icu/text/Transliterator;->ID:Ljava/lang/String;
-Landroid/icu/text/Transliterator;->ID_DELIM:C
-Landroid/icu/text/Transliterator;->ID_SEP:C
-Landroid/icu/text/Transliterator;->maximumContextLength:I
-Landroid/icu/text/Transliterator;->RB_DISPLAY_NAME_PATTERN:Ljava/lang/String;
-Landroid/icu/text/Transliterator;->RB_DISPLAY_NAME_PREFIX:Ljava/lang/String;
-Landroid/icu/text/Transliterator;->RB_RULE_BASED_IDS:Ljava/lang/String;
-Landroid/icu/text/Transliterator;->RB_SCRIPT_DISPLAY_NAME_PREFIX:Ljava/lang/String;
-Landroid/icu/text/Transliterator;->registerAlias(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/Transliterator;->registerAny()V
-Landroid/icu/text/Transliterator;->registerClass(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)V
-Landroid/icu/text/Transliterator;->registerFactory(Ljava/lang/String;Landroid/icu/text/Transliterator$Factory;)V
-Landroid/icu/text/Transliterator;->registerInstance(Landroid/icu/text/Transliterator;)V
-Landroid/icu/text/Transliterator;->registerInstance(Landroid/icu/text/Transliterator;Z)V
-Landroid/icu/text/Transliterator;->registerSpecialInverse(Ljava/lang/String;Ljava/lang/String;Z)V
-Landroid/icu/text/Transliterator;->registry:Landroid/icu/text/TransliteratorRegistry;
-Landroid/icu/text/Transliterator;->REVERSE:I
-Landroid/icu/text/Transliterator;->ROOT:Ljava/lang/String;
-Landroid/icu/text/Transliterator;->setFilter(Landroid/icu/text/UnicodeFilter;)V
-Landroid/icu/text/Transliterator;->setID(Ljava/lang/String;)V
-Landroid/icu/text/Transliterator;->setMaximumContextLength(I)V
-Landroid/icu/text/Transliterator;->toRules(Z)Ljava/lang/String;
-Landroid/icu/text/Transliterator;->transform(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;)V
-Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;II)I
-Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;)V
-Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;I)V
-Landroid/icu/text/Transliterator;->unregister(Ljava/lang/String;)V
-Landroid/icu/text/Transliterator;->VARIANT_SEP:C
-Landroid/icu/text/TransliteratorRegistry$AliasEntry;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/TransliteratorRegistry$AliasEntry;->alias:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->compoundFilter:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->dataVector:Ljava/util/List;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->getInstance()Landroid/icu/text/Transliterator;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->ID:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->idBlockVector:Ljava/util/List;
-Landroid/icu/text/TransliteratorRegistry$IDEnumeration;-><init>(Ljava/util/Enumeration;)V
-Landroid/icu/text/TransliteratorRegistry$IDEnumeration;->en:Ljava/util/Enumeration;
-Landroid/icu/text/TransliteratorRegistry$LocaleEntry;-><init>(Ljava/lang/String;I)V
-Landroid/icu/text/TransliteratorRegistry$LocaleEntry;->direction:I
-Landroid/icu/text/TransliteratorRegistry$LocaleEntry;->rule:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$ResourceEntry;-><init>(Ljava/lang/String;I)V
-Landroid/icu/text/TransliteratorRegistry$ResourceEntry;->direction:I
-Landroid/icu/text/TransliteratorRegistry$ResourceEntry;->resource:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/TransliteratorRegistry$Spec;->get()Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;->getBundle()Ljava/util/ResourceBundle;
-Landroid/icu/text/TransliteratorRegistry$Spec;->getTop()Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;->hasFallback()Z
-Landroid/icu/text/TransliteratorRegistry$Spec;->isLocale()Z
-Landroid/icu/text/TransliteratorRegistry$Spec;->isNextLocale:Z
-Landroid/icu/text/TransliteratorRegistry$Spec;->isSpecLocale:Z
-Landroid/icu/text/TransliteratorRegistry$Spec;->next()Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;->nextSpec:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;->res:Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/text/TransliteratorRegistry$Spec;->reset()V
-Landroid/icu/text/TransliteratorRegistry$Spec;->scriptName:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;->setupNext()V
-Landroid/icu/text/TransliteratorRegistry$Spec;->spec:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;->top:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry;-><init>()V
-Landroid/icu/text/TransliteratorRegistry;->ANY:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry;->availableIDs:Ljava/util/List;
-Landroid/icu/text/TransliteratorRegistry;->DEBUG:Z
-Landroid/icu/text/TransliteratorRegistry;->find(Ljava/lang/String;)[Ljava/lang/Object;
-Landroid/icu/text/TransliteratorRegistry;->find(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
-Landroid/icu/text/TransliteratorRegistry;->findInBundle(Landroid/icu/text/TransliteratorRegistry$Spec;Landroid/icu/text/TransliteratorRegistry$Spec;Ljava/lang/String;I)[Ljava/lang/Object;
-Landroid/icu/text/TransliteratorRegistry;->findInDynamicStore(Landroid/icu/text/TransliteratorRegistry$Spec;Landroid/icu/text/TransliteratorRegistry$Spec;Ljava/lang/String;)[Ljava/lang/Object;
-Landroid/icu/text/TransliteratorRegistry;->findInStaticStore(Landroid/icu/text/TransliteratorRegistry$Spec;Landroid/icu/text/TransliteratorRegistry$Spec;Ljava/lang/String;)[Ljava/lang/Object;
-Landroid/icu/text/TransliteratorRegistry;->get(Ljava/lang/String;Ljava/lang/StringBuffer;)Landroid/icu/text/Transliterator;
-Landroid/icu/text/TransliteratorRegistry;->getAvailableIDs()Ljava/util/Enumeration;
-Landroid/icu/text/TransliteratorRegistry;->getAvailableSources()Ljava/util/Enumeration;
-Landroid/icu/text/TransliteratorRegistry;->getAvailableTargets(Ljava/lang/String;)Ljava/util/Enumeration;
-Landroid/icu/text/TransliteratorRegistry;->getAvailableVariants(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Enumeration;
-Landroid/icu/text/TransliteratorRegistry;->instantiateEntry(Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/StringBuffer;)Landroid/icu/text/Transliterator;
-Landroid/icu/text/TransliteratorRegistry;->LOCALE_SEP:C
-Landroid/icu/text/TransliteratorRegistry;->NO_VARIANT:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Landroid/icu/text/Transliterator$Factory;Z)V
-Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Landroid/icu/text/Transliterator;Z)V
-Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Ljava/lang/Class;Z)V
-Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Ljava/lang/String;IZ)V
-Landroid/icu/text/TransliteratorRegistry;->put(Ljava/lang/String;Ljava/lang/String;Z)V
-Landroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/Object;Z)V
-Landroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V
-Landroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V
-Landroid/icu/text/TransliteratorRegistry;->registerSTV(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/TransliteratorRegistry;->registry:Ljava/util/Map;
-Landroid/icu/text/TransliteratorRegistry;->remove(Ljava/lang/String;)V
-Landroid/icu/text/TransliteratorRegistry;->removeSTV(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/text/TransliteratorRegistry;->specDAG:Ljava/util/Map;
-Landroid/icu/text/UFieldPosition;-><init>()V
-Landroid/icu/text/UFieldPosition;-><init>(I)V
-Landroid/icu/text/UFieldPosition;-><init>(Ljava/text/Format$Field;)V
-Landroid/icu/text/UFieldPosition;-><init>(Ljava/text/Format$Field;I)V
-Landroid/icu/text/UFieldPosition;->countVisibleFractionDigits:I
-Landroid/icu/text/UFieldPosition;->fractionDigits:J
-Landroid/icu/text/UFieldPosition;->getCountVisibleFractionDigits()I
-Landroid/icu/text/UFieldPosition;->getFractionDigits()J
-Landroid/icu/text/UFieldPosition;->setFractionDigits(IJ)V
-Landroid/icu/text/UFormat;->actualLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/UFormat;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/text/UFormat;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/UForwardCharacterIterator;->next()I
-Landroid/icu/text/UForwardCharacterIterator;->nextCodePoint()I
-Landroid/icu/text/UnhandledBreakEngine;-><init>()V
-Landroid/icu/text/UnhandledBreakEngine;->fHandled:Ljava/util/concurrent/atomic/AtomicReferenceArray;
-Landroid/icu/text/UnhandledBreakEngine;->findBreaks(Ljava/text/CharacterIterator;IIILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
-Landroid/icu/text/UnhandledBreakEngine;->handleChar(II)V
-Landroid/icu/text/UnhandledBreakEngine;->handles(II)Z
-Landroid/icu/text/UnicodeCompressor;-><init>()V
-Landroid/icu/text/UnicodeCompressor;->compress(Ljava/lang/String;)[B
-Landroid/icu/text/UnicodeCompressor;->compress([CII)[B
-Landroid/icu/text/UnicodeCompressor;->compress([CII[I[BII)I
-Landroid/icu/text/UnicodeCompressor;->fCurrentWindow:I
-Landroid/icu/text/UnicodeCompressor;->findDynamicWindow(I)I
-Landroid/icu/text/UnicodeCompressor;->fIndexCount:[I
-Landroid/icu/text/UnicodeCompressor;->findStaticWindow(I)I
-Landroid/icu/text/UnicodeCompressor;->fMode:I
-Landroid/icu/text/UnicodeCompressor;->fOffsets:[I
-Landroid/icu/text/UnicodeCompressor;->fTimeStamp:I
-Landroid/icu/text/UnicodeCompressor;->fTimeStamps:[I
-Landroid/icu/text/UnicodeCompressor;->getLRDefinedWindow()I
-Landroid/icu/text/UnicodeCompressor;->inDynamicWindow(II)Z
-Landroid/icu/text/UnicodeCompressor;->inStaticWindow(II)Z
-Landroid/icu/text/UnicodeCompressor;->isCompressible(I)Z
-Landroid/icu/text/UnicodeCompressor;->makeIndex(I)I
-Landroid/icu/text/UnicodeCompressor;->reset()V
-Landroid/icu/text/UnicodeCompressor;->sSingleTagTable:[Z
-Landroid/icu/text/UnicodeCompressor;->sUnicodeTagTable:[Z
-Landroid/icu/text/UnicodeDecompressor;-><init>()V
-Landroid/icu/text/UnicodeDecompressor;->BUFSIZE:I
-Landroid/icu/text/UnicodeDecompressor;->decompress([B)Ljava/lang/String;
-Landroid/icu/text/UnicodeDecompressor;->decompress([BII)[C
-Landroid/icu/text/UnicodeDecompressor;->decompress([BII[I[CII)I
-Landroid/icu/text/UnicodeDecompressor;->fBuffer:[B
-Landroid/icu/text/UnicodeDecompressor;->fBufferLength:I
-Landroid/icu/text/UnicodeDecompressor;->fCurrentWindow:I
-Landroid/icu/text/UnicodeDecompressor;->fMode:I
-Landroid/icu/text/UnicodeDecompressor;->fOffsets:[I
-Landroid/icu/text/UnicodeDecompressor;->reset()V
-Landroid/icu/text/UnicodeFilter;-><init>()V
-Landroid/icu/text/UnicodeReplacer;->addReplacementSetTo(Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/UnicodeReplacer;->replace(Landroid/icu/text/Replaceable;II[I)I
-Landroid/icu/text/UnicodeReplacer;->toReplacerPattern(Z)Ljava/lang/String;
-Landroid/icu/text/UnicodeSet$EntryRange;-><init>()V
-Landroid/icu/text/UnicodeSet$EntryRangeIterator;->pos:I
-Landroid/icu/text/UnicodeSet$EntryRangeIterator;->result:Landroid/icu/text/UnicodeSet$EntryRange;
-Landroid/icu/text/UnicodeSet$Filter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;-><init>(I)V
-Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;->mask:I
-Landroid/icu/text/UnicodeSet$IntPropertyFilter;-><init>(II)V
-Landroid/icu/text/UnicodeSet$IntPropertyFilter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$IntPropertyFilter;->prop:I
-Landroid/icu/text/UnicodeSet$IntPropertyFilter;->value:I
-Landroid/icu/text/UnicodeSet$NumericValueFilter;-><init>(D)V
-Landroid/icu/text/UnicodeSet$NumericValueFilter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$NumericValueFilter;->value:D
-Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;-><init>(I)V
-Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;->script:I
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;-><init>(Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->buffer:[C
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->current:I
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->item:I
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->len:I
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->limit:I
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->sourceList:[I
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->sourceStrings:Ljava/util/TreeSet;
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->stringIterator:Ljava/util/Iterator;
-Landroid/icu/text/UnicodeSet$VersionFilter;-><init>(Landroid/icu/util/VersionInfo;)V
-Landroid/icu/text/UnicodeSet$VersionFilter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$VersionFilter;->version:Landroid/icu/util/VersionInfo;
-Landroid/icu/text/UnicodeSet$XSymbolTable;-><init>()V
-Landroid/icu/text/UnicodeSet$XSymbolTable;->applyPropertyAlias(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/UnicodeSet;)Z
-Landroid/icu/text/UnicodeSet;->add([III)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->addAllTo(Ljava/lang/Iterable;Ljava/util/Collection;)Ljava/util/Collection;
-Landroid/icu/text/UnicodeSet;->addAllTo(Ljava/lang/Iterable;[Ljava/lang/Object;)[Ljava/lang/Object;
-Landroid/icu/text/UnicodeSet;->addAllTo([Ljava/lang/String;)[Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->addBridges(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->addCaseMapping(Landroid/icu/text/UnicodeSet;ILjava/lang/StringBuilder;)V
-Landroid/icu/text/UnicodeSet;->add_unchecked(I)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->add_unchecked(II)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->ANY_ID:Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->append(Ljava/lang/Appendable;Ljava/lang/CharSequence;)V
-Landroid/icu/text/UnicodeSet;->appendCodePoint(Ljava/lang/Appendable;I)V
-Landroid/icu/text/UnicodeSet;->appendNewPattern(Ljava/lang/Appendable;ZZ)Ljava/lang/Appendable;
-Landroid/icu/text/UnicodeSet;->applyFilter(Landroid/icu/text/UnicodeSet$Filter;I)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->applyPattern(Landroid/icu/impl/RuleCharacterIterator;Landroid/icu/text/SymbolTable;Ljava/lang/Appendable;I)V
-Landroid/icu/text/UnicodeSet;->applyPattern(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/SymbolTable;I)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->applyPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;Ljava/lang/Appendable;Landroid/icu/text/SymbolTable;)V
-Landroid/icu/text/UnicodeSet;->applyPropertyPattern(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/SymbolTable;)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->ASCII_ID:Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->ASSIGNED:Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->bmpSet:Landroid/icu/impl/BMPSet;
-Landroid/icu/text/UnicodeSet;->buffer:[I
-Landroid/icu/text/UnicodeSet;->checkFrozen()V
-Landroid/icu/text/UnicodeSet;->compare(ILjava/lang/CharSequence;)I
-Landroid/icu/text/UnicodeSet;->compare(Ljava/lang/CharSequence;I)I
-Landroid/icu/text/UnicodeSet;->compare(Ljava/lang/Iterable;Ljava/lang/Iterable;)I
-Landroid/icu/text/UnicodeSet;->compare(Ljava/util/Collection;Ljava/util/Collection;Landroid/icu/text/UnicodeSet$ComparisonStyle;)I
-Landroid/icu/text/UnicodeSet;->compare(Ljava/util/Iterator;Ljava/util/Iterator;)I
-Landroid/icu/text/UnicodeSet;->containsAll(Ljava/lang/String;I)Z
-Landroid/icu/text/UnicodeSet;->ensureBufferCapacity(I)V
-Landroid/icu/text/UnicodeSet;->ensureCapacity(I)V
-Landroid/icu/text/UnicodeSet;->findCodePoint(I)I
-Landroid/icu/text/UnicodeSet;->findIn(Ljava/lang/CharSequence;IZ)I
-Landroid/icu/text/UnicodeSet;->findLastIn(Ljava/lang/CharSequence;IZ)I
-Landroid/icu/text/UnicodeSet;->getDefaultXSymbolTable()Landroid/icu/text/UnicodeSet$XSymbolTable;
-Landroid/icu/text/UnicodeSet;->getInclusions(I)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->getRegexEquivalent()Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->getSingleCodePoint(Ljava/lang/CharSequence;)I
-Landroid/icu/text/UnicodeSet;->getSingleCP(Ljava/lang/CharSequence;)I
-Landroid/icu/text/UnicodeSet;->GROW_EXTRA:I
-Landroid/icu/text/UnicodeSet;->HIGH:I
-Landroid/icu/text/UnicodeSet;->INCLUSIONS:[Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->LAST0_START:I
-Landroid/icu/text/UnicodeSet;->LAST1_RANGE:I
-Landroid/icu/text/UnicodeSet;->LAST2_SET:I
-Landroid/icu/text/UnicodeSet;->len:I
-Landroid/icu/text/UnicodeSet;->list:[I
-Landroid/icu/text/UnicodeSet;->LOW:I
-Landroid/icu/text/UnicodeSet;->matchesAt(Ljava/lang/CharSequence;I)I
-Landroid/icu/text/UnicodeSet;->matchesAt(Ljava/lang/CharSequence;ILjava/lang/CharSequence;)I
-Landroid/icu/text/UnicodeSet;->matchRest(Landroid/icu/text/Replaceable;IILjava/lang/String;)I
-Landroid/icu/text/UnicodeSet;->max(II)I
-Landroid/icu/text/UnicodeSet;->MODE0_NONE:I
-Landroid/icu/text/UnicodeSet;->MODE1_INBRACKET:I
-Landroid/icu/text/UnicodeSet;->MODE2_OUTBRACKET:I
-Landroid/icu/text/UnicodeSet;->mungeCharName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->NO_VERSION:Landroid/icu/util/VersionInfo;
-Landroid/icu/text/UnicodeSet;->pat:Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->range(II)[I
-Landroid/icu/text/UnicodeSet;->rangeList:[I
-Landroid/icu/text/UnicodeSet;->resemblesPattern(Ljava/lang/String;I)Z
-Landroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;I)Z
-Landroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Ljava/lang/String;I)Z
-Landroid/icu/text/UnicodeSet;->retain([III)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->setDefaultXSymbolTable(Landroid/icu/text/UnicodeSet$XSymbolTable;)V
-Landroid/icu/text/UnicodeSet;->SETMODE0_NONE:I
-Landroid/icu/text/UnicodeSet;->SETMODE1_UNICODESET:I
-Landroid/icu/text/UnicodeSet;->SETMODE2_PROPERTYPAT:I
-Landroid/icu/text/UnicodeSet;->SETMODE3_PREPARSED:I
-Landroid/icu/text/UnicodeSet;->spanAndCount(Ljava/lang/CharSequence;ILandroid/icu/text/UnicodeSet$SpanCondition;Landroid/icu/util/OutputInt;)I
-Landroid/icu/text/UnicodeSet;->spanCodePointsAndCount(Ljava/lang/CharSequence;ILandroid/icu/text/UnicodeSet$SpanCondition;Landroid/icu/util/OutputInt;)I
-Landroid/icu/text/UnicodeSet;->START_EXTRA:I
-Landroid/icu/text/UnicodeSet;->strings:Ljava/util/TreeSet;
-Landroid/icu/text/UnicodeSet;->stringSpan:Landroid/icu/impl/UnicodeSetStringSpan;
-Landroid/icu/text/UnicodeSet;->stripFrom(Ljava/lang/CharSequence;Z)Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->syntaxError(Landroid/icu/impl/RuleCharacterIterator;Ljava/lang/String;)V
-Landroid/icu/text/UnicodeSet;->toArray(Landroid/icu/text/UnicodeSet;)[Ljava/lang/String;
-Landroid/icu/text/UnicodeSet;->xor([III)Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSet;->XSYMBOL_TABLE:Landroid/icu/text/UnicodeSet$XSymbolTable;
-Landroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IZ)Ljava/lang/Appendable;
-Landroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;Ljava/lang/String;Z)Ljava/lang/Appendable;
-Landroid/icu/text/UnicodeSet;->_toPattern(Ljava/lang/Appendable;Z)Ljava/lang/Appendable;
-Landroid/icu/text/UnicodeSetIterator;->endElement:I
-Landroid/icu/text/UnicodeSetIterator;->endRange:I
-Landroid/icu/text/UnicodeSetIterator;->getSet()Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSetIterator;->loadRange(I)V
-Landroid/icu/text/UnicodeSetIterator;->nextElement:I
-Landroid/icu/text/UnicodeSetIterator;->range:I
-Landroid/icu/text/UnicodeSetIterator;->set:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSetIterator;->stringIterator:Ljava/util/Iterator;
-Landroid/icu/text/UnicodeSetSpanner;->unicodeSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UTF16$StringComparator;-><init>()V
-Landroid/icu/text/UTF16$StringComparator;-><init>(ZZI)V
-Landroid/icu/text/UTF16$StringComparator;->CODE_POINT_COMPARE_SURROGATE_OFFSET_:I
-Landroid/icu/text/UTF16$StringComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/UTF16$StringComparator;->compareCaseInsensitive(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/UTF16$StringComparator;->compareCaseSensitive(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/UTF16$StringComparator;->FOLD_CASE_DEFAULT:I
-Landroid/icu/text/UTF16$StringComparator;->FOLD_CASE_EXCLUDE_SPECIAL_I:I
-Landroid/icu/text/UTF16$StringComparator;->getCodePointCompare()Z
-Landroid/icu/text/UTF16$StringComparator;->getIgnoreCase()Z
-Landroid/icu/text/UTF16$StringComparator;->getIgnoreCaseOption()I
-Landroid/icu/text/UTF16$StringComparator;->m_codePointCompare_:I
-Landroid/icu/text/UTF16$StringComparator;->m_foldCase_:I
-Landroid/icu/text/UTF16$StringComparator;->m_ignoreCase_:Z
-Landroid/icu/text/UTF16$StringComparator;->setCodePointCompare(Z)V
-Landroid/icu/text/UTF16$StringComparator;->setIgnoreCase(ZI)V
-Landroid/icu/text/UTF16;-><init>()V
-Landroid/icu/text/UTF16;->append(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/UTF16;->append([CII)I
-Landroid/icu/text/UTF16;->appendCodePoint(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/UTF16;->bounds(Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->bounds(Ljava/lang/StringBuffer;I)I
-Landroid/icu/text/UTF16;->bounds([CIII)I
-Landroid/icu/text/UTF16;->charAt(Landroid/icu/text/Replaceable;I)I
-Landroid/icu/text/UTF16;->charAt(Ljava/lang/CharSequence;I)I
-Landroid/icu/text/UTF16;->charAt(Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->charAt(Ljava/lang/StringBuffer;I)I
-Landroid/icu/text/UTF16;->charAt([CIII)I
-Landroid/icu/text/UTF16;->CODEPOINT_MAX_VALUE:I
-Landroid/icu/text/UTF16;->CODEPOINT_MIN_VALUE:I
-Landroid/icu/text/UTF16;->compareCodePoint(ILjava/lang/CharSequence;)I
-Landroid/icu/text/UTF16;->countCodePoint(Ljava/lang/String;)I
-Landroid/icu/text/UTF16;->countCodePoint(Ljava/lang/StringBuffer;)I
-Landroid/icu/text/UTF16;->countCodePoint([CII)I
-Landroid/icu/text/UTF16;->delete(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-Landroid/icu/text/UTF16;->delete([CII)I
-Landroid/icu/text/UTF16;->findCodePointOffset(Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->findCodePointOffset(Ljava/lang/StringBuffer;I)I
-Landroid/icu/text/UTF16;->findCodePointOffset([CIII)I
-Landroid/icu/text/UTF16;->findOffsetFromCodePoint(Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->findOffsetFromCodePoint(Ljava/lang/StringBuffer;I)I
-Landroid/icu/text/UTF16;->findOffsetFromCodePoint([CIII)I
-Landroid/icu/text/UTF16;->getCharCount(I)I
-Landroid/icu/text/UTF16;->getLeadSurrogate(I)C
-Landroid/icu/text/UTF16;->getSingleCodePoint(Ljava/lang/CharSequence;)I
-Landroid/icu/text/UTF16;->getTrailSurrogate(I)C
-Landroid/icu/text/UTF16;->hasMoreCodePointsThan(Ljava/lang/String;I)Z
-Landroid/icu/text/UTF16;->hasMoreCodePointsThan(Ljava/lang/StringBuffer;I)Z
-Landroid/icu/text/UTF16;->hasMoreCodePointsThan([CIII)Z
-Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;II)I
-Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/UTF16;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->insert(Ljava/lang/StringBuffer;II)Ljava/lang/StringBuffer;
-Landroid/icu/text/UTF16;->insert([CIII)I
-Landroid/icu/text/UTF16;->isLeadSurrogate(C)Z
-Landroid/icu/text/UTF16;->isSurrogate(C)Z
-Landroid/icu/text/UTF16;->isTrailSurrogate(C)Z
-Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;II)I
-Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/UTF16;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_BITMASK:I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_BITS:I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_BOUNDARY:I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_MAX_VALUE:I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_MIN_VALUE:I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_OFFSET_:I
-Landroid/icu/text/UTF16;->LEAD_SURROGATE_SHIFT_:I
-Landroid/icu/text/UTF16;->moveCodePointOffset(Ljava/lang/String;II)I
-Landroid/icu/text/UTF16;->moveCodePointOffset(Ljava/lang/StringBuffer;II)I
-Landroid/icu/text/UTF16;->moveCodePointOffset([CIIII)I
-Landroid/icu/text/UTF16;->newString([III)Ljava/lang/String;
-Landroid/icu/text/UTF16;->replace(Ljava/lang/String;II)Ljava/lang/String;
-Landroid/icu/text/UTF16;->replace(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/UTF16;->reverse(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
-Landroid/icu/text/UTF16;->setCharAt(Ljava/lang/StringBuffer;II)V
-Landroid/icu/text/UTF16;->setCharAt([CIII)I
-Landroid/icu/text/UTF16;->SINGLE_CHAR_BOUNDARY:I
-Landroid/icu/text/UTF16;->SUPPLEMENTARY_MIN_VALUE:I
-Landroid/icu/text/UTF16;->SURROGATE_BITMASK:I
-Landroid/icu/text/UTF16;->SURROGATE_BITS:I
-Landroid/icu/text/UTF16;->SURROGATE_MAX_VALUE:I
-Landroid/icu/text/UTF16;->SURROGATE_MIN_VALUE:I
-Landroid/icu/text/UTF16;->toString(I)Ljava/lang/String;
-Landroid/icu/text/UTF16;->TRAIL_SURROGATE_BITMASK:I
-Landroid/icu/text/UTF16;->TRAIL_SURROGATE_BITS:I
-Landroid/icu/text/UTF16;->TRAIL_SURROGATE_BOUNDARY:I
-Landroid/icu/text/UTF16;->TRAIL_SURROGATE_MASK_:I
-Landroid/icu/text/UTF16;->TRAIL_SURROGATE_MAX_VALUE:I
-Landroid/icu/text/UTF16;->TRAIL_SURROGATE_MIN_VALUE:I
-Landroid/icu/text/UTF16;->valueOf(I)Ljava/lang/String;
-Landroid/icu/text/UTF16;->valueOf(Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/text/UTF16;->valueOf(Ljava/lang/StringBuffer;I)Ljava/lang/String;
-Landroid/icu/text/UTF16;->valueOf([CIII)Ljava/lang/String;
-Landroid/icu/text/UTF16;->_charAt(Ljava/lang/CharSequence;IC)I
-Landroid/icu/text/UTF16;->_charAt(Ljava/lang/String;IC)I
-Landroid/icu/util/AnnualTimeZoneRule;-><init>(Ljava/lang/String;IILandroid/icu/util/DateTimeRule;II)V
-Landroid/icu/util/AnnualTimeZoneRule;->dateTimeRule:Landroid/icu/util/DateTimeRule;
-Landroid/icu/util/AnnualTimeZoneRule;->endYear:I
-Landroid/icu/util/AnnualTimeZoneRule;->getEndYear()I
-Landroid/icu/util/AnnualTimeZoneRule;->getFinalStart(II)Ljava/util/Date;
-Landroid/icu/util/AnnualTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
-Landroid/icu/util/AnnualTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/AnnualTimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/AnnualTimeZoneRule;->getRule()Landroid/icu/util/DateTimeRule;
-Landroid/icu/util/AnnualTimeZoneRule;->getStartInYear(III)Ljava/util/Date;
-Landroid/icu/util/AnnualTimeZoneRule;->getStartYear()I
-Landroid/icu/util/AnnualTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
-Landroid/icu/util/AnnualTimeZoneRule;->isTransitionRule()Z
-Landroid/icu/util/AnnualTimeZoneRule;->MAX_YEAR:I
-Landroid/icu/util/AnnualTimeZoneRule;->startYear:I
-Landroid/icu/util/BasicTimeZone;-><init>()V
-Landroid/icu/util/BasicTimeZone;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/BasicTimeZone;->FORMER_LATTER_MASK:I
-Landroid/icu/util/BasicTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/BasicTimeZone;->getOffsetFromLocal(JII[I)V
-Landroid/icu/util/BasicTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/BasicTimeZone;->getSimpleTimeZoneRulesNear(J)[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/BasicTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/BasicTimeZone;->getTimeZoneRules(J)[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/BasicTimeZone;->hasEquivalentTransitions(Landroid/icu/util/TimeZone;JJ)Z
-Landroid/icu/util/BasicTimeZone;->hasEquivalentTransitions(Landroid/icu/util/TimeZone;JJZ)Z
-Landroid/icu/util/BasicTimeZone;->LOCAL_DST:I
-Landroid/icu/util/BasicTimeZone;->LOCAL_FORMER:I
-Landroid/icu/util/BasicTimeZone;->LOCAL_LATTER:I
-Landroid/icu/util/BasicTimeZone;->LOCAL_STD:I
-Landroid/icu/util/BasicTimeZone;->MILLIS_PER_YEAR:J
-Landroid/icu/util/BasicTimeZone;->STD_DST_MASK:I
-Landroid/icu/util/BuddhistCalendar;->BUDDHIST_ERA_START:I
-Landroid/icu/util/BuddhistCalendar;->GREGORIAN_EPOCH:I
-Landroid/icu/util/ByteArrayWrapper;-><init>()V
-Landroid/icu/util/ByteArrayWrapper;-><init>(Ljava/nio/ByteBuffer;)V
-Landroid/icu/util/ByteArrayWrapper;-><init>([BI)V
-Landroid/icu/util/ByteArrayWrapper;->append([BII)Landroid/icu/util/ByteArrayWrapper;
-Landroid/icu/util/ByteArrayWrapper;->bytes:[B
-Landroid/icu/util/ByteArrayWrapper;->compareTo(Landroid/icu/util/ByteArrayWrapper;)I
-Landroid/icu/util/ByteArrayWrapper;->copyBytes([BI[BII)V
-Landroid/icu/util/ByteArrayWrapper;->ensureCapacity(I)Landroid/icu/util/ByteArrayWrapper;
-Landroid/icu/util/ByteArrayWrapper;->releaseBytes()[B
-Landroid/icu/util/ByteArrayWrapper;->set([BII)Landroid/icu/util/ByteArrayWrapper;
-Landroid/icu/util/ByteArrayWrapper;->size:I
-Landroid/icu/util/BytesTrie$Entry;-><init>(I)V
-Landroid/icu/util/BytesTrie$Entry;->append(B)V
-Landroid/icu/util/BytesTrie$Entry;->append([BII)V
-Landroid/icu/util/BytesTrie$Entry;->byteAt(I)B
-Landroid/icu/util/BytesTrie$Entry;->bytes:[B
-Landroid/icu/util/BytesTrie$Entry;->bytesAsByteBuffer()Ljava/nio/ByteBuffer;
-Landroid/icu/util/BytesTrie$Entry;->bytesLength()I
-Landroid/icu/util/BytesTrie$Entry;->copyBytesTo([BI)V
-Landroid/icu/util/BytesTrie$Entry;->ensureCapacity(I)V
-Landroid/icu/util/BytesTrie$Entry;->length:I
-Landroid/icu/util/BytesTrie$Entry;->truncateString(I)V
-Landroid/icu/util/BytesTrie$Entry;->value:I
-Landroid/icu/util/BytesTrie$Iterator;-><init>([BIII)V
-Landroid/icu/util/BytesTrie$Iterator;->branchNext(II)I
-Landroid/icu/util/BytesTrie$Iterator;->bytes_:[B
-Landroid/icu/util/BytesTrie$Iterator;->entry_:Landroid/icu/util/BytesTrie$Entry;
-Landroid/icu/util/BytesTrie$Iterator;->initialPos_:I
-Landroid/icu/util/BytesTrie$Iterator;->initialRemainingMatchLength_:I
-Landroid/icu/util/BytesTrie$Iterator;->maxLength_:I
-Landroid/icu/util/BytesTrie$Iterator;->pos_:I
-Landroid/icu/util/BytesTrie$Iterator;->remainingMatchLength_:I
-Landroid/icu/util/BytesTrie$Iterator;->reset()Landroid/icu/util/BytesTrie$Iterator;
-Landroid/icu/util/BytesTrie$Iterator;->stack_:Ljava/util/ArrayList;
-Landroid/icu/util/BytesTrie$Iterator;->truncateAndStop()Landroid/icu/util/BytesTrie$Entry;
-Landroid/icu/util/BytesTrie$Result;->FINAL_VALUE:Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$Result;->hasNext()Z
-Landroid/icu/util/BytesTrie$Result;->hasValue()Z
-Landroid/icu/util/BytesTrie$Result;->INTERMEDIATE_VALUE:Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$Result;->matches()Z
-Landroid/icu/util/BytesTrie$Result;->NO_MATCH:Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$Result;->NO_VALUE:Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$Result;->valueOf(Ljava/lang/String;)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$Result;->values()[Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$State;-><init>()V
-Landroid/icu/util/BytesTrie$State;->bytes:[B
-Landroid/icu/util/BytesTrie$State;->pos:I
-Landroid/icu/util/BytesTrie$State;->remainingMatchLength:I
-Landroid/icu/util/BytesTrie$State;->root:I
-Landroid/icu/util/BytesTrie;-><init>([BI)V
-Landroid/icu/util/BytesTrie;->append(Ljava/lang/Appendable;I)V
-Landroid/icu/util/BytesTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie;->bytes_:[B
-Landroid/icu/util/BytesTrie;->current()Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie;->findUniqueValue([BIJ)J
-Landroid/icu/util/BytesTrie;->findUniqueValueFromBranch([BIIJ)J
-Landroid/icu/util/BytesTrie;->first(I)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie;->getNextBranchBytes([BIILjava/lang/Appendable;)V
-Landroid/icu/util/BytesTrie;->getNextBytes(Ljava/lang/Appendable;)I
-Landroid/icu/util/BytesTrie;->getUniqueValue()J
-Landroid/icu/util/BytesTrie;->getValue()I
-Landroid/icu/util/BytesTrie;->iterator(I)Landroid/icu/util/BytesTrie$Iterator;
-Landroid/icu/util/BytesTrie;->iterator([BII)Landroid/icu/util/BytesTrie$Iterator;
-Landroid/icu/util/BytesTrie;->jumpByDelta([BI)I
-Landroid/icu/util/BytesTrie;->kFiveByteDeltaLead:I
-Landroid/icu/util/BytesTrie;->kFiveByteValueLead:I
-Landroid/icu/util/BytesTrie;->kFourByteDeltaLead:I
-Landroid/icu/util/BytesTrie;->kFourByteValueLead:I
-Landroid/icu/util/BytesTrie;->kMaxBranchLinearSubNodeLength:I
-Landroid/icu/util/BytesTrie;->kMaxLinearMatchLength:I
-Landroid/icu/util/BytesTrie;->kMaxOneByteDelta:I
-Landroid/icu/util/BytesTrie;->kMaxOneByteValue:I
-Landroid/icu/util/BytesTrie;->kMaxThreeByteDelta:I
-Landroid/icu/util/BytesTrie;->kMaxThreeByteValue:I
-Landroid/icu/util/BytesTrie;->kMaxTwoByteDelta:I
-Landroid/icu/util/BytesTrie;->kMaxTwoByteValue:I
-Landroid/icu/util/BytesTrie;->kMinLinearMatch:I
-Landroid/icu/util/BytesTrie;->kMinOneByteValueLead:I
-Landroid/icu/util/BytesTrie;->kMinThreeByteDeltaLead:I
-Landroid/icu/util/BytesTrie;->kMinThreeByteValueLead:I
-Landroid/icu/util/BytesTrie;->kMinTwoByteDeltaLead:I
-Landroid/icu/util/BytesTrie;->kMinTwoByteValueLead:I
-Landroid/icu/util/BytesTrie;->kMinValueLead:I
-Landroid/icu/util/BytesTrie;->kValueIsFinal:I
-Landroid/icu/util/BytesTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie;->next([BII)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie;->pos_:I
-Landroid/icu/util/BytesTrie;->readValue([BII)I
-Landroid/icu/util/BytesTrie;->remainingMatchLength_:I
-Landroid/icu/util/BytesTrie;->reset()Landroid/icu/util/BytesTrie;
-Landroid/icu/util/BytesTrie;->resetToState(Landroid/icu/util/BytesTrie$State;)Landroid/icu/util/BytesTrie;
-Landroid/icu/util/BytesTrie;->root_:I
-Landroid/icu/util/BytesTrie;->saveState(Landroid/icu/util/BytesTrie$State;)Landroid/icu/util/BytesTrie;
-Landroid/icu/util/BytesTrie;->skipDelta([BI)I
-Landroid/icu/util/BytesTrie;->skipValue(II)I
-Landroid/icu/util/BytesTrie;->skipValue([BI)I
-Landroid/icu/util/BytesTrie;->stop()V
-Landroid/icu/util/BytesTrie;->valueResults_:[Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;-><init>([BI)V
-Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;->len:I
-Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;->s:[B
-Landroid/icu/util/BytesTrieBuilder;-><init>()V
-Landroid/icu/util/BytesTrieBuilder;->add([BII)Landroid/icu/util/BytesTrieBuilder;
-Landroid/icu/util/BytesTrieBuilder;->build(Landroid/icu/util/StringTrieBuilder$Option;)Landroid/icu/util/BytesTrie;
-Landroid/icu/util/BytesTrieBuilder;->buildByteBuffer(Landroid/icu/util/StringTrieBuilder$Option;)Ljava/nio/ByteBuffer;
-Landroid/icu/util/BytesTrieBuilder;->buildBytes(Landroid/icu/util/StringTrieBuilder$Option;)V
-Landroid/icu/util/BytesTrieBuilder;->bytes:[B
-Landroid/icu/util/BytesTrieBuilder;->bytesLength:I
-Landroid/icu/util/BytesTrieBuilder;->clear()Landroid/icu/util/BytesTrieBuilder;
-Landroid/icu/util/BytesTrieBuilder;->ensureCapacity(I)V
-Landroid/icu/util/BytesTrieBuilder;->getMaxBranchLinearSubNodeLength()I
-Landroid/icu/util/BytesTrieBuilder;->getMaxLinearMatchLength()I
-Landroid/icu/util/BytesTrieBuilder;->getMinLinearMatch()I
-Landroid/icu/util/BytesTrieBuilder;->intBytes:[B
-Landroid/icu/util/BytesTrieBuilder;->matchNodesCanHaveValues()Z
-Landroid/icu/util/BytesTrieBuilder;->write(I)I
-Landroid/icu/util/BytesTrieBuilder;->write(II)I
-Landroid/icu/util/BytesTrieBuilder;->write([BI)I
-Landroid/icu/util/BytesTrieBuilder;->writeDeltaTo(I)I
-Landroid/icu/util/BytesTrieBuilder;->writeValueAndFinal(IZ)I
-Landroid/icu/util/BytesTrieBuilder;->writeValueAndType(ZII)I
-Landroid/icu/util/Calendar$CalType;->BUDDHIST:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->CHINESE:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->COPTIC:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->DANGI:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ETHIOPIC:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ETHIOPIC_AMETE_ALEM:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->GREGORIAN:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->HEBREW:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->id:Ljava/lang/String;
-Landroid/icu/util/Calendar$CalType;->INDIAN:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ISLAMIC:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ISLAMIC_CIVIL:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ISLAMIC_RGSA:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ISLAMIC_TBLA:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ISLAMIC_UMALQURA:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ISO8601:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->JAPANESE:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->PERSIAN:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->ROC:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->UNKNOWN:Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->valueOf(Ljava/lang/String;)Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;->values()[Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$FormatConfiguration;-><init>()V
-Landroid/icu/util/Calendar$FormatConfiguration;->cal:Landroid/icu/util/Calendar;
-Landroid/icu/util/Calendar$FormatConfiguration;->formatData:Landroid/icu/text/DateFormatSymbols;
-Landroid/icu/util/Calendar$FormatConfiguration;->getCalendar()Landroid/icu/util/Calendar;
-Landroid/icu/util/Calendar$FormatConfiguration;->getDateFormatSymbols()Landroid/icu/text/DateFormatSymbols;
-Landroid/icu/util/Calendar$FormatConfiguration;->getLocale()Landroid/icu/util/ULocale;
-Landroid/icu/util/Calendar$FormatConfiguration;->getOverrideString()Ljava/lang/String;
-Landroid/icu/util/Calendar$FormatConfiguration;->getPatternString()Ljava/lang/String;
-Landroid/icu/util/Calendar$FormatConfiguration;->loc:Landroid/icu/util/ULocale;
-Landroid/icu/util/Calendar$FormatConfiguration;->override:Ljava/lang/String;
-Landroid/icu/util/Calendar$FormatConfiguration;->pattern:Ljava/lang/String;
-Landroid/icu/util/Calendar$PatternData;-><init>([Ljava/lang/String;[Ljava/lang/String;)V
-Landroid/icu/util/Calendar$PatternData;->getDateTimePattern(I)Ljava/lang/String;
-Landroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$PatternData;
-Landroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
-Landroid/icu/util/Calendar$PatternData;->overrides:[Ljava/lang/String;
-Landroid/icu/util/Calendar$PatternData;->patterns:[Ljava/lang/String;
-Landroid/icu/util/Calendar$WeekDataCache;-><init>()V
-Landroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
-Landroid/icu/util/Calendar;->actualLocale:Landroid/icu/util/ULocale;
-Landroid/icu/util/Calendar;->areAllFieldsSet:Z
-Landroid/icu/util/Calendar;->areFieldsSet:Z
-Landroid/icu/util/Calendar;->areFieldsVirtuallySet:Z
-Landroid/icu/util/Calendar;->compare(Ljava/lang/Object;)J
-Landroid/icu/util/Calendar;->computeGregorianAndDOWFields(I)V
-Landroid/icu/util/Calendar;->computeMillisInDayLong()J
-Landroid/icu/util/Calendar;->computeWeekFields()V
-Landroid/icu/util/Calendar;->computeZoneOffset(JJ)I
-Landroid/icu/util/Calendar;->createInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
-Landroid/icu/util/Calendar;->DATE_PRECEDENCE:[[[I
-Landroid/icu/util/Calendar;->DEFAULT_PATTERNS:[Ljava/lang/String;
-Landroid/icu/util/Calendar;->DOW_PRECEDENCE:[[[I
-Landroid/icu/util/Calendar;->expandOverride(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/Calendar;->fields:[I
-Landroid/icu/util/Calendar;->FIELD_DIFF_MAX_INT:I
-Landroid/icu/util/Calendar;->FIELD_NAME:[Ljava/lang/String;
-Landroid/icu/util/Calendar;->findPreviousZoneTransitionTime(Landroid/icu/util/TimeZone;IJJ)Ljava/lang/Long;
-Landroid/icu/util/Calendar;->FIND_ZONE_TRANSITION_TIME_UNITS:[I
-Landroid/icu/util/Calendar;->firstDayOfWeek:I
-Landroid/icu/util/Calendar;->firstIslamicStartYearFromGrego(I)I
-Landroid/icu/util/Calendar;->formatHelper(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;II)Landroid/icu/text/DateFormat;
-Landroid/icu/util/Calendar;->getActualHelper(III)I
-Landroid/icu/util/Calendar;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/util/Calendar;->getCalendarTypeForLocale(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar;->getDateTimeFormatString(Landroid/icu/util/ULocale;Ljava/lang/String;II)Ljava/lang/String;
-Landroid/icu/util/Calendar;->getDateTimePattern(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;I)Ljava/lang/String;
-Landroid/icu/util/Calendar;->getDayOfWeekType(I)I
-Landroid/icu/util/Calendar;->getDefaultDayInMonth(II)I
-Landroid/icu/util/Calendar;->getDefaultMonthInYear(I)I
-Landroid/icu/util/Calendar;->getImmediatePreviousZoneTransition(J)Ljava/lang/Long;
-Landroid/icu/util/Calendar;->getInstanceInternal(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
-Landroid/icu/util/Calendar;->getPatternData(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
-Landroid/icu/util/Calendar;->getPreviousZoneTransitionTime(Landroid/icu/util/TimeZone;JJ)Ljava/lang/Long;
-Landroid/icu/util/Calendar;->getRegionForCalendar(Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/Calendar;->getRelatedYear()I
-Landroid/icu/util/Calendar;->getWeekDataForRegionInternal(Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
-Landroid/icu/util/Calendar;->getWeekendTransition(I)I
-Landroid/icu/util/Calendar;->gregorianDayOfMonth:I
-Landroid/icu/util/Calendar;->gregorianDayOfYear:I
-Landroid/icu/util/Calendar;->gregorianMonth:I
-Landroid/icu/util/Calendar;->gregorianYear:I
-Landroid/icu/util/Calendar;->GREGORIAN_MONTH_COUNT:[[I
-Landroid/icu/util/Calendar;->gregoYearFromIslamicStart(I)I
-Landroid/icu/util/Calendar;->handleGetDateFormat(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-Landroid/icu/util/Calendar;->haveDefaultCentury()Z
-Landroid/icu/util/Calendar;->initInternal()V
-Landroid/icu/util/Calendar;->internalSetMask:I
-Landroid/icu/util/Calendar;->isTimeSet:Z
-Landroid/icu/util/Calendar;->lenient:Z
-Landroid/icu/util/Calendar;->LIMITS:[[I
-Landroid/icu/util/Calendar;->MAX_HOURS:I
-Landroid/icu/util/Calendar;->mergeOverrideStrings(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/Calendar;->minimalDaysInFirstWeek:I
-Landroid/icu/util/Calendar;->nextStamp:I
-Landroid/icu/util/Calendar;->PATTERN_CACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/util/Calendar;->QUOTE:C
-Landroid/icu/util/Calendar;->recalculateStamp()V
-Landroid/icu/util/Calendar;->repeatedWallTime:I
-Landroid/icu/util/Calendar;->setCalendarLocale(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/Calendar;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-Landroid/icu/util/Calendar;->setRelatedYear(I)V
-Landroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V
-Landroid/icu/util/Calendar;->skippedWallTime:I
-Landroid/icu/util/Calendar;->stamp:[I
-Landroid/icu/util/Calendar;->STAMP_MAX:I
-Landroid/icu/util/Calendar;->time:J
-Landroid/icu/util/Calendar;->updateTime()V
-Landroid/icu/util/Calendar;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/util/Calendar;->WEEKDAY:I
-Landroid/icu/util/Calendar;->WEEKEND:I
-Landroid/icu/util/Calendar;->weekendCease:I
-Landroid/icu/util/Calendar;->weekendCeaseMillis:I
-Landroid/icu/util/Calendar;->weekendOnset:I
-Landroid/icu/util/Calendar;->weekendOnsetMillis:I
-Landroid/icu/util/Calendar;->WEEKEND_CEASE:I
-Landroid/icu/util/Calendar;->WEEKEND_ONSET:I
-Landroid/icu/util/Calendar;->WEEK_DATA_CACHE:Landroid/icu/util/Calendar$WeekDataCache;
-Landroid/icu/util/Calendar;->zone:Landroid/icu/util/TimeZone;
-Landroid/icu/util/CaseInsensitiveString;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/CaseInsensitiveString;->foldCase(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/CaseInsensitiveString;->folded:Ljava/lang/String;
-Landroid/icu/util/CaseInsensitiveString;->getFolded()V
-Landroid/icu/util/CaseInsensitiveString;->getString()Ljava/lang/String;
-Landroid/icu/util/CaseInsensitiveString;->hash:I
-Landroid/icu/util/CaseInsensitiveString;->string:Ljava/lang/String;
-Landroid/icu/util/CECalendar;-><init>()V
-Landroid/icu/util/CECalendar;-><init>(III)V
-Landroid/icu/util/CECalendar;-><init>(IIIIII)V
-Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/TimeZone;)V
-Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
-Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V
-Landroid/icu/util/CECalendar;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/CECalendar;-><init>(Ljava/util/Date;)V
-Landroid/icu/util/CECalendar;-><init>(Ljava/util/Locale;)V
-Landroid/icu/util/CECalendar;->ceToJD(JIII)I
-Landroid/icu/util/CECalendar;->getJDEpochOffset()I
-Landroid/icu/util/CECalendar;->jdToCE(II[I)V
-Landroid/icu/util/CECalendar;->LIMITS:[[I
-Landroid/icu/util/CharsTrie$Entry;-><init>()V
-Landroid/icu/util/CharsTrie$Entry;->chars:Ljava/lang/CharSequence;
-Landroid/icu/util/CharsTrie$Entry;->value:I
-Landroid/icu/util/CharsTrie$Iterator;-><init>(Ljava/lang/CharSequence;III)V
-Landroid/icu/util/CharsTrie$Iterator;->branchNext(II)I
-Landroid/icu/util/CharsTrie$Iterator;->chars_:Ljava/lang/CharSequence;
-Landroid/icu/util/CharsTrie$Iterator;->entry_:Landroid/icu/util/CharsTrie$Entry;
-Landroid/icu/util/CharsTrie$Iterator;->initialPos_:I
-Landroid/icu/util/CharsTrie$Iterator;->initialRemainingMatchLength_:I
-Landroid/icu/util/CharsTrie$Iterator;->maxLength_:I
-Landroid/icu/util/CharsTrie$Iterator;->pos_:I
-Landroid/icu/util/CharsTrie$Iterator;->remainingMatchLength_:I
-Landroid/icu/util/CharsTrie$Iterator;->reset()Landroid/icu/util/CharsTrie$Iterator;
-Landroid/icu/util/CharsTrie$Iterator;->skipValue_:Z
-Landroid/icu/util/CharsTrie$Iterator;->stack_:Ljava/util/ArrayList;
-Landroid/icu/util/CharsTrie$Iterator;->str_:Ljava/lang/StringBuilder;
-Landroid/icu/util/CharsTrie$Iterator;->truncateAndStop()Landroid/icu/util/CharsTrie$Entry;
-Landroid/icu/util/CharsTrie$State;-><init>()V
-Landroid/icu/util/CharsTrie$State;->chars:Ljava/lang/CharSequence;
-Landroid/icu/util/CharsTrie$State;->pos:I
-Landroid/icu/util/CharsTrie$State;->remainingMatchLength:I
-Landroid/icu/util/CharsTrie$State;->root:I
-Landroid/icu/util/CharsTrie;-><init>(Ljava/lang/CharSequence;I)V
-Landroid/icu/util/CharsTrie;->append(Ljava/lang/Appendable;I)V
-Landroid/icu/util/CharsTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->chars_:Ljava/lang/CharSequence;
-Landroid/icu/util/CharsTrie;->current()Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->findUniqueValue(Ljava/lang/CharSequence;IJ)J
-Landroid/icu/util/CharsTrie;->findUniqueValueFromBranch(Ljava/lang/CharSequence;IIJ)J
-Landroid/icu/util/CharsTrie;->first(I)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->firstForCodePoint(I)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->getNextBranchChars(Ljava/lang/CharSequence;IILjava/lang/Appendable;)V
-Landroid/icu/util/CharsTrie;->getNextChars(Ljava/lang/Appendable;)I
-Landroid/icu/util/CharsTrie;->getUniqueValue()J
-Landroid/icu/util/CharsTrie;->getValue()I
-Landroid/icu/util/CharsTrie;->iterator(I)Landroid/icu/util/CharsTrie$Iterator;
-Landroid/icu/util/CharsTrie;->iterator(Ljava/lang/CharSequence;II)Landroid/icu/util/CharsTrie$Iterator;
-Landroid/icu/util/CharsTrie;->jumpByDelta(Ljava/lang/CharSequence;I)I
-Landroid/icu/util/CharsTrie;->kMaxBranchLinearSubNodeLength:I
-Landroid/icu/util/CharsTrie;->kMaxLinearMatchLength:I
-Landroid/icu/util/CharsTrie;->kMaxOneUnitDelta:I
-Landroid/icu/util/CharsTrie;->kMaxOneUnitNodeValue:I
-Landroid/icu/util/CharsTrie;->kMaxOneUnitValue:I
-Landroid/icu/util/CharsTrie;->kMaxTwoUnitDelta:I
-Landroid/icu/util/CharsTrie;->kMaxTwoUnitNodeValue:I
-Landroid/icu/util/CharsTrie;->kMaxTwoUnitValue:I
-Landroid/icu/util/CharsTrie;->kMinLinearMatch:I
-Landroid/icu/util/CharsTrie;->kMinTwoUnitDeltaLead:I
-Landroid/icu/util/CharsTrie;->kMinTwoUnitNodeValueLead:I
-Landroid/icu/util/CharsTrie;->kMinTwoUnitValueLead:I
-Landroid/icu/util/CharsTrie;->kMinValueLead:I
-Landroid/icu/util/CharsTrie;->kNodeTypeMask:I
-Landroid/icu/util/CharsTrie;->kThreeUnitDeltaLead:I
-Landroid/icu/util/CharsTrie;->kThreeUnitNodeValueLead:I
-Landroid/icu/util/CharsTrie;->kThreeUnitValueLead:I
-Landroid/icu/util/CharsTrie;->kValueIsFinal:I
-Landroid/icu/util/CharsTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->next(Ljava/lang/CharSequence;II)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->nextForCodePoint(I)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrie;->pos_:I
-Landroid/icu/util/CharsTrie;->readNodeValue(Ljava/lang/CharSequence;II)I
-Landroid/icu/util/CharsTrie;->readValue(Ljava/lang/CharSequence;II)I
-Landroid/icu/util/CharsTrie;->remainingMatchLength_:I
-Landroid/icu/util/CharsTrie;->reset()Landroid/icu/util/CharsTrie;
-Landroid/icu/util/CharsTrie;->resetToState(Landroid/icu/util/CharsTrie$State;)Landroid/icu/util/CharsTrie;
-Landroid/icu/util/CharsTrie;->root_:I
-Landroid/icu/util/CharsTrie;->saveState(Landroid/icu/util/CharsTrie$State;)Landroid/icu/util/CharsTrie;
-Landroid/icu/util/CharsTrie;->skipDelta(Ljava/lang/CharSequence;I)I
-Landroid/icu/util/CharsTrie;->skipNodeValue(II)I
-Landroid/icu/util/CharsTrie;->skipValue(II)I
-Landroid/icu/util/CharsTrie;->skipValue(Ljava/lang/CharSequence;I)I
-Landroid/icu/util/CharsTrie;->stop()V
-Landroid/icu/util/CharsTrie;->valueResults_:[Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrieBuilder;-><init>()V
-Landroid/icu/util/CharsTrieBuilder;->add(Ljava/lang/CharSequence;I)Landroid/icu/util/CharsTrieBuilder;
-Landroid/icu/util/CharsTrieBuilder;->build(Landroid/icu/util/StringTrieBuilder$Option;)Landroid/icu/util/CharsTrie;
-Landroid/icu/util/CharsTrieBuilder;->buildChars(Landroid/icu/util/StringTrieBuilder$Option;)V
-Landroid/icu/util/CharsTrieBuilder;->buildCharSequence(Landroid/icu/util/StringTrieBuilder$Option;)Ljava/lang/CharSequence;
-Landroid/icu/util/CharsTrieBuilder;->chars:[C
-Landroid/icu/util/CharsTrieBuilder;->charsLength:I
-Landroid/icu/util/CharsTrieBuilder;->clear()Landroid/icu/util/CharsTrieBuilder;
-Landroid/icu/util/CharsTrieBuilder;->ensureCapacity(I)V
-Landroid/icu/util/CharsTrieBuilder;->getMaxBranchLinearSubNodeLength()I
-Landroid/icu/util/CharsTrieBuilder;->getMaxLinearMatchLength()I
-Landroid/icu/util/CharsTrieBuilder;->getMinLinearMatch()I
-Landroid/icu/util/CharsTrieBuilder;->intUnits:[C
-Landroid/icu/util/CharsTrieBuilder;->matchNodesCanHaveValues()Z
-Landroid/icu/util/CharsTrieBuilder;->write(I)I
-Landroid/icu/util/CharsTrieBuilder;->write(II)I
-Landroid/icu/util/CharsTrieBuilder;->write([CI)I
-Landroid/icu/util/CharsTrieBuilder;->writeDeltaTo(I)I
-Landroid/icu/util/CharsTrieBuilder;->writeValueAndFinal(IZ)I
-Landroid/icu/util/CharsTrieBuilder;->writeValueAndType(ZII)I
-Landroid/icu/util/ChineseCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;ILandroid/icu/util/TimeZone;)V
-Landroid/icu/util/ChineseCalendar;->astro:Landroid/icu/impl/CalendarAstronomer;
-Landroid/icu/util/ChineseCalendar;->CHINA_ZONE:Landroid/icu/util/TimeZone;
-Landroid/icu/util/ChineseCalendar;->CHINESE_DATE_PRECEDENCE:[[[I
-Landroid/icu/util/ChineseCalendar;->CHINESE_EPOCH_YEAR:I
-Landroid/icu/util/ChineseCalendar;->computeChineseFields(IIIZ)V
-Landroid/icu/util/ChineseCalendar;->daysToMillis(I)J
-Landroid/icu/util/ChineseCalendar;->epochYear:I
-Landroid/icu/util/ChineseCalendar;->hasNoMajorSolarTerm(I)Z
-Landroid/icu/util/ChineseCalendar;->haveDefaultCentury()Z
-Landroid/icu/util/ChineseCalendar;->isLeapMonthBetween(II)Z
-Landroid/icu/util/ChineseCalendar;->isLeapYear:Z
-Landroid/icu/util/ChineseCalendar;->LIMITS:[[I
-Landroid/icu/util/ChineseCalendar;->majorSolarTerm(I)I
-Landroid/icu/util/ChineseCalendar;->millisToDays(J)I
-Landroid/icu/util/ChineseCalendar;->newMoonNear(IZ)I
-Landroid/icu/util/ChineseCalendar;->newYear(I)I
-Landroid/icu/util/ChineseCalendar;->newYearCache:Landroid/icu/impl/CalendarCache;
-Landroid/icu/util/ChineseCalendar;->offsetMonth(III)V
-Landroid/icu/util/ChineseCalendar;->synodicMonthsBetween(II)I
-Landroid/icu/util/ChineseCalendar;->SYNODIC_GAP:I
-Landroid/icu/util/ChineseCalendar;->winterSolstice(I)I
-Landroid/icu/util/ChineseCalendar;->winterSolsticeCache:Landroid/icu/impl/CalendarCache;
-Landroid/icu/util/ChineseCalendar;->zoneAstro:Landroid/icu/util/TimeZone;
-Landroid/icu/util/CompactByteArray;-><init>()V
-Landroid/icu/util/CompactByteArray;-><init>(B)V
-Landroid/icu/util/CompactByteArray;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/CompactByteArray;-><init>([C[B)V
-Landroid/icu/util/CompactByteArray;->arrayRegionMatches([BI[BII)Z
-Landroid/icu/util/CompactByteArray;->BLOCKCOUNT:I
-Landroid/icu/util/CompactByteArray;->BLOCKMASK:I
-Landroid/icu/util/CompactByteArray;->BLOCKSHIFT:I
-Landroid/icu/util/CompactByteArray;->blockTouched(I)Z
-Landroid/icu/util/CompactByteArray;->compact()V
-Landroid/icu/util/CompactByteArray;->compact(Z)V
-Landroid/icu/util/CompactByteArray;->defaultValue:B
-Landroid/icu/util/CompactByteArray;->elementAt(C)B
-Landroid/icu/util/CompactByteArray;->expand()V
-Landroid/icu/util/CompactByteArray;->getIndexArray()[C
-Landroid/icu/util/CompactByteArray;->getValueArray()[B
-Landroid/icu/util/CompactByteArray;->hashes:[I
-Landroid/icu/util/CompactByteArray;->INDEXCOUNT:I
-Landroid/icu/util/CompactByteArray;->INDEXSHIFT:I
-Landroid/icu/util/CompactByteArray;->indices:[C
-Landroid/icu/util/CompactByteArray;->isCompact:Z
-Landroid/icu/util/CompactByteArray;->setElementAt(CB)V
-Landroid/icu/util/CompactByteArray;->setElementAt(CCB)V
-Landroid/icu/util/CompactByteArray;->touchBlock(II)V
-Landroid/icu/util/CompactByteArray;->UNICODECOUNT:I
-Landroid/icu/util/CompactByteArray;->values:[B
-Landroid/icu/util/CompactCharArray;-><init>()V
-Landroid/icu/util/CompactCharArray;-><init>(C)V
-Landroid/icu/util/CompactCharArray;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/CompactCharArray;-><init>([C[C)V
-Landroid/icu/util/CompactCharArray;->arrayRegionMatches([CI[CII)Z
-Landroid/icu/util/CompactCharArray;->BLOCKCOUNT:I
-Landroid/icu/util/CompactCharArray;->BLOCKMASK:I
-Landroid/icu/util/CompactCharArray;->BLOCKSHIFT:I
-Landroid/icu/util/CompactCharArray;->blockTouched(I)Z
-Landroid/icu/util/CompactCharArray;->compact()V
-Landroid/icu/util/CompactCharArray;->compact(Z)V
-Landroid/icu/util/CompactCharArray;->defaultValue:C
-Landroid/icu/util/CompactCharArray;->elementAt(C)C
-Landroid/icu/util/CompactCharArray;->expand()V
-Landroid/icu/util/CompactCharArray;->FindOverlappingPosition(I[CI)I
-Landroid/icu/util/CompactCharArray;->getIndexArray()[C
-Landroid/icu/util/CompactCharArray;->getValueArray()[C
-Landroid/icu/util/CompactCharArray;->hashes:[I
-Landroid/icu/util/CompactCharArray;->INDEXCOUNT:I
-Landroid/icu/util/CompactCharArray;->INDEXSHIFT:I
-Landroid/icu/util/CompactCharArray;->indices:[C
-Landroid/icu/util/CompactCharArray;->isCompact:Z
-Landroid/icu/util/CompactCharArray;->setElementAt(CC)V
-Landroid/icu/util/CompactCharArray;->setElementAt(CCC)V
-Landroid/icu/util/CompactCharArray;->touchBlock(II)V
-Landroid/icu/util/CompactCharArray;->UNICODECOUNT:I
-Landroid/icu/util/CompactCharArray;->values:[C
-Landroid/icu/util/CopticCalendar;->BCE:I
-Landroid/icu/util/CopticCalendar;->CE:I
-Landroid/icu/util/CopticCalendar;->copticToJD(JII)I
-Landroid/icu/util/CopticCalendar;->getJDEpochOffset()I
-Landroid/icu/util/CopticCalendar;->JD_EPOCH_OFFSET:I
-Landroid/icu/util/Currency$CurrencyNameResultHandler;-><init>()V
-Landroid/icu/util/Currency$CurrencyNameResultHandler;->bestCurrencyISOCode:Ljava/lang/String;
-Landroid/icu/util/Currency$CurrencyNameResultHandler;->bestMatchLength:I
-Landroid/icu/util/Currency$CurrencyNameResultHandler;->getBestCurrencyISOCode()Ljava/lang/String;
-Landroid/icu/util/Currency$CurrencyNameResultHandler;->getBestMatchLength()I
-Landroid/icu/util/Currency$CurrencyNameResultHandler;->handlePrefixMatch(ILjava/util/Iterator;)Z
-Landroid/icu/util/Currency$CurrencyStringInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/Currency$CurrencyStringInfo;->currencyString:Ljava/lang/String;
-Landroid/icu/util/Currency$CurrencyStringInfo;->getCurrencyString()Ljava/lang/String;
-Landroid/icu/util/Currency$CurrencyStringInfo;->getISOCode()Ljava/lang/String;
-Landroid/icu/util/Currency$CurrencyStringInfo;->isoCode:Ljava/lang/String;
-Landroid/icu/util/Currency$EquivalenceRelation;-><init>()V
-Landroid/icu/util/Currency$EquivalenceRelation;->data:Ljava/util/Map;
-Landroid/icu/util/Currency$EquivalenceRelation;->get(Ljava/lang/Object;)Ljava/util/Set;
-Landroid/icu/util/Currency$ServiceShim;-><init>()V
-Landroid/icu/util/Currency$ServiceShim;->createInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
-Landroid/icu/util/Currency$ServiceShim;->getAvailableLocales()[Ljava/util/Locale;
-Landroid/icu/util/Currency$ServiceShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
-Landroid/icu/util/Currency$ServiceShim;->registerInstance(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;)Ljava/lang/Object;
-Landroid/icu/util/Currency$ServiceShim;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/util/Currency;->ALL_CODES_AS_SET:Ljava/lang/ref/SoftReference;
-Landroid/icu/util/Currency;->ALL_TENDER_CODES:Ljava/lang/ref/SoftReference;
-Landroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
-Landroid/icu/util/Currency;->CURRENCY_NAME_CACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/util/Currency;->DEBUG:Z
-Landroid/icu/util/Currency;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
-Landroid/icu/util/Currency;->EQUIVALENT_CURRENCY_SYMBOLS:Landroid/icu/util/Currency$EquivalenceRelation;
-Landroid/icu/util/Currency;->EUR_STR:Ljava/lang/String;
-Landroid/icu/util/Currency;->fromJavaCurrency(Ljava/util/Currency;)Landroid/icu/util/Currency;
-Landroid/icu/util/Currency;->getAllCurrenciesAsSet()Ljava/util/Set;
-Landroid/icu/util/Currency;->getAllTenderCurrencies()Ljava/util/List;
-Landroid/icu/util/Currency;->getCurrencyTrieVec(Landroid/icu/util/ULocale;)Ljava/util/List;
-Landroid/icu/util/Currency;->getShim()Landroid/icu/util/Currency$ServiceShim;
-Landroid/icu/util/Currency;->getTenderCurrencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-Landroid/icu/util/Currency;->isAlpha3Code(Ljava/lang/String;)Z
-Landroid/icu/util/Currency;->isoCode:Ljava/lang/String;
-Landroid/icu/util/Currency;->loadCurrency(Ljava/lang/String;)Landroid/icu/util/Currency;
-Landroid/icu/util/Currency;->NARROW_SYMBOL_NAME:I
-Landroid/icu/util/Currency;->openParseState(Landroid/icu/util/ULocale;II)Landroid/icu/impl/TextTrieMap$ParseState;
-Landroid/icu/util/Currency;->parse(Landroid/icu/util/ULocale;Ljava/lang/String;ILjava/text/ParsePosition;)Ljava/lang/String;
-Landroid/icu/util/Currency;->POW10:[I
-Landroid/icu/util/Currency;->regionCurrencyCache:Landroid/icu/impl/CacheBase;
-Landroid/icu/util/Currency;->registerInstance(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;)Ljava/lang/Object;
-Landroid/icu/util/Currency;->setupCurrencyTrieVec(Landroid/icu/util/ULocale;Ljava/util/List;)V
-Landroid/icu/util/Currency;->shim:Landroid/icu/util/Currency$ServiceShim;
-Landroid/icu/util/Currency;->toJavaCurrency()Ljava/util/Currency;
-Landroid/icu/util/Currency;->UND:Landroid/icu/util/ULocale;
-Landroid/icu/util/Currency;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/util/CurrencyAmount;-><init>(DLjava/util/Currency;)V
-Landroid/icu/util/CurrencyAmount;-><init>(Ljava/lang/Number;Ljava/util/Currency;)V
-Landroid/icu/util/DangiCalendar;-><init>()V
-Landroid/icu/util/DangiCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
-Landroid/icu/util/DangiCalendar;-><init>(Ljava/util/Date;)V
-Landroid/icu/util/DangiCalendar;->DANGI_EPOCH_YEAR:I
-Landroid/icu/util/DangiCalendar;->KOREA_ZONE:Landroid/icu/util/TimeZone;
-Landroid/icu/util/DateInterval;->fromDate:J
-Landroid/icu/util/DateInterval;->toDate:J
-Landroid/icu/util/DateRule;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/DateRule;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/DateRule;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
-Landroid/icu/util/DateRule;->isOn(Ljava/util/Date;)Z
-Landroid/icu/util/DateTimeRule;-><init>(IIII)V
-Landroid/icu/util/DateTimeRule;-><init>(IIIII)V
-Landroid/icu/util/DateTimeRule;-><init>(IIIZII)V
-Landroid/icu/util/DateTimeRule;->dateRuleType:I
-Landroid/icu/util/DateTimeRule;->dayOfMonth:I
-Landroid/icu/util/DateTimeRule;->dayOfWeek:I
-Landroid/icu/util/DateTimeRule;->DOM:I
-Landroid/icu/util/DateTimeRule;->DOW:I
-Landroid/icu/util/DateTimeRule;->DOWSTR:[Ljava/lang/String;
-Landroid/icu/util/DateTimeRule;->DOW_GEQ_DOM:I
-Landroid/icu/util/DateTimeRule;->DOW_LEQ_DOM:I
-Landroid/icu/util/DateTimeRule;->getDateRuleType()I
-Landroid/icu/util/DateTimeRule;->getRuleDayOfMonth()I
-Landroid/icu/util/DateTimeRule;->getRuleDayOfWeek()I
-Landroid/icu/util/DateTimeRule;->getRuleMillisInDay()I
-Landroid/icu/util/DateTimeRule;->getRuleMonth()I
-Landroid/icu/util/DateTimeRule;->getRuleWeekInMonth()I
-Landroid/icu/util/DateTimeRule;->getTimeRuleType()I
-Landroid/icu/util/DateTimeRule;->millisInDay:I
-Landroid/icu/util/DateTimeRule;->MONSTR:[Ljava/lang/String;
-Landroid/icu/util/DateTimeRule;->month:I
-Landroid/icu/util/DateTimeRule;->STANDARD_TIME:I
-Landroid/icu/util/DateTimeRule;->timeRuleType:I
-Landroid/icu/util/DateTimeRule;->UTC_TIME:I
-Landroid/icu/util/DateTimeRule;->WALL_TIME:I
-Landroid/icu/util/DateTimeRule;->weekInMonth:I
-Landroid/icu/util/EasterHoliday;-><init>(ILjava/lang/String;)V
-Landroid/icu/util/EasterHoliday;-><init>(IZLjava/lang/String;)V
-Landroid/icu/util/EasterHoliday;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/EasterHoliday;->ASCENSION:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->ASH_WEDNESDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->CORPUS_CHRISTI:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->EASTER_MONDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->EASTER_SUNDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->GOOD_FRIDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->MAUNDY_THURSDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->PALM_SUNDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->PENTECOST:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->SHROVE_TUESDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->WHIT_MONDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterHoliday;->WHIT_SUNDAY:Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EthiopicCalendar;->AMETE_ALEM:I
-Landroid/icu/util/EthiopicCalendar;->AMETE_ALEM_ERA:I
-Landroid/icu/util/EthiopicCalendar;->AMETE_MIHRET:I
-Landroid/icu/util/EthiopicCalendar;->AMETE_MIHRET_DELTA:I
-Landroid/icu/util/EthiopicCalendar;->AMETE_MIHRET_ERA:I
-Landroid/icu/util/EthiopicCalendar;->eraType:I
-Landroid/icu/util/EthiopicCalendar;->EthiopicToJD(JII)I
-Landroid/icu/util/EthiopicCalendar;->getJDEpochOffset()I
-Landroid/icu/util/EthiopicCalendar;->JD_EPOCH_OFFSET_AMETE_MIHRET:I
-Landroid/icu/util/EthiopicCalendar;->setCalcTypeForLocale(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/GenderInfo$Cache;-><init>()V
-Landroid/icu/util/GenderInfo$Cache;->cache:Landroid/icu/impl/ICUCache;
-Landroid/icu/util/GenderInfo$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GenderInfo$Cache;->load(Landroid/icu/util/ULocale;)Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GenderInfo$Gender;->FEMALE:Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$Gender;->MALE:Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$Gender;->OTHER:Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$Gender;->valueOf(Ljava/lang/String;)Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$Gender;->values()[Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->fromName(Ljava/lang/String;)Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->fromNameMap:Ljava/util/Map;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->MALE_TAINTS:Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->MIXED_NEUTRAL:Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->NEUTRAL:Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->valueOf(Ljava/lang/String;)Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo$ListGenderStyle;->values()[Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo;-><init>(Landroid/icu/util/GenderInfo$ListGenderStyle;)V
-Landroid/icu/util/GenderInfo;->genderInfoCache:Landroid/icu/util/GenderInfo$Cache;
-Landroid/icu/util/GenderInfo;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GenderInfo;->getInstance(Ljava/util/Locale;)Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GenderInfo;->getListGender(Ljava/util/List;)Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo;->neutral:Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GenderInfo;->style:Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GlobalizationPreferences;-><init>()V
-Landroid/icu/util/GlobalizationPreferences;->available_locales:Ljava/util/HashMap;
-Landroid/icu/util/GlobalizationPreferences;->BI_CHARACTER:I
-Landroid/icu/util/GlobalizationPreferences;->BI_LIMIT:I
-Landroid/icu/util/GlobalizationPreferences;->BI_LINE:I
-Landroid/icu/util/GlobalizationPreferences;->BI_SENTENCE:I
-Landroid/icu/util/GlobalizationPreferences;->BI_TITLE:I
-Landroid/icu/util/GlobalizationPreferences;->BI_WORD:I
-Landroid/icu/util/GlobalizationPreferences;->breakIterators:[Landroid/icu/text/BreakIterator;
-Landroid/icu/util/GlobalizationPreferences;->calendar:Landroid/icu/util/Calendar;
-Landroid/icu/util/GlobalizationPreferences;->collator:Landroid/icu/text/Collator;
-Landroid/icu/util/GlobalizationPreferences;->currency:Landroid/icu/util/Currency;
-Landroid/icu/util/GlobalizationPreferences;->dateFormats:[[Landroid/icu/text/DateFormat;
-Landroid/icu/util/GlobalizationPreferences;->DF_FULL:I
-Landroid/icu/util/GlobalizationPreferences;->DF_LIMIT:I
-Landroid/icu/util/GlobalizationPreferences;->DF_LONG:I
-Landroid/icu/util/GlobalizationPreferences;->DF_MEDIUM:I
-Landroid/icu/util/GlobalizationPreferences;->DF_NONE:I
-Landroid/icu/util/GlobalizationPreferences;->DF_SHORT:I
-Landroid/icu/util/GlobalizationPreferences;->frozen:Z
-Landroid/icu/util/GlobalizationPreferences;->getAvailableLocale(I)Landroid/icu/util/ULocale;
-Landroid/icu/util/GlobalizationPreferences;->getBreakIterator(I)Landroid/icu/text/BreakIterator;
-Landroid/icu/util/GlobalizationPreferences;->getCalendar()Landroid/icu/util/Calendar;
-Landroid/icu/util/GlobalizationPreferences;->getCollator()Landroid/icu/text/Collator;
-Landroid/icu/util/GlobalizationPreferences;->getCurrency()Landroid/icu/util/Currency;
-Landroid/icu/util/GlobalizationPreferences;->getDateFormat(II)Landroid/icu/text/DateFormat;
-Landroid/icu/util/GlobalizationPreferences;->getDisplayName(Ljava/lang/String;I)Ljava/lang/String;
-Landroid/icu/util/GlobalizationPreferences;->getLocale(I)Landroid/icu/util/ULocale;
-Landroid/icu/util/GlobalizationPreferences;->getLocales()Ljava/util/List;
-Landroid/icu/util/GlobalizationPreferences;->getNumberFormat(I)Landroid/icu/text/NumberFormat;
-Landroid/icu/util/GlobalizationPreferences;->getResourceBundle(Ljava/lang/String;)Ljava/util/ResourceBundle;
-Landroid/icu/util/GlobalizationPreferences;->getResourceBundle(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle;
-Landroid/icu/util/GlobalizationPreferences;->getTerritory()Ljava/lang/String;
-Landroid/icu/util/GlobalizationPreferences;->getTimeZone()Landroid/icu/util/TimeZone;
-Landroid/icu/util/GlobalizationPreferences;->guessBreakIterator(I)Landroid/icu/text/BreakIterator;
-Landroid/icu/util/GlobalizationPreferences;->guessCalendar()Landroid/icu/util/Calendar;
-Landroid/icu/util/GlobalizationPreferences;->guessCollator()Landroid/icu/text/Collator;
-Landroid/icu/util/GlobalizationPreferences;->guessCurrency()Landroid/icu/util/Currency;
-Landroid/icu/util/GlobalizationPreferences;->guessDateFormat(II)Landroid/icu/text/DateFormat;
-Landroid/icu/util/GlobalizationPreferences;->guessLocales()Ljava/util/List;
-Landroid/icu/util/GlobalizationPreferences;->guessNumberFormat(I)Landroid/icu/text/NumberFormat;
-Landroid/icu/util/GlobalizationPreferences;->guessTerritory()Ljava/lang/String;
-Landroid/icu/util/GlobalizationPreferences;->guessTimeZone()Landroid/icu/util/TimeZone;
-Landroid/icu/util/GlobalizationPreferences;->ID_CURRENCY:I
-Landroid/icu/util/GlobalizationPreferences;->ID_CURRENCY_SYMBOL:I
-Landroid/icu/util/GlobalizationPreferences;->ID_KEYWORD:I
-Landroid/icu/util/GlobalizationPreferences;->ID_KEYWORD_VALUE:I
-Landroid/icu/util/GlobalizationPreferences;->ID_LANGUAGE:I
-Landroid/icu/util/GlobalizationPreferences;->ID_LOCALE:I
-Landroid/icu/util/GlobalizationPreferences;->ID_SCRIPT:I
-Landroid/icu/util/GlobalizationPreferences;->ID_TERRITORY:I
-Landroid/icu/util/GlobalizationPreferences;->ID_TIMEZONE:I
-Landroid/icu/util/GlobalizationPreferences;->ID_VARIANT:I
-Landroid/icu/util/GlobalizationPreferences;->implicitLocales:Ljava/util/List;
-Landroid/icu/util/GlobalizationPreferences;->isAvailableLocale(Landroid/icu/util/ULocale;I)Z
-Landroid/icu/util/GlobalizationPreferences;->language_territory_hack:[[Ljava/lang/String;
-Landroid/icu/util/GlobalizationPreferences;->language_territory_hack_map:Ljava/util/Map;
-Landroid/icu/util/GlobalizationPreferences;->locales:Ljava/util/List;
-Landroid/icu/util/GlobalizationPreferences;->NF_CURRENCY:I
-Landroid/icu/util/GlobalizationPreferences;->NF_INTEGER:I
-Landroid/icu/util/GlobalizationPreferences;->NF_LIMIT:I
-Landroid/icu/util/GlobalizationPreferences;->NF_NUMBER:I
-Landroid/icu/util/GlobalizationPreferences;->NF_PERCENT:I
-Landroid/icu/util/GlobalizationPreferences;->NF_SCIENTIFIC:I
-Landroid/icu/util/GlobalizationPreferences;->numberFormats:[Landroid/icu/text/NumberFormat;
-Landroid/icu/util/GlobalizationPreferences;->processLocales(Ljava/util/List;)Ljava/util/List;
-Landroid/icu/util/GlobalizationPreferences;->reset()Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setBreakIterator(ILandroid/icu/text/BreakIterator;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setCalendar(Landroid/icu/util/Calendar;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setCollator(Landroid/icu/text/Collator;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setCurrency(Landroid/icu/util/Currency;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setDateFormat(IILandroid/icu/text/DateFormat;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setLocale(Landroid/icu/util/ULocale;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setLocales(Ljava/lang/String;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setLocales(Ljava/util/List;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setLocales([Landroid/icu/util/ULocale;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setNumberFormat(ILandroid/icu/text/NumberFormat;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setTerritory(Ljava/lang/String;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->setTimeZone(Landroid/icu/util/TimeZone;)Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GlobalizationPreferences;->territory:Ljava/lang/String;
-Landroid/icu/util/GlobalizationPreferences;->territory_tzid_hack:[[Ljava/lang/String;
-Landroid/icu/util/GlobalizationPreferences;->territory_tzid_hack_map:Ljava/util/Map;
-Landroid/icu/util/GlobalizationPreferences;->timezone:Landroid/icu/util/TimeZone;
-Landroid/icu/util/GlobalizationPreferences;->TYPE_BREAKITERATOR:I
-Landroid/icu/util/GlobalizationPreferences;->TYPE_CALENDAR:I
-Landroid/icu/util/GlobalizationPreferences;->TYPE_COLLATOR:I
-Landroid/icu/util/GlobalizationPreferences;->TYPE_DATEFORMAT:I
-Landroid/icu/util/GlobalizationPreferences;->TYPE_GENERIC:I
-Landroid/icu/util/GlobalizationPreferences;->TYPE_LIMIT:I
-Landroid/icu/util/GlobalizationPreferences;->TYPE_NUMBERFORMAT:I
-Landroid/icu/util/GregorianCalendar;->cutoverJulianDay:I
-Landroid/icu/util/GregorianCalendar;->EPOCH_YEAR:I
-Landroid/icu/util/GregorianCalendar;->gregorianCutover:J
-Landroid/icu/util/GregorianCalendar;->gregorianCutoverYear:I
-Landroid/icu/util/GregorianCalendar;->inDaylightTime()Z
-Landroid/icu/util/GregorianCalendar;->LIMITS:[[I
-Landroid/icu/util/GregorianCalendar;->MONTH_COUNT:[[I
-Landroid/icu/util/HebrewCalendar;->BAHARAD:J
-Landroid/icu/util/HebrewCalendar;->cache:Landroid/icu/impl/CalendarCache;
-Landroid/icu/util/HebrewCalendar;->DAY_PARTS:J
-Landroid/icu/util/HebrewCalendar;->HOUR_PARTS:J
-Landroid/icu/util/HebrewCalendar;->isLeapYear(I)Z
-Landroid/icu/util/HebrewCalendar;->LEAP_MONTH_START:[[I
-Landroid/icu/util/HebrewCalendar;->LIMITS:[[I
-Landroid/icu/util/HebrewCalendar;->monthsInYear(I)I
-Landroid/icu/util/HebrewCalendar;->MONTH_DAYS:I
-Landroid/icu/util/HebrewCalendar;->MONTH_FRACT:J
-Landroid/icu/util/HebrewCalendar;->MONTH_LENGTH:[[I
-Landroid/icu/util/HebrewCalendar;->MONTH_PARTS:J
-Landroid/icu/util/HebrewCalendar;->MONTH_START:[[I
-Landroid/icu/util/HebrewCalendar;->startOfYear(I)J
-Landroid/icu/util/HebrewCalendar;->yearType(I)I
-Landroid/icu/util/HebrewHoliday;-><init>(IIILjava/lang/String;)V
-Landroid/icu/util/HebrewHoliday;-><init>(IILjava/lang/String;)V
-Landroid/icu/util/HebrewHoliday;->ESTHER:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->gCalendar:Landroid/icu/util/HebrewCalendar;
-Landroid/icu/util/HebrewHoliday;->GEDALIAH:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->HANUKKAH:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->HOSHANAH_RABBAH:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->LAG_BOMER:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->PASSOVER:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->PESACH_SHEINI:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->PURIM:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->ROSH_HASHANAH:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->SELIHOT:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->SHAVUOT:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->SHEMINI_ATZERET:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->SHUSHAN_PURIM:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->SIMCHAT_TORAH:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->SUKKOT:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->TAMMUZ_17:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->TEVET_10:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->TISHA_BAV:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->TU_BSHEVAT:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->YOM_HAATZMAUT:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->YOM_HASHOAH:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->YOM_HAZIKARON:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->YOM_KIPPUR:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/HebrewHoliday;->YOM_YERUSHALAYIM:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/Holiday;-><init>(Ljava/lang/String;Landroid/icu/util/DateRule;)V
-Landroid/icu/util/Holiday;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/Holiday;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/Holiday;->getDisplayName()Ljava/lang/String;
-Landroid/icu/util/Holiday;->getDisplayName(Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/Holiday;->getDisplayName(Ljava/util/Locale;)Ljava/lang/String;
-Landroid/icu/util/Holiday;->getHolidays()[Landroid/icu/util/Holiday;
-Landroid/icu/util/Holiday;->getHolidays(Landroid/icu/util/ULocale;)[Landroid/icu/util/Holiday;
-Landroid/icu/util/Holiday;->getHolidays(Ljava/util/Locale;)[Landroid/icu/util/Holiday;
-Landroid/icu/util/Holiday;->getRule()Landroid/icu/util/DateRule;
-Landroid/icu/util/Holiday;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
-Landroid/icu/util/Holiday;->isOn(Ljava/util/Date;)Z
-Landroid/icu/util/Holiday;->name:Ljava/lang/String;
-Landroid/icu/util/Holiday;->noHolidays:[Landroid/icu/util/Holiday;
-Landroid/icu/util/Holiday;->rule:Landroid/icu/util/DateRule;
-Landroid/icu/util/Holiday;->setRule(Landroid/icu/util/DateRule;)V
-Landroid/icu/util/ICUCloneNotSupportedException;-><init>()V
-Landroid/icu/util/ICUCloneNotSupportedException;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/ICUCloneNotSupportedException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/icu/util/ICUCloneNotSupportedException;-><init>(Ljava/lang/Throwable;)V
-Landroid/icu/util/ICUException;-><init>()V
-Landroid/icu/util/ICUException;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/ICUException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/icu/util/ICUException;-><init>(Ljava/lang/Throwable;)V
-Landroid/icu/util/IllformedLocaleException;->_errIdx:I
-Landroid/icu/util/IndianCalendar;->gregorianToJD(III)D
-Landroid/icu/util/IndianCalendar;->IndianToJD(III)D
-Landroid/icu/util/IndianCalendar;->INDIAN_ERA_START:I
-Landroid/icu/util/IndianCalendar;->INDIAN_YEAR_START:I
-Landroid/icu/util/IndianCalendar;->isGregorianLeap(I)Z
-Landroid/icu/util/IndianCalendar;->jdToGregorian(D)[I
-Landroid/icu/util/IndianCalendar;->LIMITS:[[I
-Landroid/icu/util/InitialTimeZoneRule;-><init>(Ljava/lang/String;II)V
-Landroid/icu/util/InitialTimeZoneRule;->getFinalStart(II)Ljava/util/Date;
-Landroid/icu/util/InitialTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
-Landroid/icu/util/InitialTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/InitialTimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/InitialTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
-Landroid/icu/util/InitialTimeZoneRule;->isTransitionRule()Z
-Landroid/icu/util/IslamicCalendar$CalculationType;->bcpType()Ljava/lang/String;
-Landroid/icu/util/IslamicCalendar$CalculationType;->bcpType:Ljava/lang/String;
-Landroid/icu/util/IslamicCalendar;->astro:Landroid/icu/impl/CalendarAstronomer;
-Landroid/icu/util/IslamicCalendar;->ASTRONOMICAL_EPOC:J
-Landroid/icu/util/IslamicCalendar;->cache:Landroid/icu/impl/CalendarCache;
-Landroid/icu/util/IslamicCalendar;->civil:Z
-Landroid/icu/util/IslamicCalendar;->civilLeapYear(I)Z
-Landroid/icu/util/IslamicCalendar;->CIVIL_EPOC:J
-Landroid/icu/util/IslamicCalendar;->cType:Landroid/icu/util/IslamicCalendar$CalculationType;
-Landroid/icu/util/IslamicCalendar;->HIJRA_MILLIS:J
-Landroid/icu/util/IslamicCalendar;->isCivil()Z
-Landroid/icu/util/IslamicCalendar;->LIMITS:[[I
-Landroid/icu/util/IslamicCalendar;->monthStart(II)J
-Landroid/icu/util/IslamicCalendar;->moonAge(J)D
-Landroid/icu/util/IslamicCalendar;->setCalcTypeForLocale(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/IslamicCalendar;->setCivil(Z)V
-Landroid/icu/util/IslamicCalendar;->trueMonthStart(J)J
-Landroid/icu/util/IslamicCalendar;->UMALQURA_MONTHLENGTH:[I
-Landroid/icu/util/IslamicCalendar;->UMALQURA_YEAR_END:I
-Landroid/icu/util/IslamicCalendar;->UMALQURA_YEAR_START:I
-Landroid/icu/util/IslamicCalendar;->UMALQURA_YEAR_START_ESTIMATE_FIX:[B
-Landroid/icu/util/IslamicCalendar;->yearStart(I)J
-Landroid/icu/util/JapaneseCalendar;->ERAS:[I
-Landroid/icu/util/JapaneseCalendar;->getDefaultDayInMonth(II)I
-Landroid/icu/util/JapaneseCalendar;->getDefaultMonthInYear(I)I
-Landroid/icu/util/JapaneseCalendar;->GREGORIAN_EPOCH:I
-Landroid/icu/util/JapaneseCalendar;->haveDefaultCentury()Z
-Landroid/icu/util/LocaleData$MeasurementSystem;-><init>()V
-Landroid/icu/util/LocaleData$PaperSize;-><init>(II)V
-Landroid/icu/util/LocaleData$PaperSize;->height:I
-Landroid/icu/util/LocaleData$PaperSize;->width:I
-Landroid/icu/util/LocaleData;-><init>()V
-Landroid/icu/util/LocaleData;->bundle:Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/util/LocaleData;->DELIMITER_COUNT:I
-Landroid/icu/util/LocaleData;->DELIMITER_TYPES:[Ljava/lang/String;
-Landroid/icu/util/LocaleData;->ES_AUXILIARY:I
-Landroid/icu/util/LocaleData;->ES_COUNT:I
-Landroid/icu/util/LocaleData;->ES_CURRENCY:I
-Landroid/icu/util/LocaleData;->ES_INDEX:I
-Landroid/icu/util/LocaleData;->ES_PUNCTUATION:I
-Landroid/icu/util/LocaleData;->ES_STANDARD:I
-Landroid/icu/util/LocaleData;->gCLDRVersion:Landroid/icu/util/VersionInfo;
-Landroid/icu/util/LocaleData;->getExemplarSet(II)Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/LocaleData;->getExemplarSet(Landroid/icu/util/ULocale;I)Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/LocaleData;->getExemplarSet(Landroid/icu/util/ULocale;II)Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/LocaleData;->getLocaleDisplayPattern()Ljava/lang/String;
-Landroid/icu/util/LocaleData;->getLocaleSeparator()Ljava/lang/String;
-Landroid/icu/util/LocaleData;->langBundle:Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/util/LocaleData;->LOCALE_DISPLAY_PATTERN:Ljava/lang/String;
-Landroid/icu/util/LocaleData;->measurementTypeBundleForLocale(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/LocaleData;->MEASUREMENT_SYSTEM:Ljava/lang/String;
-Landroid/icu/util/LocaleData;->noSubstitute:Z
-Landroid/icu/util/LocaleData;->PAPER_SIZE:Ljava/lang/String;
-Landroid/icu/util/LocaleData;->PATTERN:Ljava/lang/String;
-Landroid/icu/util/LocaleData;->SEPARATOR:Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;-><init>()V
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->addDistance(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->addDistance(Ljava/lang/String;Ljava/lang/String;IZ)Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->addDistance(Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;)Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->frozen:Z
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->languageScores:Landroid/icu/util/LocaleMatcher$ScoreData;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->match(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->matchingLanguages()Landroid/icu/impl/Relation;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->matchingLanguages:Landroid/icu/impl/Relation;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->regionScores:Landroid/icu/util/LocaleMatcher$ScoreData;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->scriptScores:Landroid/icu/util/LocaleMatcher$ScoreData;
-Landroid/icu/util/LocaleMatcher$Level;->language:Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$Level;->region:Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$Level;->script:Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$Level;->valueOf(Ljava/lang/String;)Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$Level;->values()[Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$Level;->worst:D
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getLanguage()Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getLevel()Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getRegion()Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getScript()Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->lang:Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->level:Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->matches(Landroid/icu/util/ULocale;)Z
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->pattern:Ljava/util/regex/Pattern;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->region:Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->script:Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$OutputDouble;-><init>()V
-Landroid/icu/util/LocaleMatcher$OutputDouble;->value:D
-Landroid/icu/util/LocaleMatcher$ScoreData;-><init>(Landroid/icu/util/LocaleMatcher$Level;)V
-Landroid/icu/util/LocaleMatcher$ScoreData;->addDataToScores(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/Row$R3;)V
-Landroid/icu/util/LocaleMatcher$ScoreData;->frozen:Z
-Landroid/icu/util/LocaleMatcher$ScoreData;->getMatchingLanguages()Landroid/icu/impl/Relation;
-Landroid/icu/util/LocaleMatcher$ScoreData;->getRawScore(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
-Landroid/icu/util/LocaleMatcher$ScoreData;->getScore(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)D
-Landroid/icu/util/LocaleMatcher$ScoreData;->level:Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$ScoreData;->maxUnequal_changeD_sameS:D
-Landroid/icu/util/LocaleMatcher$ScoreData;->maxUnequal_changeEqual:D
-Landroid/icu/util/LocaleMatcher$ScoreData;->scores:Ljava/util/LinkedHashSet;
-Landroid/icu/util/LocaleMatcher;-><init>(Landroid/icu/util/LocalePriorityList;)V
-Landroid/icu/util/LocaleMatcher;-><init>(Landroid/icu/util/LocalePriorityList;Landroid/icu/util/LocaleMatcher$LanguageMatcherData;)V
-Landroid/icu/util/LocaleMatcher;-><init>(Landroid/icu/util/LocalePriorityList;Landroid/icu/util/LocaleMatcher$LanguageMatcherData;D)V
-Landroid/icu/util/LocaleMatcher;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/LocaleMatcher;->add(Landroid/icu/util/ULocale;Ljava/lang/Double;)V
-Landroid/icu/util/LocaleMatcher;->addFiltered(Ljava/lang/String;Landroid/icu/impl/Row$R3;)V
-Landroid/icu/util/LocaleMatcher;->addLikelySubtags(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->canonicalize(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->canonicalMap:Ljava/util/HashMap;
-Landroid/icu/util/LocaleMatcher;->DEBUG:Z
-Landroid/icu/util/LocaleMatcher;->defaultLanguage:Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->defaultWritten:Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
-Landroid/icu/util/LocaleMatcher;->DEFAULT_THRESHOLD:D
-Landroid/icu/util/LocaleMatcher;->desiredLanguageToPossibleLocalesToMaxLocaleToData:Ljava/util/Map;
-Landroid/icu/util/LocaleMatcher;->distance(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)I
-Landroid/icu/util/LocaleMatcher;->getBestMatch(Landroid/icu/util/LocalePriorityList;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->getBestMatch(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->getBestMatch(Ljava/lang/String;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->getBestMatch(Ljava/util/LinkedHashSet;Landroid/icu/util/Output;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->getBestMatchInternal(Landroid/icu/util/ULocale;Landroid/icu/util/LocaleMatcher$OutputDouble;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->getICUSupplementalData()Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/util/LocaleMatcher;->getLocaleMatcher()Landroid/icu/impl/locale/XLocaleMatcher;
-Landroid/icu/util/LocaleMatcher;->languagePriorityList:Landroid/icu/util/LocalePriorityList;
-Landroid/icu/util/LocaleMatcher;->localeToMaxLocaleAndWeight:Ljava/util/Set;
-Landroid/icu/util/LocaleMatcher;->match(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
-Landroid/icu/util/LocaleMatcher;->match(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)D
-Landroid/icu/util/LocaleMatcher;->matcherData:Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
-Landroid/icu/util/LocaleMatcher;->processMapping()V
-Landroid/icu/util/LocaleMatcher;->setDefaultLanguage(Landroid/icu/util/ULocale;)Landroid/icu/util/LocaleMatcher;
-Landroid/icu/util/LocaleMatcher;->setFavorScript(Z)Landroid/icu/util/LocaleMatcher;
-Landroid/icu/util/LocaleMatcher;->threshold:D
-Landroid/icu/util/LocaleMatcher;->UNKNOWN_LOCALE:Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->xDefaultLanguage:Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->xFavorScript:Z
-Landroid/icu/util/LocaleMatcher;->xLocaleMatcher:Landroid/icu/impl/locale/XLocaleMatcher;
-Landroid/icu/util/LocalePriorityList$Builder;-><init>()V
-Landroid/icu/util/LocalePriorityList$Builder;->add(Landroid/icu/util/LocalePriorityList;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList$Builder;->add(Landroid/icu/util/ULocale;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList$Builder;->add(Landroid/icu/util/ULocale;D)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList$Builder;->add(Ljava/lang/String;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList$Builder;->build()Landroid/icu/util/LocalePriorityList;
-Landroid/icu/util/LocalePriorityList$Builder;->build(Z)Landroid/icu/util/LocalePriorityList;
-Landroid/icu/util/LocalePriorityList$Builder;->languageToWeight:Ljava/util/Map;
-Landroid/icu/util/LocalePriorityList;-><init>(Ljava/util/Map;)V
-Landroid/icu/util/LocalePriorityList;->add(Landroid/icu/util/LocalePriorityList;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList;->add(Landroid/icu/util/ULocale;D)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList;->add(Ljava/lang/String;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList;->D0:D
-Landroid/icu/util/LocalePriorityList;->D1:Ljava/lang/Double;
-Landroid/icu/util/LocalePriorityList;->getWeight(Landroid/icu/util/ULocale;)Ljava/lang/Double;
-Landroid/icu/util/LocalePriorityList;->languagesAndWeights:Ljava/util/Map;
-Landroid/icu/util/LocalePriorityList;->languageSplitter:Ljava/util/regex/Pattern;
-Landroid/icu/util/LocalePriorityList;->myDescendingDouble:Ljava/util/Comparator;
-Landroid/icu/util/LocalePriorityList;->weightSplitter:Ljava/util/regex/Pattern;
-Landroid/icu/util/Measure;->number:Ljava/lang/Number;
-Landroid/icu/util/Measure;->numbersEqual(Ljava/lang/Number;Ljava/lang/Number;)Z
-Landroid/icu/util/Measure;->unit:Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit$CurrencyNumericCodeSink;-><init>()V
-Landroid/icu/util/MeasureUnit$Factory;->create(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit$MeasureUnitProxy;-><init>()V
-Landroid/icu/util/MeasureUnit$MeasureUnitProxy;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/MeasureUnit$MeasureUnitProxy;->subType:Ljava/lang/String;
-Landroid/icu/util/MeasureUnit$MeasureUnitProxy;->type:Ljava/lang/String;
-Landroid/icu/util/MeasureUnit$MeasureUnitSink;-><init>()V
-Landroid/icu/util/MeasureUnit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/MeasureUnit;->addUnit(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/MeasureUnit$Factory;)Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit;->ASCII:Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/MeasureUnit;->ASCII_HYPHEN_DIGITS:Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/MeasureUnit;->cache:Ljava/util/Map;
-Landroid/icu/util/MeasureUnit;->cacheIsPopulated:Z
-Landroid/icu/util/MeasureUnit;->CURRENCY_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
-Landroid/icu/util/MeasureUnit;->internalGetInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit;->NOUNIT_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
-Landroid/icu/util/MeasureUnit;->POINT:Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit;->populateCache()V
-Landroid/icu/util/MeasureUnit;->resolveUnitPerUnit(Landroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit;->subType:Ljava/lang/String;
-Landroid/icu/util/MeasureUnit;->TIMEUNIT_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
-Landroid/icu/util/MeasureUnit;->type:Ljava/lang/String;
-Landroid/icu/util/MeasureUnit;->unitPerUnitToSingleUnit:Ljava/util/HashMap;
-Landroid/icu/util/MeasureUnit;->UNIT_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
-Landroid/icu/util/NoUnit;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/NoUnit;->BASE:Landroid/icu/util/NoUnit;
-Landroid/icu/util/NoUnit;->PERCENT:Landroid/icu/util/NoUnit;
-Landroid/icu/util/NoUnit;->PERMILLE:Landroid/icu/util/NoUnit;
-Landroid/icu/util/OutputInt;-><init>()V
-Landroid/icu/util/OutputInt;-><init>(I)V
-Landroid/icu/util/OutputInt;->value:I
-Landroid/icu/util/PersianCalendar;-><init>()V
-Landroid/icu/util/PersianCalendar;-><init>(III)V
-Landroid/icu/util/PersianCalendar;-><init>(IIIIII)V
-Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/TimeZone;)V
-Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
-Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V
-Landroid/icu/util/PersianCalendar;-><init>(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/PersianCalendar;-><init>(Ljava/util/Date;)V
-Landroid/icu/util/PersianCalendar;->isLeapYear(I)Z
-Landroid/icu/util/PersianCalendar;->LIMITS:[[I
-Landroid/icu/util/PersianCalendar;->MONTH_COUNT:[[I
-Landroid/icu/util/PersianCalendar;->PERSIAN_EPOCH:I
-Landroid/icu/util/Range;-><init>(Ljava/util/Date;Landroid/icu/util/DateRule;)V
-Landroid/icu/util/Range;->rule:Landroid/icu/util/DateRule;
-Landroid/icu/util/Range;->start:Ljava/util/Date;
-Landroid/icu/util/RangeDateRule;-><init>()V
-Landroid/icu/util/RangeDateRule;->add(Landroid/icu/util/DateRule;)V
-Landroid/icu/util/RangeDateRule;->add(Ljava/util/Date;Landroid/icu/util/DateRule;)V
-Landroid/icu/util/RangeDateRule;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/RangeDateRule;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/RangeDateRule;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
-Landroid/icu/util/RangeDateRule;->isOn(Ljava/util/Date;)Z
-Landroid/icu/util/RangeDateRule;->rangeAt(I)Landroid/icu/util/Range;
-Landroid/icu/util/RangeDateRule;->ranges:Ljava/util/List;
-Landroid/icu/util/RangeDateRule;->startIndex(Ljava/util/Date;)I
-Landroid/icu/util/Region$RegionType;->CONTINENT:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->DEPRECATED:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->GROUPING:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->SUBCONTINENT:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->TERRITORY:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->UNKNOWN:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->valueOf(Ljava/lang/String;)Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->values()[Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;->WORLD:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region;-><init>()V
-Landroid/icu/util/Region;->availableRegions:Ljava/util/ArrayList;
-Landroid/icu/util/Region;->code:I
-Landroid/icu/util/Region;->compareTo(Landroid/icu/util/Region;)I
-Landroid/icu/util/Region;->containedRegions:Ljava/util/Set;
-Landroid/icu/util/Region;->containingRegion:Landroid/icu/util/Region;
-Landroid/icu/util/Region;->contains(Landroid/icu/util/Region;)Z
-Landroid/icu/util/Region;->getAvailable(Landroid/icu/util/Region$RegionType;)Ljava/util/Set;
-Landroid/icu/util/Region;->getContainedRegions()Ljava/util/Set;
-Landroid/icu/util/Region;->getContainedRegions(Landroid/icu/util/Region$RegionType;)Ljava/util/Set;
-Landroid/icu/util/Region;->getContainingRegion()Landroid/icu/util/Region;
-Landroid/icu/util/Region;->getContainingRegion(Landroid/icu/util/Region$RegionType;)Landroid/icu/util/Region;
-Landroid/icu/util/Region;->getInstance(I)Landroid/icu/util/Region;
-Landroid/icu/util/Region;->getInstance(Ljava/lang/String;)Landroid/icu/util/Region;
-Landroid/icu/util/Region;->getNumericCode()I
-Landroid/icu/util/Region;->getPreferredValues()Ljava/util/List;
-Landroid/icu/util/Region;->getType()Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region;->id:Ljava/lang/String;
-Landroid/icu/util/Region;->loadRegionData()V
-Landroid/icu/util/Region;->numericCodeMap:Ljava/util/Map;
-Landroid/icu/util/Region;->OUTLYING_OCEANIA_REGION_ID:Ljava/lang/String;
-Landroid/icu/util/Region;->preferredValues:Ljava/util/List;
-Landroid/icu/util/Region;->regionAliases:Ljava/util/Map;
-Landroid/icu/util/Region;->regionDataIsLoaded:Z
-Landroid/icu/util/Region;->regionIDMap:Ljava/util/Map;
-Landroid/icu/util/Region;->regions:Ljava/util/ArrayList;
-Landroid/icu/util/Region;->type:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region;->UNKNOWN_REGION_ID:Ljava/lang/String;
-Landroid/icu/util/Region;->WORLD_ID:Ljava/lang/String;
-Landroid/icu/util/RuleBasedTimeZone;-><init>(Ljava/lang/String;Landroid/icu/util/InitialTimeZoneRule;)V
-Landroid/icu/util/RuleBasedTimeZone;->addTransitionRule(Landroid/icu/util/TimeZoneRule;)V
-Landroid/icu/util/RuleBasedTimeZone;->complete()V
-Landroid/icu/util/RuleBasedTimeZone;->finalRules:[Landroid/icu/util/AnnualTimeZoneRule;
-Landroid/icu/util/RuleBasedTimeZone;->findRuleInFinal(JZII)Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/RuleBasedTimeZone;->getLocalDelta(IIIIII)I
-Landroid/icu/util/RuleBasedTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/RuleBasedTimeZone;->getOffset(JZII[I)V
-Landroid/icu/util/RuleBasedTimeZone;->getOffsetFromLocal(JII[I)V
-Landroid/icu/util/RuleBasedTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/RuleBasedTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/RuleBasedTimeZone;->getTransitionTime(Landroid/icu/util/TimeZoneTransition;ZII)J
-Landroid/icu/util/RuleBasedTimeZone;->historicRules:Ljava/util/List;
-Landroid/icu/util/RuleBasedTimeZone;->historicTransitions:Ljava/util/List;
-Landroid/icu/util/RuleBasedTimeZone;->initialRule:Landroid/icu/util/InitialTimeZoneRule;
-Landroid/icu/util/RuleBasedTimeZone;->isFrozen:Z
-Landroid/icu/util/RuleBasedTimeZone;->upToDate:Z
-Landroid/icu/util/SimpleDateRule;-><init>(II)V
-Landroid/icu/util/SimpleDateRule;-><init>(IIIZ)V
-Landroid/icu/util/SimpleDateRule;-><init>(IILandroid/icu/util/Calendar;)V
-Landroid/icu/util/SimpleDateRule;->calendar:Landroid/icu/util/Calendar;
-Landroid/icu/util/SimpleDateRule;->computeInYear(ILandroid/icu/util/Calendar;)Ljava/util/Date;
-Landroid/icu/util/SimpleDateRule;->dayOfMonth:I
-Landroid/icu/util/SimpleDateRule;->dayOfWeek:I
-Landroid/icu/util/SimpleDateRule;->doFirstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/SimpleDateRule;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/SimpleDateRule;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
-Landroid/icu/util/SimpleDateRule;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
-Landroid/icu/util/SimpleDateRule;->isOn(Ljava/util/Date;)Z
-Landroid/icu/util/SimpleDateRule;->month:I
-Landroid/icu/util/SimpleHoliday;-><init>(IIILjava/lang/String;)V
-Landroid/icu/util/SimpleHoliday;-><init>(IIILjava/lang/String;I)V
-Landroid/icu/util/SimpleHoliday;-><init>(IIILjava/lang/String;II)V
-Landroid/icu/util/SimpleHoliday;-><init>(IILjava/lang/String;)V
-Landroid/icu/util/SimpleHoliday;-><init>(IILjava/lang/String;I)V
-Landroid/icu/util/SimpleHoliday;-><init>(IILjava/lang/String;II)V
-Landroid/icu/util/SimpleHoliday;->ALL_SAINTS_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->ALL_SOULS_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->ASSUMPTION:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->BOXING_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->CHRISTMAS:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->CHRISTMAS_EVE:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->EPIPHANY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->IMMACULATE_CONCEPTION:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->MAY_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->NEW_YEARS_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->NEW_YEARS_EVE:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleHoliday;->rangeRule(IILandroid/icu/util/DateRule;)Landroid/icu/util/DateRule;
-Landroid/icu/util/SimpleHoliday;->ST_STEPHENS_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;)V
-Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIII)V
-Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIII)V
-Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIIIII)V
-Landroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I
-Landroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V
-Landroid/icu/util/SimpleTimeZone;->decodeEndRule()V
-Landroid/icu/util/SimpleTimeZone;->decodeRules()V
-Landroid/icu/util/SimpleTimeZone;->decodeStartRule()V
-Landroid/icu/util/SimpleTimeZone;->DOM_MODE:I
-Landroid/icu/util/SimpleTimeZone;->DOW_GE_DOM_MODE:I
-Landroid/icu/util/SimpleTimeZone;->DOW_IN_MONTH_MODE:I
-Landroid/icu/util/SimpleTimeZone;->DOW_LE_DOM_MODE:I
-Landroid/icu/util/SimpleTimeZone;->dst:I
-Landroid/icu/util/SimpleTimeZone;->dstRule:Landroid/icu/util/AnnualTimeZoneRule;
-Landroid/icu/util/SimpleTimeZone;->endDay:I
-Landroid/icu/util/SimpleTimeZone;->endDayOfWeek:I
-Landroid/icu/util/SimpleTimeZone;->endMode:I
-Landroid/icu/util/SimpleTimeZone;->endMonth:I
-Landroid/icu/util/SimpleTimeZone;->endTime:I
-Landroid/icu/util/SimpleTimeZone;->endTimeMode:I
-Landroid/icu/util/SimpleTimeZone;->firstTransition:Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/SimpleTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I
-Landroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I
-Landroid/icu/util/SimpleTimeZone;->getOffsetFromLocal(JII[I)V
-Landroid/icu/util/SimpleTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/SimpleTimeZone;->getSTZInfo()Landroid/icu/util/STZInfo;
-Landroid/icu/util/SimpleTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/SimpleTimeZone;->idEquals(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/icu/util/SimpleTimeZone;->initialRule:Landroid/icu/util/InitialTimeZoneRule;
-Landroid/icu/util/SimpleTimeZone;->initTransitionRules()V
-Landroid/icu/util/SimpleTimeZone;->isFrozen:Z
-Landroid/icu/util/SimpleTimeZone;->raw:I
-Landroid/icu/util/SimpleTimeZone;->setDSTSavings(I)V
-Landroid/icu/util/SimpleTimeZone;->setEndRule(III)V
-Landroid/icu/util/SimpleTimeZone;->setEndRule(IIII)V
-Landroid/icu/util/SimpleTimeZone;->setEndRule(IIIII)V
-Landroid/icu/util/SimpleTimeZone;->setEndRule(IIIIIZ)V
-Landroid/icu/util/SimpleTimeZone;->setEndRule(IIIIZ)V
-Landroid/icu/util/SimpleTimeZone;->setStartRule(III)V
-Landroid/icu/util/SimpleTimeZone;->setStartRule(IIII)V
-Landroid/icu/util/SimpleTimeZone;->setStartRule(IIIII)V
-Landroid/icu/util/SimpleTimeZone;->setStartRule(IIIIZ)V
-Landroid/icu/util/SimpleTimeZone;->setStartYear(I)V
-Landroid/icu/util/SimpleTimeZone;->STANDARD_TIME:I
-Landroid/icu/util/SimpleTimeZone;->startDay:I
-Landroid/icu/util/SimpleTimeZone;->startDayOfWeek:I
-Landroid/icu/util/SimpleTimeZone;->startMode:I
-Landroid/icu/util/SimpleTimeZone;->startMonth:I
-Landroid/icu/util/SimpleTimeZone;->startTime:I
-Landroid/icu/util/SimpleTimeZone;->startTimeMode:I
-Landroid/icu/util/SimpleTimeZone;->startYear:I
-Landroid/icu/util/SimpleTimeZone;->staticMonthLength:[B
-Landroid/icu/util/SimpleTimeZone;->stdRule:Landroid/icu/util/AnnualTimeZoneRule;
-Landroid/icu/util/SimpleTimeZone;->transitionRulesInitialized:Z
-Landroid/icu/util/SimpleTimeZone;->useDaylight:Z
-Landroid/icu/util/SimpleTimeZone;->UTC_TIME:I
-Landroid/icu/util/SimpleTimeZone;->WALL_TIME:I
-Landroid/icu/util/SimpleTimeZone;->xinfo:Landroid/icu/util/STZInfo;
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeSet;Z)V
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeSet;ZZ)V
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
-Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;ZZ)V
-Landroid/icu/util/StringTokenizer;->checkDelimiters()V
-Landroid/icu/util/StringTokenizer;->countTokens()I
-Landroid/icu/util/StringTokenizer;->DEFAULT_DELIMITERS_:Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/StringTokenizer;->delims:[Z
-Landroid/icu/util/StringTokenizer;->EMPTY_DELIMITER_:Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/StringTokenizer;->getNextDelimiter(I)I
-Landroid/icu/util/StringTokenizer;->getNextNonDelimiter(I)I
-Landroid/icu/util/StringTokenizer;->hasMoreTokens()Z
-Landroid/icu/util/StringTokenizer;->m_coalesceDelimiters_:Z
-Landroid/icu/util/StringTokenizer;->m_delimiters_:Landroid/icu/text/UnicodeSet;
-Landroid/icu/util/StringTokenizer;->m_length_:I
-Landroid/icu/util/StringTokenizer;->m_nextOffset_:I
-Landroid/icu/util/StringTokenizer;->m_returnDelimiters_:Z
-Landroid/icu/util/StringTokenizer;->m_source_:Ljava/lang/String;
-Landroid/icu/util/StringTokenizer;->m_tokenLimit_:[I
-Landroid/icu/util/StringTokenizer;->m_tokenOffset_:I
-Landroid/icu/util/StringTokenizer;->m_tokenSize_:I
-Landroid/icu/util/StringTokenizer;->m_tokenStart_:[I
-Landroid/icu/util/StringTokenizer;->nextToken()Ljava/lang/String;
-Landroid/icu/util/StringTokenizer;->nextToken(Landroid/icu/text/UnicodeSet;)Ljava/lang/String;
-Landroid/icu/util/StringTokenizer;->nextToken(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/StringTokenizer;->TOKEN_SIZE_:I
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;-><init>(ILandroid/icu/util/StringTrieBuilder$Node;)V
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->length:I
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->markRightEdgesFirst(I)I
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->next:Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$BranchNode;-><init>()V
-Landroid/icu/util/StringTrieBuilder$BranchNode;->firstEdgeNumber:I
-Landroid/icu/util/StringTrieBuilder$BranchNode;->hash:I
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;-><init>()V
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->add(CLandroid/icu/util/StringTrieBuilder$Node;)V
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->chars:Ljava/lang/StringBuilder;
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->equal:Ljava/util/ArrayList;
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->find(C)I
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->register(Landroid/icu/util/StringTrieBuilder;)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->register(Landroid/icu/util/StringTrieBuilder;II)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;-><init>(ILandroid/icu/util/StringTrieBuilder$Node;)V
-Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;->markRightEdgesFirst(I)I
-Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;->next:Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;-><init>(Ljava/lang/CharSequence;IILandroid/icu/util/StringTrieBuilder$Node;)V
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->hash:I
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->length:I
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->markRightEdgesFirst(I)I
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->next:Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->register(Landroid/icu/util/StringTrieBuilder;)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->setHashCode()V
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->stringOffset:I
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->strings:Ljava/lang/CharSequence;
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;-><init>(I)V
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->add(II)V
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->add(ILandroid/icu/util/StringTrieBuilder$Node;)V
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->equal:[Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->length:I
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->markRightEdgesFirst(I)I
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->units:[C
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->values:[I
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$Node;-><init>()V
-Landroid/icu/util/StringTrieBuilder$Node;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$Node;->getOffset()I
-Landroid/icu/util/StringTrieBuilder$Node;->markRightEdgesFirst(I)I
-Landroid/icu/util/StringTrieBuilder$Node;->offset:I
-Landroid/icu/util/StringTrieBuilder$Node;->register(Landroid/icu/util/StringTrieBuilder;)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$Node;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$Node;->writeUnlessInsideRightEdge(IILandroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$Option;->FAST:Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$Option;->SMALL:Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$Option;->valueOf(Ljava/lang/String;)Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$Option;->values()[Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;-><init>(CLandroid/icu/util/StringTrieBuilder$Node;Landroid/icu/util/StringTrieBuilder$Node;)V
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->greaterOrEqual:Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->lessThan:Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->markRightEdgesFirst(I)I
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->unit:C
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$State;->ADDING:Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$State;->BUILDING_FAST:Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$State;->BUILDING_SMALL:Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$State;->BUILT:Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$State;->valueOf(Ljava/lang/String;)Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$State;->values()[Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$ValueNode;-><init>()V
-Landroid/icu/util/StringTrieBuilder$ValueNode;-><init>(I)V
-Landroid/icu/util/StringTrieBuilder$ValueNode;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$ValueNode;->hasValue:Z
-Landroid/icu/util/StringTrieBuilder$ValueNode;->setFinalValue(I)V
-Landroid/icu/util/StringTrieBuilder$ValueNode;->setValue(I)V
-Landroid/icu/util/StringTrieBuilder$ValueNode;->value:I
-Landroid/icu/util/StringTrieBuilder$ValueNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder;-><init>()V
-Landroid/icu/util/StringTrieBuilder;->addImpl(Ljava/lang/CharSequence;I)V
-Landroid/icu/util/StringTrieBuilder;->buildImpl(Landroid/icu/util/StringTrieBuilder$Option;)V
-Landroid/icu/util/StringTrieBuilder;->clearImpl()V
-Landroid/icu/util/StringTrieBuilder;->createSuffixNode(Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$ValueNode;
-Landroid/icu/util/StringTrieBuilder;->getMaxBranchLinearSubNodeLength()I
-Landroid/icu/util/StringTrieBuilder;->getMaxLinearMatchLength()I
-Landroid/icu/util/StringTrieBuilder;->getMinLinearMatch()I
-Landroid/icu/util/StringTrieBuilder;->lookupFinalValueNode:Landroid/icu/util/StringTrieBuilder$ValueNode;
-Landroid/icu/util/StringTrieBuilder;->matchNodesCanHaveValues()Z
-Landroid/icu/util/StringTrieBuilder;->nodes:Ljava/util/HashMap;
-Landroid/icu/util/StringTrieBuilder;->registerFinalValue(I)Landroid/icu/util/StringTrieBuilder$ValueNode;
-Landroid/icu/util/StringTrieBuilder;->registerNode(Landroid/icu/util/StringTrieBuilder$Node;)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder;->root:Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder;->state:Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder;->strings:Ljava/lang/StringBuilder;
-Landroid/icu/util/StringTrieBuilder;->write(I)I
-Landroid/icu/util/StringTrieBuilder;->write(II)I
-Landroid/icu/util/StringTrieBuilder;->writeDeltaTo(I)I
-Landroid/icu/util/StringTrieBuilder;->writeValueAndFinal(IZ)I
-Landroid/icu/util/StringTrieBuilder;->writeValueAndType(ZII)I
-Landroid/icu/util/STZInfo;-><init>()V
-Landroid/icu/util/STZInfo;->applyTo(Landroid/icu/util/SimpleTimeZone;)V
-Landroid/icu/util/STZInfo;->ea:Z
-Landroid/icu/util/STZInfo;->edm:I
-Landroid/icu/util/STZInfo;->edw:I
-Landroid/icu/util/STZInfo;->edwm:I
-Landroid/icu/util/STZInfo;->em:I
-Landroid/icu/util/STZInfo;->et:I
-Landroid/icu/util/STZInfo;->sa:Z
-Landroid/icu/util/STZInfo;->sdm:I
-Landroid/icu/util/STZInfo;->sdw:I
-Landroid/icu/util/STZInfo;->sdwm:I
-Landroid/icu/util/STZInfo;->setEnd(IIIIIZ)V
-Landroid/icu/util/STZInfo;->setStart(IIIIIZ)V
-Landroid/icu/util/STZInfo;->sm:I
-Landroid/icu/util/STZInfo;->st:I
-Landroid/icu/util/STZInfo;->sy:I
-Landroid/icu/util/TaiwanCalendar;->GREGORIAN_EPOCH:I
-Landroid/icu/util/TaiwanCalendar;->Taiwan_ERA_START:I
-Landroid/icu/util/TimeArrayTimeZoneRule;-><init>(Ljava/lang/String;II[JI)V
-Landroid/icu/util/TimeArrayTimeZoneRule;->getFinalStart(II)Ljava/util/Date;
-Landroid/icu/util/TimeArrayTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
-Landroid/icu/util/TimeArrayTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/TimeArrayTimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/TimeArrayTimeZoneRule;->getStartTimes()[J
-Landroid/icu/util/TimeArrayTimeZoneRule;->getTimeType()I
-Landroid/icu/util/TimeArrayTimeZoneRule;->getUTC(JII)J
-Landroid/icu/util/TimeArrayTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
-Landroid/icu/util/TimeArrayTimeZoneRule;->isTransitionRule()Z
-Landroid/icu/util/TimeArrayTimeZoneRule;->startTimes:[J
-Landroid/icu/util/TimeArrayTimeZoneRule;->timeType:I
-Landroid/icu/util/TimeUnit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/util/TimeUnit;->index:I
-Landroid/icu/util/TimeUnitAmount;-><init>(DLandroid/icu/util/TimeUnit;)V
-Landroid/icu/util/TimeUnitAmount;-><init>(Ljava/lang/Number;Landroid/icu/util/TimeUnit;)V
-Landroid/icu/util/TimeUnitAmount;->getTimeUnit()Landroid/icu/util/TimeUnit;
-Landroid/icu/util/TimeZone$ConstantZone;-><init>(ILjava/lang/String;)V
-Landroid/icu/util/TimeZone$ConstantZone;->isFrozen:Z
-Landroid/icu/util/TimeZone$ConstantZone;->rawOffset:I
-Landroid/icu/util/TimeZone;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/TimeZone;->defaultZone:Landroid/icu/util/TimeZone;
-Landroid/icu/util/TimeZone;->getDefaultTimeZoneType()I
-Landroid/icu/util/TimeZone;->getFrozenICUTimeZone(Ljava/lang/String;Z)Landroid/icu/util/BasicTimeZone;
-Landroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;
-Landroid/icu/util/TimeZone;->GMT_ZONE_ID:Ljava/lang/String;
-Landroid/icu/util/TimeZone;->ID:Ljava/lang/String;
-Landroid/icu/util/TimeZone;->LOGGER:Ljava/util/logging/Logger;
-Landroid/icu/util/TimeZone;->setDefault(Landroid/icu/util/TimeZone;)V
-Landroid/icu/util/TimeZone;->setDefaultTimeZoneType(I)V
-Landroid/icu/util/TimeZone;->setICUDefault(Landroid/icu/util/TimeZone;)V
-Landroid/icu/util/TimeZone;->TZIMPL_CONFIG_ICU:Ljava/lang/String;
-Landroid/icu/util/TimeZone;->TZIMPL_CONFIG_JDK:Ljava/lang/String;
-Landroid/icu/util/TimeZone;->TZIMPL_CONFIG_KEY:Ljava/lang/String;
-Landroid/icu/util/TimeZone;->TZ_IMPL:I
-Landroid/icu/util/TimeZone;->_getDisplayName(IZLandroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/TimeZoneRule;-><init>(Ljava/lang/String;II)V
-Landroid/icu/util/TimeZoneRule;->dstSavings:I
-Landroid/icu/util/TimeZoneRule;->getDSTSavings()I
-Landroid/icu/util/TimeZoneRule;->getFinalStart(II)Ljava/util/Date;
-Landroid/icu/util/TimeZoneRule;->getFirstStart(II)Ljava/util/Date;
-Landroid/icu/util/TimeZoneRule;->getName()Ljava/lang/String;
-Landroid/icu/util/TimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/TimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
-Landroid/icu/util/TimeZoneRule;->getRawOffset()I
-Landroid/icu/util/TimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
-Landroid/icu/util/TimeZoneRule;->isTransitionRule()Z
-Landroid/icu/util/TimeZoneRule;->name:Ljava/lang/String;
-Landroid/icu/util/TimeZoneRule;->rawOffset:I
-Landroid/icu/util/TimeZoneTransition;-><init>(JLandroid/icu/util/TimeZoneRule;Landroid/icu/util/TimeZoneRule;)V
-Landroid/icu/util/TimeZoneTransition;->from:Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/TimeZoneTransition;->getFrom()Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/TimeZoneTransition;->getTime()J
-Landroid/icu/util/TimeZoneTransition;->getTo()Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/TimeZoneTransition;->time:J
-Landroid/icu/util/TimeZoneTransition;->to:Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/ULocale$Builder;->_locbld:Landroid/icu/impl/locale/InternalLocaleBuilder;
-Landroid/icu/util/ULocale$JDKLocaleHelper;-><init>()V
-Landroid/icu/util/ULocale$JDKLocaleHelper;->eDISPLAY:Ljava/lang/Object;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->eFORMAT:Ljava/lang/Object;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->getDefault(Landroid/icu/util/ULocale$Category;)Ljava/util/Locale;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->getSystemProperty(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->hasLocaleCategories()Z
-Landroid/icu/util/ULocale$JDKLocaleHelper;->hasLocaleCategories:Z
-Landroid/icu/util/ULocale$JDKLocaleHelper;->hasScriptsAndUnicodeExtensions:Z
-Landroid/icu/util/ULocale$JDKLocaleHelper;->isOriginalDefaultLocale(Ljava/util/Locale;)Z
-Landroid/icu/util/ULocale$JDKLocaleHelper;->JAVA6_MAPDATA:[[Ljava/lang/String;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mForLanguageTag:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetDefault:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetExtension:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetExtensionKeys:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetScript:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetUnicodeLocaleAttributes:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetUnicodeLocaleKeys:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mGetUnicodeLocaleType:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->mSetDefault:Ljava/lang/reflect/Method;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->setDefault(Landroid/icu/util/ULocale$Category;Ljava/util/Locale;)V
-Landroid/icu/util/ULocale$JDKLocaleHelper;->toLocale(Landroid/icu/util/ULocale;)Ljava/util/Locale;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->toLocale6(Landroid/icu/util/ULocale;)Ljava/util/Locale;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->toLocale7(Landroid/icu/util/ULocale;)Ljava/util/Locale;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->toULocale6(Ljava/util/Locale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale$JDKLocaleHelper;->toULocale7(Ljava/util/Locale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale$Minimize;->FAVOR_REGION:Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Minimize;->FAVOR_SCRIPT:Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Minimize;->valueOf(Ljava/lang/String;)Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Minimize;->values()[Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Type;-><init>()V
-Landroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
-Landroid/icu/util/ULocale;-><init>(Ljava/util/Locale;)V
-Landroid/icu/util/ULocale;->ACTUAL_LOCALE:Landroid/icu/util/ULocale$Type;
-Landroid/icu/util/ULocale;->appendTag(Ljava/lang/String;Ljava/lang/StringBuilder;)V
-Landroid/icu/util/ULocale;->base()Landroid/icu/impl/locale/BaseLocale;
-Landroid/icu/util/ULocale;->baseLocale:Landroid/icu/impl/locale/BaseLocale;
-Landroid/icu/util/ULocale;->CACHE:Landroid/icu/impl/SoftCache;
-Landroid/icu/util/ULocale;->CANONICALIZE_MAP:[[Ljava/lang/String;
-Landroid/icu/util/ULocale;->createLikelySubtagsString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->defaultCategoryLocales:[Ljava/util/Locale;
-Landroid/icu/util/ULocale;->defaultCategoryULocales:[Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale;->defaultLocale:Ljava/util/Locale;
-Landroid/icu/util/ULocale;->defaultULocale:Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale;->EMPTY_LOCALE:Ljava/util/Locale;
-Landroid/icu/util/ULocale;->EMPTY_STRING:Ljava/lang/String;
-Landroid/icu/util/ULocale;->extensions()Landroid/icu/impl/locale/LocaleExtensions;
-Landroid/icu/util/ULocale;->extensions:Landroid/icu/impl/locale/LocaleExtensions;
-Landroid/icu/util/ULocale;->getDisplayCountryInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayKeywordInternal(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayKeywordValueInternal(Landroid/icu/util/ULocale;Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayLanguageInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;Z)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayNameInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayNameWithDialectInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayScriptInContext()Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayScriptInContext(Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayScriptInContext(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayScriptInContext(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayScriptInContextInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayScriptInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getDisplayVariantInternal(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getFallbackString(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String;
-Landroid/icu/util/ULocale;->getShortestSubtagLength(Ljava/lang/String;)I
-Landroid/icu/util/ULocale;->isEmptyString(Ljava/lang/String;)Z
-Landroid/icu/util/ULocale;->LANG_DIR_STRING:Ljava/lang/String;
-Landroid/icu/util/ULocale;->locale:Ljava/util/Locale;
-Landroid/icu/util/ULocale;->localeID:Ljava/lang/String;
-Landroid/icu/util/ULocale;->LOCALE_ATTRIBUTE_KEY:Ljava/lang/String;
-Landroid/icu/util/ULocale;->lookupLikelySubtags(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->lscvToID(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/util/ULocale;->minimizeSubtags(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale$Minimize;)Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale;->nameCache:Landroid/icu/impl/CacheBase;
-Landroid/icu/util/ULocale;->parseAcceptLanguage(Ljava/lang/String;Z)[Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale;->parseTagString(Ljava/lang/String;[Ljava/lang/String;)I
-Landroid/icu/util/ULocale;->setDefault(Landroid/icu/util/ULocale$Category;Landroid/icu/util/ULocale;)V
-Landroid/icu/util/ULocale;->setDefault(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/ULocale;->UNDEFINED_LANGUAGE:Ljava/lang/String;
-Landroid/icu/util/ULocale;->UNDEFINED_REGION:Ljava/lang/String;
-Landroid/icu/util/ULocale;->UNDEFINED_SCRIPT:Ljava/lang/String;
-Landroid/icu/util/ULocale;->UNDERSCORE:C
-Landroid/icu/util/ULocale;->VALID_LOCALE:Landroid/icu/util/ULocale$Type;
-Landroid/icu/util/ULocale;->variantsToKeywords:[[Ljava/lang/String;
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;-><init>(JJJJJJ)V
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->epochOffset:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->epochOffsetM1:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->epochOffsetP1:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->fromMax:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->fromMin:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->maxRound:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->minRound:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->toMax:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->toMin:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->units:J
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;->unitsRound:J
-Landroid/icu/util/UniversalTimeScale;-><init>()V
-Landroid/icu/util/UniversalTimeScale;->days:J
-Landroid/icu/util/UniversalTimeScale;->EPOCH_OFFSET_MINUS_1_VALUE:I
-Landroid/icu/util/UniversalTimeScale;->fromRangeCheck(JI)Landroid/icu/util/UniversalTimeScale$TimeScaleData;
-Landroid/icu/util/UniversalTimeScale;->getTimeScaleData(I)Landroid/icu/util/UniversalTimeScale$TimeScaleData;
-Landroid/icu/util/UniversalTimeScale;->hours:J
-Landroid/icu/util/UniversalTimeScale;->MAX_ROUND_VALUE:I
-Landroid/icu/util/UniversalTimeScale;->MAX_SCALE_VALUE:I
-Landroid/icu/util/UniversalTimeScale;->microseconds:J
-Landroid/icu/util/UniversalTimeScale;->milliseconds:J
-Landroid/icu/util/UniversalTimeScale;->minutes:J
-Landroid/icu/util/UniversalTimeScale;->MIN_ROUND_VALUE:I
-Landroid/icu/util/UniversalTimeScale;->seconds:J
-Landroid/icu/util/UniversalTimeScale;->ticks:J
-Landroid/icu/util/UniversalTimeScale;->timeScaleTable:[Landroid/icu/util/UniversalTimeScale$TimeScaleData;
-Landroid/icu/util/UniversalTimeScale;->toBigDecimalTrunc(Landroid/icu/math/BigDecimal;I)Landroid/icu/math/BigDecimal;
-Landroid/icu/util/UniversalTimeScale;->toRangeCheck(JI)Landroid/icu/util/UniversalTimeScale$TimeScaleData;
-Landroid/icu/util/UniversalTimeScale;->UNITS_ROUND_VALUE:I
-Landroid/icu/util/UResourceBundle$RootType;->ICU:Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle$RootType;->JAVA:Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle$RootType;->MISSING:Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle$RootType;->valueOf(Ljava/lang/String;)Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle$RootType;->values()[Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle;-><init>()V
-Landroid/icu/util/UResourceBundle;->ARRAY:I
-Landroid/icu/util/UResourceBundle;->BINARY:I
-Landroid/icu/util/UResourceBundle;->findTopLevel(I)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->get(I)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->get(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBaseName()Ljava/lang/String;
-Landroid/icu/util/UResourceBundle;->getBinary()Ljava/nio/ByteBuffer;
-Landroid/icu/util/UResourceBundle;->getBinary([B)[B
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getInt()I
-Landroid/icu/util/UResourceBundle;->getIntVector()[I
-Landroid/icu/util/UResourceBundle;->getIterator()Landroid/icu/util/UResourceBundleIterator;
-Landroid/icu/util/UResourceBundle;->getLocaleID()Ljava/lang/String;
-Landroid/icu/util/UResourceBundle;->getParent()Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->getRootType(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle;->getSize()I
-Landroid/icu/util/UResourceBundle;->getString(I)Ljava/lang/String;
-Landroid/icu/util/UResourceBundle;->getStringArray()[Ljava/lang/String;
-Landroid/icu/util/UResourceBundle;->getUInt()I
-Landroid/icu/util/UResourceBundle;->getULocale()Landroid/icu/util/ULocale;
-Landroid/icu/util/UResourceBundle;->getVersion()Landroid/icu/util/VersionInfo;
-Landroid/icu/util/UResourceBundle;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->handleGet(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->handleGetKeys()Ljava/util/Enumeration;
-Landroid/icu/util/UResourceBundle;->handleGetObjectImpl(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object;
-Landroid/icu/util/UResourceBundle;->handleGetStringArray()[Ljava/lang/String;
-Landroid/icu/util/UResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundle;->INT:I
-Landroid/icu/util/UResourceBundle;->INT_VECTOR:I
-Landroid/icu/util/UResourceBundle;->isTopLevelResource()Z
-Landroid/icu/util/UResourceBundle;->NONE:I
-Landroid/icu/util/UResourceBundle;->resolveObject(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object;
-Landroid/icu/util/UResourceBundle;->ROOT_CACHE:Ljava/util/Map;
-Landroid/icu/util/UResourceBundle;->setRootType(Ljava/lang/String;Landroid/icu/util/UResourceBundle$RootType;)V
-Landroid/icu/util/UResourceBundle;->STRING:I
-Landroid/icu/util/UResourceBundle;->TABLE:I
-Landroid/icu/util/UResourceBundleIterator;-><init>(Landroid/icu/util/UResourceBundle;)V
-Landroid/icu/util/UResourceBundleIterator;->bundle:Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundleIterator;->index:I
-Landroid/icu/util/UResourceBundleIterator;->nextString()Ljava/lang/String;
-Landroid/icu/util/UResourceBundleIterator;->reset()V
-Landroid/icu/util/UResourceBundleIterator;->size:I
-Landroid/icu/util/UResourceTypeMismatchException;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/VersionInfo;-><init>(I)V
-Landroid/icu/util/VersionInfo;->getInt(IIII)I
-Landroid/icu/util/VersionInfo;->getTZDataVersion()Ljava/lang/String;
-Landroid/icu/util/VersionInfo;->getVersionString(II)Ljava/lang/String;
-Landroid/icu/util/VersionInfo;->ICU_DATA_VERSION:Landroid/icu/util/VersionInfo;
-Landroid/icu/util/VersionInfo;->ICU_DATA_VERSION_PATH:Ljava/lang/String;
-Landroid/icu/util/VersionInfo;->INVALID_VERSION_NUMBER_:Ljava/lang/String;
-Landroid/icu/util/VersionInfo;->javaVersion()Landroid/icu/util/VersionInfo;
-Landroid/icu/util/VersionInfo;->javaVersion:Landroid/icu/util/VersionInfo;
-Landroid/icu/util/VersionInfo;->LAST_BYTE_MASK_:I
-Landroid/icu/util/VersionInfo;->main([Ljava/lang/String;)V
-Landroid/icu/util/VersionInfo;->MAP_:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/util/VersionInfo;->m_version_:I
-Landroid/icu/util/VersionInfo;->TZDATA_VERSION:Ljava/lang/String;
-Landroid/icu/util/VersionInfo;->UCOL_TAILORINGS_VERSION:Landroid/icu/util/VersionInfo;
-Landroid/icu/util/VersionInfo;->UNICODE_VERSION:Landroid/icu/util/VersionInfo;
-Landroid/icu/util/VTimeZone;-><init>()V
-Landroid/icu/util/VTimeZone;-><init>(Ljava/lang/String;)V
-Landroid/icu/util/VTimeZone;->appendUNTIL(Ljava/io/Writer;Ljava/lang/String;)V
-Landroid/icu/util/VTimeZone;->beginRRULE(Ljava/io/Writer;I)V
-Landroid/icu/util/VTimeZone;->beginZoneProps(Ljava/io/Writer;ZLjava/lang/String;IIJ)V
-Landroid/icu/util/VTimeZone;->COLON:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->COMMA:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->create(Ljava/io/Reader;)Landroid/icu/util/VTimeZone;
-Landroid/icu/util/VTimeZone;->create(Ljava/lang/String;)Landroid/icu/util/VTimeZone;
-Landroid/icu/util/VTimeZone;->createRuleByRDATE(Ljava/lang/String;IIJLjava/util/List;I)Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/VTimeZone;->createRuleByRRULE(Ljava/lang/String;IIJLjava/util/List;I)Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/VTimeZone;->DEF_DSTSAVINGS:I
-Landroid/icu/util/VTimeZone;->DEF_TZSTARTTIME:J
-Landroid/icu/util/VTimeZone;->endZoneProps(Ljava/io/Writer;Z)V
-Landroid/icu/util/VTimeZone;->EQUALS_SIGN:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ERR:I
-Landroid/icu/util/VTimeZone;->getDateTimeString(J)Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->getDefaultTZName(Ljava/lang/String;Z)Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->getLastModified()Ljava/util/Date;
-Landroid/icu/util/VTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/VTimeZone;->getOffsetFromLocal(JII[I)V
-Landroid/icu/util/VTimeZone;->getPreviousTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/VTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/VTimeZone;->getTimeZoneRules(J)[Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/VTimeZone;->getTZURL()Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->getUTCDateTimeString(J)Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->hasEquivalentTransitions(Landroid/icu/util/TimeZone;JJ)Z
-Landroid/icu/util/VTimeZone;->ICAL_BEGIN:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_BEGIN_VTIMEZONE:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_BYDAY:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_BYMONTH:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_BYMONTHDAY:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_DAYLIGHT:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_DOW_NAMES:[Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_DTSTART:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_END:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_END_VTIMEZONE:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_FREQ:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_LASTMOD:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_RDATE:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_RRULE:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_STANDARD:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_TZID:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_TZNAME:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_TZOFFSETFROM:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_TZOFFSETTO:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_TZURL:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_UNTIL:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_VTIMEZONE:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICAL_YEARLY:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICU_TZINFO_PROP:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->ICU_TZVERSION:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->INI:I
-Landroid/icu/util/VTimeZone;->isEquivalentDateRule(IIILandroid/icu/util/DateTimeRule;)Z
-Landroid/icu/util/VTimeZone;->isFrozen:Z
-Landroid/icu/util/VTimeZone;->lastmod:Ljava/util/Date;
-Landroid/icu/util/VTimeZone;->load(Ljava/io/Reader;)Z
-Landroid/icu/util/VTimeZone;->MAX_TIME:J
-Landroid/icu/util/VTimeZone;->millisToOffset(I)Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->MIN_TIME:J
-Landroid/icu/util/VTimeZone;->MONTHLENGTH:[I
-Landroid/icu/util/VTimeZone;->NEWLINE:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->numToString(II)Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->offsetStrToMillis(Ljava/lang/String;)I
-Landroid/icu/util/VTimeZone;->olsonzid:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->parse()Z
-Landroid/icu/util/VTimeZone;->parseDateTimeString(Ljava/lang/String;I)J
-Landroid/icu/util/VTimeZone;->parseRRULE(Ljava/lang/String;[J)[I
-Landroid/icu/util/VTimeZone;->SEMICOLON:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->setLastModified(Ljava/util/Date;)V
-Landroid/icu/util/VTimeZone;->setTZURL(Ljava/lang/String;)V
-Landroid/icu/util/VTimeZone;->toWallTimeRule(Landroid/icu/util/DateTimeRule;II)Landroid/icu/util/DateTimeRule;
-Landroid/icu/util/VTimeZone;->tz:Landroid/icu/util/BasicTimeZone;
-Landroid/icu/util/VTimeZone;->TZI:I
-Landroid/icu/util/VTimeZone;->tzurl:Ljava/lang/String;
-Landroid/icu/util/VTimeZone;->VTZ:I
-Landroid/icu/util/VTimeZone;->vtzlines:Ljava/util/List;
-Landroid/icu/util/VTimeZone;->write(Ljava/io/Writer;)V
-Landroid/icu/util/VTimeZone;->write(Ljava/io/Writer;J)V
-Landroid/icu/util/VTimeZone;->writeFinalRule(Ljava/io/Writer;ZLandroid/icu/util/AnnualTimeZoneRule;IIJ)V
-Landroid/icu/util/VTimeZone;->writeFooter(Ljava/io/Writer;)V
-Landroid/icu/util/VTimeZone;->writeHeader(Ljava/io/Writer;)V
-Landroid/icu/util/VTimeZone;->writeSimple(Ljava/io/Writer;J)V
-Landroid/icu/util/VTimeZone;->writeZone(Ljava/io/Writer;Landroid/icu/util/BasicTimeZone;[Ljava/lang/String;)V
-Landroid/icu/util/VTimeZone;->writeZonePropsByDOM(Ljava/io/Writer;ZLjava/lang/String;IIIIJJ)V
-Landroid/icu/util/VTimeZone;->writeZonePropsByDOW(Ljava/io/Writer;ZLjava/lang/String;IIIIIJJ)V
-Landroid/icu/util/VTimeZone;->writeZonePropsByDOW_GEQ_DOM(Ljava/io/Writer;ZLjava/lang/String;IIIIIJJ)V
-Landroid/icu/util/VTimeZone;->writeZonePropsByDOW_GEQ_DOM_sub(Ljava/io/Writer;IIIIJI)V
-Landroid/icu/util/VTimeZone;->writeZonePropsByDOW_LEQ_DOM(Ljava/io/Writer;ZLjava/lang/String;IIIIIJJ)V
-Landroid/icu/util/VTimeZone;->writeZonePropsByTime(Ljava/io/Writer;ZLjava/lang/String;IIJZ)V
Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->mEnabled:Z
Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->mRevoked:Z
Landroid/inputmethodservice/AbstractInputMethodService;->exposeContent(Landroid/view/inputmethod/InputContentInfo;Landroid/view/inputmethod/InputConnection;)V
@@ -65381,117 +58139,6 @@ Landroid/speech/tts/Voice;->mLocale:Ljava/util/Locale;
Landroid/speech/tts/Voice;->mName:Ljava/lang/String;
Landroid/speech/tts/Voice;->mQuality:I
Landroid/speech/tts/Voice;->mRequiresNetworkConnection:Z
-Landroid/system/ErrnoException;->functionName:Ljava/lang/String;
-Landroid/system/ErrnoException;->rethrowAsIOException()Ljava/io/IOException;
-Landroid/system/ErrnoException;->rethrowAsSocketException()Ljava/net/SocketException;
-Landroid/system/GaiException;-><init>(Ljava/lang/String;I)V
-Landroid/system/GaiException;-><init>(Ljava/lang/String;ILjava/lang/Throwable;)V
-Landroid/system/GaiException;->error:I
-Landroid/system/GaiException;->functionName:Ljava/lang/String;
-Landroid/system/GaiException;->rethrowAsUnknownHostException()Ljava/net/UnknownHostException;
-Landroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException;
-Landroid/system/Int32Ref;-><init>(I)V
-Landroid/system/NetlinkSocketAddress;-><init>()V
-Landroid/system/NetlinkSocketAddress;-><init>(I)V
-Landroid/system/NetlinkSocketAddress;->getGroupsMask()I
-Landroid/system/NetlinkSocketAddress;->getPortId()I
-Landroid/system/NetlinkSocketAddress;->nlGroupsMask:I
-Landroid/system/NetlinkSocketAddress;->nlPortId:I
-Landroid/system/Os;-><init>()V
-Landroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
-Landroid/system/Os;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;
-Landroid/system/Os;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData;
-Landroid/system/Os;->capset(Landroid/system/StructCapUserHeader;[Landroid/system/StructCapUserData;)V
-Landroid/system/Os;->fcntlFlock(Ljava/io/FileDescriptor;ILandroid/system/StructFlock;)I
-Landroid/system/Os;->fcntlInt(Ljava/io/FileDescriptor;II)I
-Landroid/system/Os;->fcntlVoid(Ljava/io/FileDescriptor;I)I
-Landroid/system/Os;->getifaddrs()[Landroid/system/StructIfaddrs;
-Landroid/system/Os;->getnameinfo(Ljava/net/InetAddress;I)Ljava/lang/String;
-Landroid/system/Os;->getpgid(I)I
-Landroid/system/Os;->getpwnam(Ljava/lang/String;)Landroid/system/StructPasswd;
-Landroid/system/Os;->getpwuid(I)Landroid/system/StructPasswd;
-Landroid/system/Os;->getrlimit(I)Landroid/system/StructRlimit;
-Landroid/system/Os;->getsockoptByte(Ljava/io/FileDescriptor;II)I
-Landroid/system/Os;->getsockoptInAddr(Ljava/io/FileDescriptor;II)Ljava/net/InetAddress;
-Landroid/system/Os;->getsockoptInt(Ljava/io/FileDescriptor;II)I
-Landroid/system/Os;->getsockoptLinger(Ljava/io/FileDescriptor;II)Landroid/system/StructLinger;
-Landroid/system/Os;->getsockoptTimeval(Ljava/io/FileDescriptor;II)Landroid/system/StructTimeval;
-Landroid/system/Os;->getsockoptUcred(Ljava/io/FileDescriptor;II)Landroid/system/StructUcred;
-Landroid/system/Os;->ioctlInetAddress(Ljava/io/FileDescriptor;ILjava/lang/String;)Ljava/net/InetAddress;
-Landroid/system/Os;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
-Landroid/system/Os;->pipe2(I)[Ljava/io/FileDescriptor;
-Landroid/system/Os;->realpath(Ljava/lang/String;)Ljava/lang/String;
-Landroid/system/Os;->setpgid(II)V
-Landroid/system/Os;->setregid(II)V
-Landroid/system/Os;->setreuid(II)V
-Landroid/system/Os;->setsockoptByte(Ljava/io/FileDescriptor;III)V
-Landroid/system/Os;->setsockoptGroupReq(Ljava/io/FileDescriptor;IILandroid/system/StructGroupReq;)V
-Landroid/system/Os;->setsockoptIpMreqn(Ljava/io/FileDescriptor;III)V
-Landroid/system/Os;->setsockoptLinger(Ljava/io/FileDescriptor;IILandroid/system/StructLinger;)V
-Landroid/system/Os;->splice(Ljava/io/FileDescriptor;Landroid/system/Int64Ref;Ljava/io/FileDescriptor;Landroid/system/Int64Ref;JI)J
-Landroid/system/Os;->unlink(Ljava/lang/String;)V
-Landroid/system/Os;->waitpid(ILandroid/system/Int32Ref;I)I
-Landroid/system/PacketSocketAddress;-><init>(SISB[B)V
-Landroid/system/PacketSocketAddress;->sll_addr:[B
-Landroid/system/PacketSocketAddress;->sll_hatype:S
-Landroid/system/PacketSocketAddress;->sll_ifindex:I
-Landroid/system/PacketSocketAddress;->sll_pkttype:B
-Landroid/system/PacketSocketAddress;->sll_protocol:S
-Landroid/system/StructAddrinfo;-><init>()V
-Landroid/system/StructAddrinfo;->ai_addr:Ljava/net/InetAddress;
-Landroid/system/StructAddrinfo;->ai_family:I
-Landroid/system/StructAddrinfo;->ai_flags:I
-Landroid/system/StructAddrinfo;->ai_next:Landroid/system/StructAddrinfo;
-Landroid/system/StructAddrinfo;->ai_protocol:I
-Landroid/system/StructAddrinfo;->ai_socktype:I
-Landroid/system/StructCapUserData;-><init>(III)V
-Landroid/system/StructCapUserData;->effective:I
-Landroid/system/StructCapUserData;->inheritable:I
-Landroid/system/StructCapUserData;->permitted:I
-Landroid/system/StructCapUserHeader;-><init>(II)V
-Landroid/system/StructCapUserHeader;->pid:I
-Landroid/system/StructCapUserHeader;->version:I
-Landroid/system/StructFlock;-><init>()V
-Landroid/system/StructFlock;->l_len:J
-Landroid/system/StructFlock;->l_pid:I
-Landroid/system/StructFlock;->l_start:J
-Landroid/system/StructFlock;->l_type:S
-Landroid/system/StructFlock;->l_whence:S
-Landroid/system/StructGroupReq;-><init>(ILjava/net/InetAddress;)V
-Landroid/system/StructGroupReq;->gr_group:Ljava/net/InetAddress;
-Landroid/system/StructGroupReq;->gr_interface:I
-Landroid/system/StructIcmpHdr;-><init>()V
-Landroid/system/StructIcmpHdr;->getBytes()[B
-Landroid/system/StructIcmpHdr;->IcmpEchoHdr(ZI)Landroid/system/StructIcmpHdr;
-Landroid/system/StructIcmpHdr;->packet:[B
-Landroid/system/StructIfaddrs;-><init>(Ljava/lang/String;ILjava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;[B)V
-Landroid/system/StructIfaddrs;->hwaddr:[B
-Landroid/system/StructIfaddrs;->ifa_addr:Ljava/net/InetAddress;
-Landroid/system/StructIfaddrs;->ifa_broadaddr:Ljava/net/InetAddress;
-Landroid/system/StructIfaddrs;->ifa_flags:I
-Landroid/system/StructIfaddrs;->ifa_name:Ljava/lang/String;
-Landroid/system/StructIfaddrs;->ifa_netmask:Ljava/net/InetAddress;
-Landroid/system/StructLinger;-><init>(II)V
-Landroid/system/StructLinger;->isOn()Z
-Landroid/system/StructLinger;->l_linger:I
-Landroid/system/StructLinger;->l_onoff:I
-Landroid/system/StructPasswd;-><init>(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;)V
-Landroid/system/StructPasswd;->pw_dir:Ljava/lang/String;
-Landroid/system/StructPasswd;->pw_gid:I
-Landroid/system/StructPasswd;->pw_name:Ljava/lang/String;
-Landroid/system/StructPasswd;->pw_shell:Ljava/lang/String;
-Landroid/system/StructPasswd;->pw_uid:I
-Landroid/system/StructRlimit;-><init>(JJ)V
-Landroid/system/StructRlimit;->rlim_cur:J
-Landroid/system/StructRlimit;->rlim_max:J
-Landroid/system/StructTimeval;-><init>(JJ)V
-Landroid/system/StructTimeval;->toMillis()J
-Landroid/system/StructTimeval;->tv_sec:J
-Landroid/system/StructTimeval;->tv_usec:J
-Landroid/system/StructUcred;-><init>(III)V
-Landroid/system/StructUcred;->gid:I
-Landroid/system/StructUcred;->pid:I
-Landroid/system/StructUcred;->uid:I
Landroid/telecom/AudioState;->listAppend(Ljava/lang/StringBuffer;Ljava/lang/String;)V
Landroid/telecom/AudioState;->ROUTE_ALL:I
Landroid/telecom/AuthenticatorService;-><init>()V
@@ -101216,1154 +93863,6 @@ Lcom/android/internal/widget/VerifyCredentialResponse;->setPayload([B)V
Lcom/android/internal/widget/VerifyCredentialResponse;->setTimeout(I)V
Lcom/android/internal/widget/VerifyCredentialResponse;->stripPayload()Lcom/android/internal/widget/VerifyCredentialResponse;
Lcom/android/internal/widget/VerifyCredentialResponse;->TAG:Ljava/lang/String;
-Lcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V
-Lcom/android/okhttp/Address;->authenticator:Lcom/android/okhttp/Authenticator;
-Lcom/android/okhttp/Address;->certificatePinner:Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/Address;->connectionSpecs:Ljava/util/List;
-Lcom/android/okhttp/Address;->dns:Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/Address;->getAuthenticator()Lcom/android/okhttp/Authenticator;
-Lcom/android/okhttp/Address;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/Address;->getConnectionSpecs()Ljava/util/List;
-Lcom/android/okhttp/Address;->getDns()Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/Address;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
-Lcom/android/okhttp/Address;->getProtocols()Ljava/util/List;
-Lcom/android/okhttp/Address;->getProxy()Ljava/net/Proxy;
-Lcom/android/okhttp/Address;->getProxySelector()Ljava/net/ProxySelector;
-Lcom/android/okhttp/Address;->getSocketFactory()Ljavax/net/SocketFactory;
-Lcom/android/okhttp/Address;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
-Lcom/android/okhttp/Address;->getUriHost()Ljava/lang/String;
-Lcom/android/okhttp/Address;->getUriPort()I
-Lcom/android/okhttp/Address;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
-Lcom/android/okhttp/Address;->protocols:Ljava/util/List;
-Lcom/android/okhttp/Address;->proxy:Ljava/net/Proxy;
-Lcom/android/okhttp/Address;->proxySelector:Ljava/net/ProxySelector;
-Lcom/android/okhttp/Address;->socketFactory:Ljavax/net/SocketFactory;
-Lcom/android/okhttp/Address;->sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
-Lcom/android/okhttp/Address;->url()Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/Address;->url:Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/AndroidShimResponseCache;-><init>(Lcom/android/okhttp/Cache;)V
-Lcom/android/okhttp/AndroidShimResponseCache;->close()V
-Lcom/android/okhttp/AndroidShimResponseCache;->create(Ljava/io/File;J)Lcom/android/okhttp/AndroidShimResponseCache;
-Lcom/android/okhttp/AndroidShimResponseCache;->delegate:Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/AndroidShimResponseCache;->delete()V
-Lcom/android/okhttp/AndroidShimResponseCache;->flush()V
-Lcom/android/okhttp/AndroidShimResponseCache;->getCache()Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/AndroidShimResponseCache;->getHitCount()I
-Lcom/android/okhttp/AndroidShimResponseCache;->getNetworkCount()I
-Lcom/android/okhttp/AndroidShimResponseCache;->getRequestCount()I
-Lcom/android/okhttp/AndroidShimResponseCache;->isEquivalent(Ljava/io/File;J)Z
-Lcom/android/okhttp/AndroidShimResponseCache;->maxSize()J
-Lcom/android/okhttp/AndroidShimResponseCache;->size()J
-Lcom/android/okhttp/Authenticator;->authenticate(Ljava/net/Proxy;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Authenticator;->authenticateProxy(Ljava/net/Proxy;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Cache$CacheRequestImpl;->abort()V
-Lcom/android/okhttp/Cache$CacheRequestImpl;->body()Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/Cache$CacheRequestImpl;->body:Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/Cache$CacheRequestImpl;->cacheOut:Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/Cache$CacheRequestImpl;->done:Z
-Lcom/android/okhttp/Cache$CacheRequestImpl;->editor:Lcom/android/okhttp/internal/DiskLruCache$Editor;
-Lcom/android/okhttp/Cache$CacheResponseBody;-><init>(Lcom/android/okhttp/internal/DiskLruCache$Snapshot;Ljava/lang/String;Ljava/lang/String;)V
-Lcom/android/okhttp/Cache$CacheResponseBody;->bodySource:Lcom/android/okhttp/okio/BufferedSource;
-Lcom/android/okhttp/Cache$CacheResponseBody;->contentLength()J
-Lcom/android/okhttp/Cache$CacheResponseBody;->contentLength:Ljava/lang/String;
-Lcom/android/okhttp/Cache$CacheResponseBody;->contentType()Lcom/android/okhttp/MediaType;
-Lcom/android/okhttp/Cache$CacheResponseBody;->contentType:Ljava/lang/String;
-Lcom/android/okhttp/Cache$CacheResponseBody;->snapshot:Lcom/android/okhttp/internal/DiskLruCache$Snapshot;
-Lcom/android/okhttp/Cache$CacheResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource;
-Lcom/android/okhttp/Cache$Entry;-><init>(Lcom/android/okhttp/okio/Source;)V
-Lcom/android/okhttp/Cache$Entry;-><init>(Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/Cache$Entry;->code:I
-Lcom/android/okhttp/Cache$Entry;->handshake:Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Cache$Entry;->isHttps()Z
-Lcom/android/okhttp/Cache$Entry;->matches(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)Z
-Lcom/android/okhttp/Cache$Entry;->message:Ljava/lang/String;
-Lcom/android/okhttp/Cache$Entry;->protocol:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Cache$Entry;->readCertificateList(Lcom/android/okhttp/okio/BufferedSource;)Ljava/util/List;
-Lcom/android/okhttp/Cache$Entry;->requestMethod:Ljava/lang/String;
-Lcom/android/okhttp/Cache$Entry;->response(Lcom/android/okhttp/Request;Lcom/android/okhttp/internal/DiskLruCache$Snapshot;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Cache$Entry;->responseHeaders:Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Cache$Entry;->url:Ljava/lang/String;
-Lcom/android/okhttp/Cache$Entry;->varyHeaders:Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Cache$Entry;->writeCertList(Lcom/android/okhttp/okio/BufferedSink;Ljava/util/List;)V
-Lcom/android/okhttp/Cache$Entry;->writeTo(Lcom/android/okhttp/internal/DiskLruCache$Editor;)V
-Lcom/android/okhttp/Cache;-><init>(Ljava/io/File;J)V
-Lcom/android/okhttp/Cache;-><init>(Ljava/io/File;JLcom/android/okhttp/internal/io/FileSystem;)V
-Lcom/android/okhttp/Cache;->abortQuietly(Lcom/android/okhttp/internal/DiskLruCache$Editor;)V
-Lcom/android/okhttp/Cache;->cache:Lcom/android/okhttp/internal/DiskLruCache;
-Lcom/android/okhttp/Cache;->close()V
-Lcom/android/okhttp/Cache;->delete()V
-Lcom/android/okhttp/Cache;->ENTRY_BODY:I
-Lcom/android/okhttp/Cache;->ENTRY_COUNT:I
-Lcom/android/okhttp/Cache;->ENTRY_METADATA:I
-Lcom/android/okhttp/Cache;->evictAll()V
-Lcom/android/okhttp/Cache;->flush()V
-Lcom/android/okhttp/Cache;->get(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Cache;->getDirectory()Ljava/io/File;
-Lcom/android/okhttp/Cache;->getHitCount()I
-Lcom/android/okhttp/Cache;->getMaxSize()J
-Lcom/android/okhttp/Cache;->getNetworkCount()I
-Lcom/android/okhttp/Cache;->getRequestCount()I
-Lcom/android/okhttp/Cache;->getSize()J
-Lcom/android/okhttp/Cache;->getWriteAbortCount()I
-Lcom/android/okhttp/Cache;->getWriteSuccessCount()I
-Lcom/android/okhttp/Cache;->hitCount:I
-Lcom/android/okhttp/Cache;->initialize()V
-Lcom/android/okhttp/Cache;->internalCache:Lcom/android/okhttp/internal/InternalCache;
-Lcom/android/okhttp/Cache;->isClosed()Z
-Lcom/android/okhttp/Cache;->networkCount:I
-Lcom/android/okhttp/Cache;->put(Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/CacheRequest;
-Lcom/android/okhttp/Cache;->readInt(Lcom/android/okhttp/okio/BufferedSource;)I
-Lcom/android/okhttp/Cache;->remove(Lcom/android/okhttp/Request;)V
-Lcom/android/okhttp/Cache;->requestCount:I
-Lcom/android/okhttp/Cache;->trackConditionalCacheHit()V
-Lcom/android/okhttp/Cache;->trackResponse(Lcom/android/okhttp/internal/http/CacheStrategy;)V
-Lcom/android/okhttp/Cache;->update(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/Cache;->urls()Ljava/util/Iterator;
-Lcom/android/okhttp/Cache;->urlToKey(Lcom/android/okhttp/Request;)Ljava/lang/String;
-Lcom/android/okhttp/Cache;->VERSION:I
-Lcom/android/okhttp/Cache;->writeAbortCount:I
-Lcom/android/okhttp/Cache;->writeSuccessCount:I
-Lcom/android/okhttp/CacheControl$Builder;-><init>()V
-Lcom/android/okhttp/CacheControl$Builder;->build()Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/CacheControl$Builder;->maxAge(ILjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->maxAgeSeconds:I
-Lcom/android/okhttp/CacheControl$Builder;->maxStale(ILjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->maxStaleSeconds:I
-Lcom/android/okhttp/CacheControl$Builder;->minFresh(ILjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->minFreshSeconds:I
-Lcom/android/okhttp/CacheControl$Builder;->noCache()Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->noCache:Z
-Lcom/android/okhttp/CacheControl$Builder;->noStore()Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->noStore:Z
-Lcom/android/okhttp/CacheControl$Builder;->noTransform()Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->noTransform:Z
-Lcom/android/okhttp/CacheControl$Builder;->onlyIfCached()Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl$Builder;->onlyIfCached:Z
-Lcom/android/okhttp/CacheControl;-><init>(Lcom/android/okhttp/CacheControl$Builder;)V
-Lcom/android/okhttp/CacheControl;-><init>(ZZIIZZZIIZZLjava/lang/String;)V
-Lcom/android/okhttp/CacheControl;->FORCE_CACHE:Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/CacheControl;->FORCE_NETWORK:Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/CacheControl;->headerValue()Ljava/lang/String;
-Lcom/android/okhttp/CacheControl;->headerValue:Ljava/lang/String;
-Lcom/android/okhttp/CacheControl;->isPrivate()Z
-Lcom/android/okhttp/CacheControl;->isPrivate:Z
-Lcom/android/okhttp/CacheControl;->isPublic()Z
-Lcom/android/okhttp/CacheControl;->isPublic:Z
-Lcom/android/okhttp/CacheControl;->maxAgeSeconds()I
-Lcom/android/okhttp/CacheControl;->maxAgeSeconds:I
-Lcom/android/okhttp/CacheControl;->maxStaleSeconds()I
-Lcom/android/okhttp/CacheControl;->maxStaleSeconds:I
-Lcom/android/okhttp/CacheControl;->minFreshSeconds()I
-Lcom/android/okhttp/CacheControl;->minFreshSeconds:I
-Lcom/android/okhttp/CacheControl;->mustRevalidate()Z
-Lcom/android/okhttp/CacheControl;->mustRevalidate:Z
-Lcom/android/okhttp/CacheControl;->noCache()Z
-Lcom/android/okhttp/CacheControl;->noCache:Z
-Lcom/android/okhttp/CacheControl;->noStore()Z
-Lcom/android/okhttp/CacheControl;->noStore:Z
-Lcom/android/okhttp/CacheControl;->noTransform()Z
-Lcom/android/okhttp/CacheControl;->noTransform:Z
-Lcom/android/okhttp/CacheControl;->onlyIfCached()Z
-Lcom/android/okhttp/CacheControl;->onlyIfCached:Z
-Lcom/android/okhttp/CacheControl;->parse(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/CacheControl;->sMaxAgeSeconds()I
-Lcom/android/okhttp/CacheControl;->sMaxAgeSeconds:I
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;->connection()Lcom/android/okhttp/Connection;
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;->forWebSocket:Z
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;->index:I
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;->proceed(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;->request()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Call$AsyncCall;->cancel()V
-Lcom/android/okhttp/Call$AsyncCall;->execute()V
-Lcom/android/okhttp/Call$AsyncCall;->forWebSocket:Z
-Lcom/android/okhttp/Call$AsyncCall;->get()Lcom/android/okhttp/Call;
-Lcom/android/okhttp/Call$AsyncCall;->host()Ljava/lang/String;
-Lcom/android/okhttp/Call$AsyncCall;->request()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Call$AsyncCall;->responseCallback:Lcom/android/okhttp/Callback;
-Lcom/android/okhttp/Call$AsyncCall;->tag()Ljava/lang/Object;
-Lcom/android/okhttp/Call;-><init>(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;)V
-Lcom/android/okhttp/Call;->cancel()V
-Lcom/android/okhttp/Call;->canceled:Z
-Lcom/android/okhttp/Call;->client:Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/Call;->engine:Lcom/android/okhttp/internal/http/HttpEngine;
-Lcom/android/okhttp/Call;->enqueue(Lcom/android/okhttp/Callback;)V
-Lcom/android/okhttp/Call;->enqueue(Lcom/android/okhttp/Callback;Z)V
-Lcom/android/okhttp/Call;->execute()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Call;->executed:Z
-Lcom/android/okhttp/Call;->getResponse(Lcom/android/okhttp/Request;Z)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Call;->getResponseWithInterceptorChain(Z)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Call;->isCanceled()Z
-Lcom/android/okhttp/Call;->isExecuted()Z
-Lcom/android/okhttp/Call;->originalRequest:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Call;->tag()Ljava/lang/Object;
-Lcom/android/okhttp/Call;->toLoggableString()Ljava/lang/String;
-Lcom/android/okhttp/Callback;->onFailure(Lcom/android/okhttp/Request;Ljava/io/IOException;)V
-Lcom/android/okhttp/Callback;->onResponse(Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/CertificatePinner$Builder;-><init>()V
-Lcom/android/okhttp/CertificatePinner$Builder;->build()Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/CertificatePinner$Builder;->hostnameToPins:Ljava/util/Map;
-Lcom/android/okhttp/CertificatePinner;-><init>(Lcom/android/okhttp/CertificatePinner$Builder;)V
-Lcom/android/okhttp/CertificatePinner;->check(Ljava/lang/String;Ljava/util/List;)V
-Lcom/android/okhttp/CertificatePinner;->DEFAULT:Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/CertificatePinner;->findMatchingPins(Ljava/lang/String;)Ljava/util/Set;
-Lcom/android/okhttp/CertificatePinner;->hostnameToPins:Ljava/util/Map;
-Lcom/android/okhttp/CertificatePinner;->pin(Ljava/security/cert/Certificate;)Ljava/lang/String;
-Lcom/android/okhttp/CertificatePinner;->sha1(Ljava/security/cert/X509Certificate;)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/Challenge;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Lcom/android/okhttp/Challenge;->getRealm()Ljava/lang/String;
-Lcom/android/okhttp/Challenge;->getScheme()Ljava/lang/String;
-Lcom/android/okhttp/Challenge;->realm:Ljava/lang/String;
-Lcom/android/okhttp/Challenge;->scheme:Ljava/lang/String;
-Lcom/android/okhttp/CipherSuite;->forJavaName(Ljava/lang/String;)Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->javaName:Ljava/lang/String;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DHE_RSA_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_EXPORT_WITH_RC4_40_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_DH_anon_WITH_RC4_128_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_ECDSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDHE_RSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_anon_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_ECDSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_ECDH_RSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_EMPTY_RENEGOTIATION_INFO_SCSV:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_RC4_40_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_EXPORT_WITH_RC4_40_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_3DES_EDE_CBC_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_DES_CBC_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_RC4_128_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_KRB5_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_EXPORT_WITH_RC4_40_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_3DES_EDE_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_128_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_128_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_128_GCM_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_256_CBC_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_256_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_AES_256_GCM_SHA384:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_DES_CBC_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_NULL_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_NULL_SHA256:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_NULL_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_RC4_128_MD5:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;->values()[Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/Connection;->getHandshake()Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Connection;->getProtocol()Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Connection;->getRoute()Lcom/android/okhttp/Route;
-Lcom/android/okhttp/ConnectionPool;-><init>(IJ)V
-Lcom/android/okhttp/ConnectionPool;-><init>(IJLjava/util/concurrent/TimeUnit;)V
-Lcom/android/okhttp/ConnectionPool;->cleanup(J)J
-Lcom/android/okhttp/ConnectionPool;->cleanupRunnable:Ljava/lang/Runnable;
-Lcom/android/okhttp/ConnectionPool;->connectionBecameIdle(Lcom/android/okhttp/internal/io/RealConnection;)Z
-Lcom/android/okhttp/ConnectionPool;->DEFAULT_KEEP_ALIVE_DURATION_MS:J
-Lcom/android/okhttp/ConnectionPool;->evictAll()V
-Lcom/android/okhttp/ConnectionPool;->executor:Ljava/util/concurrent/Executor;
-Lcom/android/okhttp/ConnectionPool;->get(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/ConnectionPool;->getConnectionCount()I
-Lcom/android/okhttp/ConnectionPool;->getDefault()Lcom/android/okhttp/ConnectionPool;
-Lcom/android/okhttp/ConnectionPool;->getHttpConnectionCount()I
-Lcom/android/okhttp/ConnectionPool;->getIdleConnectionCount()I
-Lcom/android/okhttp/ConnectionPool;->getMultiplexedConnectionCount()I
-Lcom/android/okhttp/ConnectionPool;->getSpdyConnectionCount()I
-Lcom/android/okhttp/ConnectionPool;->pruneAndGetAllocationCount(Lcom/android/okhttp/internal/io/RealConnection;J)I
-Lcom/android/okhttp/ConnectionPool;->put(Lcom/android/okhttp/internal/io/RealConnection;)V
-Lcom/android/okhttp/ConnectionPool;->routeDatabase:Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/ConnectionPool;->setCleanupRunnableForTest(Ljava/lang/Runnable;)V
-Lcom/android/okhttp/ConnectionSpec$Builder;-><init>(Lcom/android/okhttp/ConnectionSpec;)V
-Lcom/android/okhttp/ConnectionSpec$Builder;-><init>(Z)V
-Lcom/android/okhttp/ConnectionSpec$Builder;->allEnabledCipherSuites()Lcom/android/okhttp/ConnectionSpec$Builder;
-Lcom/android/okhttp/ConnectionSpec$Builder;->allEnabledTlsVersions()Lcom/android/okhttp/ConnectionSpec$Builder;
-Lcom/android/okhttp/ConnectionSpec$Builder;->build()Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpec$Builder;->cipherSuites:[Ljava/lang/String;
-Lcom/android/okhttp/ConnectionSpec$Builder;->supportsTlsExtensions(Z)Lcom/android/okhttp/ConnectionSpec$Builder;
-Lcom/android/okhttp/ConnectionSpec$Builder;->supportsTlsExtensions:Z
-Lcom/android/okhttp/ConnectionSpec$Builder;->tls:Z
-Lcom/android/okhttp/ConnectionSpec$Builder;->tlsVersions:[Ljava/lang/String;
-Lcom/android/okhttp/ConnectionSpec;-><init>(Lcom/android/okhttp/ConnectionSpec$Builder;)V
-Lcom/android/okhttp/ConnectionSpec;->apply(Ljavax/net/ssl/SSLSocket;Z)V
-Lcom/android/okhttp/ConnectionSpec;->APPROVED_CIPHER_SUITES:[Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/ConnectionSpec;->cipherSuites()Ljava/util/List;
-Lcom/android/okhttp/ConnectionSpec;->cipherSuites:[Ljava/lang/String;
-Lcom/android/okhttp/ConnectionSpec;->CLEARTEXT:Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpec;->COMPATIBLE_TLS:Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpec;->isCompatible(Ljavax/net/ssl/SSLSocket;)Z
-Lcom/android/okhttp/ConnectionSpec;->isTls()Z
-Lcom/android/okhttp/ConnectionSpec;->MODERN_TLS:Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpec;->nonEmptyIntersection([Ljava/lang/String;[Ljava/lang/String;)Z
-Lcom/android/okhttp/ConnectionSpec;->supportedSpec(Ljavax/net/ssl/SSLSocket;Z)Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpec;->supportsTlsExtensions()Z
-Lcom/android/okhttp/ConnectionSpec;->supportsTlsExtensions:Z
-Lcom/android/okhttp/ConnectionSpec;->tls:Z
-Lcom/android/okhttp/ConnectionSpec;->tlsVersions()Ljava/util/List;
-Lcom/android/okhttp/ConnectionSpec;->tlsVersions:[Ljava/lang/String;
-Lcom/android/okhttp/Dispatcher;-><init>()V
-Lcom/android/okhttp/Dispatcher;-><init>(Ljava/util/concurrent/ExecutorService;)V
-Lcom/android/okhttp/Dispatcher;->cancel(Ljava/lang/Object;)V
-Lcom/android/okhttp/Dispatcher;->enqueue(Lcom/android/okhttp/Call$AsyncCall;)V
-Lcom/android/okhttp/Dispatcher;->executed(Lcom/android/okhttp/Call;)V
-Lcom/android/okhttp/Dispatcher;->executedCalls:Ljava/util/Deque;
-Lcom/android/okhttp/Dispatcher;->executorService:Ljava/util/concurrent/ExecutorService;
-Lcom/android/okhttp/Dispatcher;->finished(Lcom/android/okhttp/Call$AsyncCall;)V
-Lcom/android/okhttp/Dispatcher;->finished(Lcom/android/okhttp/Call;)V
-Lcom/android/okhttp/Dispatcher;->getExecutorService()Ljava/util/concurrent/ExecutorService;
-Lcom/android/okhttp/Dispatcher;->getMaxRequests()I
-Lcom/android/okhttp/Dispatcher;->getMaxRequestsPerHost()I
-Lcom/android/okhttp/Dispatcher;->getQueuedCallCount()I
-Lcom/android/okhttp/Dispatcher;->getRunningCallCount()I
-Lcom/android/okhttp/Dispatcher;->maxRequests:I
-Lcom/android/okhttp/Dispatcher;->maxRequestsPerHost:I
-Lcom/android/okhttp/Dispatcher;->promoteCalls()V
-Lcom/android/okhttp/Dispatcher;->readyCalls:Ljava/util/Deque;
-Lcom/android/okhttp/Dispatcher;->runningCalls:Ljava/util/Deque;
-Lcom/android/okhttp/Dispatcher;->runningCallsForHost(Lcom/android/okhttp/Call$AsyncCall;)I
-Lcom/android/okhttp/Dispatcher;->setMaxRequests(I)V
-Lcom/android/okhttp/Dispatcher;->setMaxRequestsPerHost(I)V
-Lcom/android/okhttp/Dns;->lookup(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/Dns;->SYSTEM:Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/Handshake;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
-Lcom/android/okhttp/Handshake;->cipherSuite()Ljava/lang/String;
-Lcom/android/okhttp/Handshake;->cipherSuite:Ljava/lang/String;
-Lcom/android/okhttp/Handshake;->get(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Handshake;->get(Ljavax/net/ssl/SSLSession;)Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Handshake;->localCertificates()Ljava/util/List;
-Lcom/android/okhttp/Handshake;->localCertificates:Ljava/util/List;
-Lcom/android/okhttp/Handshake;->localPrincipal()Ljava/security/Principal;
-Lcom/android/okhttp/Handshake;->peerCertificates()Ljava/util/List;
-Lcom/android/okhttp/Handshake;->peerCertificates:Ljava/util/List;
-Lcom/android/okhttp/Handshake;->peerPrincipal()Ljava/security/Principal;
-Lcom/android/okhttp/Headers$Builder;-><init>()V
-Lcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers$Builder;->build()Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Headers$Builder;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V
-Lcom/android/okhttp/Headers$Builder;->get(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/Headers$Builder;->namesAndValues:Ljava/util/List;
-Lcom/android/okhttp/Headers$Builder;->removeAll(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers$Builder;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers;-><init>(Lcom/android/okhttp/Headers$Builder;)V
-Lcom/android/okhttp/Headers;-><init>([Ljava/lang/String;)V
-Lcom/android/okhttp/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/Headers;->get([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/Headers;->getDate(Ljava/lang/String;)Ljava/util/Date;
-Lcom/android/okhttp/Headers;->name(I)Ljava/lang/String;
-Lcom/android/okhttp/Headers;->names()Ljava/util/Set;
-Lcom/android/okhttp/Headers;->namesAndValues:[Ljava/lang/String;
-Lcom/android/okhttp/Headers;->newBuilder()Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers;->of(Ljava/util/Map;)Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Headers;->size()I
-Lcom/android/okhttp/Headers;->toMultimap()Ljava/util/Map;
-Lcom/android/okhttp/Headers;->value(I)Ljava/lang/String;
-Lcom/android/okhttp/Headers;->values(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->INVALID_HOST:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->INVALID_PORT:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->MISSING_SCHEME:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->SUCCESS:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->UNSUPPORTED_SCHEME:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->values()[Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder;-><init>()V
-Lcom/android/okhttp/HttpUrl$Builder;->addEncodedPathSegment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->addEncodedQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->addPathSegment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->addQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->canonicalizeHost(Ljava/lang/String;II)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z
-Lcom/android/okhttp/HttpUrl$Builder;->decodeIpv4Suffix(Ljava/lang/String;II[BI)Z
-Lcom/android/okhttp/HttpUrl$Builder;->decodeIpv6(Ljava/lang/String;II)Ljava/net/InetAddress;
-Lcom/android/okhttp/HttpUrl$Builder;->domainToAscii(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->effectivePort()I
-Lcom/android/okhttp/HttpUrl$Builder;->encodedFragment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedFragment:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedPassword(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedPassword:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedPath(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedPathSegments:Ljava/util/List;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedQueryNamesAndValues:Ljava/util/List;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedUsername(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->encodedUsername:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->fragment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->host(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->host:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->inet6AddressToAscii([B)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->isDot(Ljava/lang/String;)Z
-Lcom/android/okhttp/HttpUrl$Builder;->isDotDot(Ljava/lang/String;)Z
-Lcom/android/okhttp/HttpUrl$Builder;->parse(Lcom/android/okhttp/HttpUrl;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder;->parsePort(Ljava/lang/String;II)I
-Lcom/android/okhttp/HttpUrl$Builder;->password(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->pop()V
-Lcom/android/okhttp/HttpUrl$Builder;->port(I)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->port:I
-Lcom/android/okhttp/HttpUrl$Builder;->portColonOffset(Ljava/lang/String;II)I
-Lcom/android/okhttp/HttpUrl$Builder;->push(Ljava/lang/String;IIZZ)V
-Lcom/android/okhttp/HttpUrl$Builder;->query(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->reencodeForUri()Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->removeAllCanonicalQueryParameters(Ljava/lang/String;)V
-Lcom/android/okhttp/HttpUrl$Builder;->removeAllEncodedQueryParameters(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->removeAllQueryParameters(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->removePathSegment(I)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->resolvePath(Ljava/lang/String;II)V
-Lcom/android/okhttp/HttpUrl$Builder;->scheme(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->scheme:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl$Builder;->schemeDelimiterOffset(Ljava/lang/String;II)I
-Lcom/android/okhttp/HttpUrl$Builder;->setEncodedPathSegment(ILjava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->setEncodedQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->setPathSegment(ILjava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->setQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl$Builder;->skipLeadingAsciiWhitespace(Ljava/lang/String;II)I
-Lcom/android/okhttp/HttpUrl$Builder;->skipTrailingAsciiWhitespace(Ljava/lang/String;II)I
-Lcom/android/okhttp/HttpUrl$Builder;->slashCount(Ljava/lang/String;II)I
-Lcom/android/okhttp/HttpUrl$Builder;->username(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;)V
-Lcom/android/okhttp/HttpUrl;->canonicalize(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IILjava/lang/String;ZZZZ)V
-Lcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;IILjava/lang/String;ZZZZ)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;Ljava/lang/String;ZZZZ)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->decodeHexDigit(C)I
-Lcom/android/okhttp/HttpUrl;->defaultPort(Ljava/lang/String;)I
-Lcom/android/okhttp/HttpUrl;->delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I
-Lcom/android/okhttp/HttpUrl;->encodedFragment()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->encodedPassword()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->encodedPathSegments()Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->encodedQuery()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->encodedUsername()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->FORM_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->fragment()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->fragment:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->FRAGMENT_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->FRAGMENT_ENCODE_SET_URI:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->get(Ljava/net/URI;)Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/HttpUrl;->get(Ljava/net/URL;)Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/HttpUrl;->getChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/HttpUrl;->HEX_DIGITS:[C
-Lcom/android/okhttp/HttpUrl;->host()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->host:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->isHttps()Z
-Lcom/android/okhttp/HttpUrl;->namesAndValuesToQueryString(Ljava/lang/StringBuilder;Ljava/util/List;)V
-Lcom/android/okhttp/HttpUrl;->password()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->password:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->PASSWORD_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->pathSegments()Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->pathSegments:Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->pathSegmentsToString(Ljava/lang/StringBuilder;Ljava/util/List;)V
-Lcom/android/okhttp/HttpUrl;->pathSize()I
-Lcom/android/okhttp/HttpUrl;->PATH_SEGMENT_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->PATH_SEGMENT_ENCODE_SET_URI:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->percentDecode(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IIZ)V
-Lcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;IIZ)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;Z)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->percentDecode(Ljava/util/List;Z)Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->percentEncoded(Ljava/lang/String;II)Z
-Lcom/android/okhttp/HttpUrl;->port()I
-Lcom/android/okhttp/HttpUrl;->port:I
-Lcom/android/okhttp/HttpUrl;->queryNamesAndValues:Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->queryParameter(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->queryParameterName(I)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->queryParameterNames()Ljava/util/Set;
-Lcom/android/okhttp/HttpUrl;->queryParameterValue(I)Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->queryParameterValues(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->querySize()I
-Lcom/android/okhttp/HttpUrl;->queryStringToNamesAndValues(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/HttpUrl;->QUERY_COMPONENT_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->QUERY_COMPONENT_ENCODE_SET_URI:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->QUERY_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->resolve(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/HttpUrl;->scheme()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->scheme:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->uri()Ljava/net/URI;
-Lcom/android/okhttp/HttpUrl;->url()Ljava/net/URL;
-Lcom/android/okhttp/HttpUrl;->url:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->username()Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->username:Ljava/lang/String;
-Lcom/android/okhttp/HttpUrl;->USERNAME_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/Interceptor$Chain;->connection()Lcom/android/okhttp/Connection;
-Lcom/android/okhttp/Interceptor$Chain;->proceed(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Interceptor$Chain;->request()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Interceptor;->intercept(Lcom/android/okhttp/Interceptor$Chain;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/CacheRequest;->abort()V
-Lcom/android/okhttp/internal/http/CacheRequest;->body()Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;-><init>(JLcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->ageSeconds:I
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->cacheResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->cacheResponseAge()J
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->computeFreshnessLifetime()J
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->etag:Ljava/lang/String;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->expires:Ljava/util/Date;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->get()Lcom/android/okhttp/internal/http/CacheStrategy;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->getCandidate()Lcom/android/okhttp/internal/http/CacheStrategy;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->hasConditions(Lcom/android/okhttp/Request;)Z
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->isFreshnessLifetimeHeuristic()Z
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->lastModified:Ljava/util/Date;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->lastModifiedString:Ljava/lang/String;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->nowMillis:J
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->receivedResponseMillis:J
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->sentRequestMillis:J
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->servedDate:Ljava/util/Date;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->servedDateString:Ljava/lang/String;
-Lcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/internal/http/CacheStrategy;->cacheResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/CacheStrategy;->isCacheable(Lcom/android/okhttp/Response;Lcom/android/okhttp/Request;)Z
-Lcom/android/okhttp/internal/http/CacheStrategy;->networkRequest:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->calls:I
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->connection()Lcom/android/okhttp/Connection;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->index:I
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->proceed(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->request()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;-><init>(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;ZZZLcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/internal/http/HttpEngine;->bufferedRequestBody:Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/internal/http/HttpEngine;->bufferRequestBody:Z
-Lcom/android/okhttp/internal/http/HttpEngine;->cacheResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->cacheStrategy:Lcom/android/okhttp/internal/http/CacheStrategy;
-Lcom/android/okhttp/internal/http/HttpEngine;->cacheWritingResponse(Lcom/android/okhttp/internal/http/CacheRequest;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->callerWritesRequestBody:Z
-Lcom/android/okhttp/internal/http/HttpEngine;->cancel()V
-Lcom/android/okhttp/internal/http/HttpEngine;->client:Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/internal/http/HttpEngine;->close()Lcom/android/okhttp/internal/http/StreamAllocation;
-Lcom/android/okhttp/internal/http/HttpEngine;->combine(Lcom/android/okhttp/Headers;Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/internal/http/HttpEngine;->connect()Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/HttpEngine;->createAddress(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;)Lcom/android/okhttp/Address;
-Lcom/android/okhttp/internal/http/HttpEngine;->EMPTY_BODY:Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/internal/http/HttpEngine;->followUpRequest()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->forWebSocket:Z
-Lcom/android/okhttp/internal/http/HttpEngine;->getBufferedRequestBody()Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/internal/http/HttpEngine;->getRequest()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->getRequestBody()Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/internal/http/HttpEngine;->getResponse()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->hasBody(Lcom/android/okhttp/Response;)Z
-Lcom/android/okhttp/internal/http/HttpEngine;->MAX_FOLLOW_UPS:I
-Lcom/android/okhttp/internal/http/HttpEngine;->maybeCache()V
-Lcom/android/okhttp/internal/http/HttpEngine;->permitsRequestBody(Lcom/android/okhttp/Request;)Z
-Lcom/android/okhttp/internal/http/HttpEngine;->readNetworkResponse()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->receiveHeaders(Lcom/android/okhttp/Headers;)V
-Lcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine;
-Lcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;)Lcom/android/okhttp/internal/http/HttpEngine;
-Lcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/internal/http/HttpEngine;
-Lcom/android/okhttp/internal/http/HttpEngine;->releaseStreamAllocation()V
-Lcom/android/okhttp/internal/http/HttpEngine;->requestBodyOut:Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/internal/http/HttpEngine;->sameConnection(Lcom/android/okhttp/HttpUrl;)Z
-Lcom/android/okhttp/internal/http/HttpEngine;->storeRequest:Lcom/android/okhttp/internal/http/CacheRequest;
-Lcom/android/okhttp/internal/http/HttpEngine;->streamAllocation:Lcom/android/okhttp/internal/http/StreamAllocation;
-Lcom/android/okhttp/internal/http/HttpEngine;->stripBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->transparentGzip:Z
-Lcom/android/okhttp/internal/http/HttpEngine;->unzip(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/HttpEngine;->userRequest:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;->validate(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response;)Z
-Lcom/android/okhttp/internal/http/HttpStream;->cancel()V
-Lcom/android/okhttp/internal/http/HttpStream;->createRequestBody(Lcom/android/okhttp/Request;J)Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/internal/http/HttpStream;->DISCARD_STREAM_TIMEOUT_MILLIS:I
-Lcom/android/okhttp/internal/http/HttpStream;->finishRequest()V
-Lcom/android/okhttp/internal/http/HttpStream;->openResponseBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/internal/http/HttpStream;->readResponseHeaders()Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/internal/http/HttpStream;->setHttpEngine(Lcom/android/okhttp/internal/http/HttpEngine;)V
-Lcom/android/okhttp/internal/http/HttpStream;->writeRequestBody(Lcom/android/okhttp/internal/http/RetryableSink;)V
-Lcom/android/okhttp/internal/http/HttpStream;->writeRequestHeaders(Lcom/android/okhttp/Request;)V
-Lcom/android/okhttp/internal/http/RequestException;-><init>(Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/RetryableSink;-><init>()V
-Lcom/android/okhttp/internal/http/RetryableSink;-><init>(I)V
-Lcom/android/okhttp/internal/http/RetryableSink;->closed:Z
-Lcom/android/okhttp/internal/http/RetryableSink;->content:Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/internal/http/RetryableSink;->contentLength()J
-Lcom/android/okhttp/internal/http/RetryableSink;->limit:I
-Lcom/android/okhttp/internal/http/RetryableSink;->timeout()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/internal/http/RetryableSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
-Lcom/android/okhttp/internal/http/RetryableSink;->writeToSocket(Lcom/android/okhttp/okio/Sink;)V
-Lcom/android/okhttp/internal/http/RouteException;-><init>(Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/RouteException;->addConnectException(Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/RouteException;->addSuppressedExceptionMethod:Ljava/lang/reflect/Method;
-Lcom/android/okhttp/internal/http/RouteException;->addSuppressedIfPossible(Ljava/io/IOException;Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/RouteException;->getLastConnectException()Ljava/io/IOException;
-Lcom/android/okhttp/internal/http/RouteException;->lastException:Ljava/io/IOException;
-Lcom/android/okhttp/internal/http/RouteSelector;-><init>(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/RouteDatabase;)V
-Lcom/android/okhttp/internal/http/RouteSelector;->address:Lcom/android/okhttp/Address;
-Lcom/android/okhttp/internal/http/RouteSelector;->connectFailed(Lcom/android/okhttp/Route;Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/RouteSelector;->getHostString(Ljava/net/InetSocketAddress;)Ljava/lang/String;
-Lcom/android/okhttp/internal/http/RouteSelector;->hasNextInetSocketAddress()Z
-Lcom/android/okhttp/internal/http/RouteSelector;->hasNextPostponed()Z
-Lcom/android/okhttp/internal/http/RouteSelector;->hasNextProxy()Z
-Lcom/android/okhttp/internal/http/RouteSelector;->inetSocketAddresses:Ljava/util/List;
-Lcom/android/okhttp/internal/http/RouteSelector;->lastInetSocketAddress:Ljava/net/InetSocketAddress;
-Lcom/android/okhttp/internal/http/RouteSelector;->lastProxy:Ljava/net/Proxy;
-Lcom/android/okhttp/internal/http/RouteSelector;->next()Lcom/android/okhttp/Route;
-Lcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddress()Ljava/net/InetSocketAddress;
-Lcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddressIndex:I
-Lcom/android/okhttp/internal/http/RouteSelector;->nextPostponed()Lcom/android/okhttp/Route;
-Lcom/android/okhttp/internal/http/RouteSelector;->nextProxy()Ljava/net/Proxy;
-Lcom/android/okhttp/internal/http/RouteSelector;->nextProxyIndex:I
-Lcom/android/okhttp/internal/http/RouteSelector;->postponedRoutes:Ljava/util/List;
-Lcom/android/okhttp/internal/http/RouteSelector;->proxies:Ljava/util/List;
-Lcom/android/okhttp/internal/http/RouteSelector;->resetNextInetSocketAddress(Ljava/net/Proxy;)V
-Lcom/android/okhttp/internal/http/RouteSelector;->resetNextProxy(Lcom/android/okhttp/HttpUrl;Ljava/net/Proxy;)V
-Lcom/android/okhttp/internal/http/RouteSelector;->routeDatabase:Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/internal/http/StreamAllocation;-><init>(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;)V
-Lcom/android/okhttp/internal/http/StreamAllocation;->acquire(Lcom/android/okhttp/internal/io/RealConnection;)V
-Lcom/android/okhttp/internal/http/StreamAllocation;->address:Lcom/android/okhttp/Address;
-Lcom/android/okhttp/internal/http/StreamAllocation;->cancel()V
-Lcom/android/okhttp/internal/http/StreamAllocation;->canceled:Z
-Lcom/android/okhttp/internal/http/StreamAllocation;->connection()Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/internal/http/StreamAllocation;->connection:Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed()V
-Lcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed(Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/StreamAllocation;->connectionPool:Lcom/android/okhttp/ConnectionPool;
-Lcom/android/okhttp/internal/http/StreamAllocation;->deallocate(ZZZ)V
-Lcom/android/okhttp/internal/http/StreamAllocation;->findConnection(IIIZ)Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/internal/http/StreamAllocation;->findHealthyConnection(IIIZZ)Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z
-Lcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Ljava/io/IOException;)Z
-Lcom/android/okhttp/internal/http/StreamAllocation;->newStream(IIIZZ)Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/StreamAllocation;->noNewStreams()V
-Lcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
-Lcom/android/okhttp/internal/http/StreamAllocation;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Z
-Lcom/android/okhttp/internal/http/StreamAllocation;->release()V
-Lcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V
-Lcom/android/okhttp/internal/http/StreamAllocation;->released:Z
-Lcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/internal/http/StreamAllocation;->routeSelector:Lcom/android/okhttp/internal/http/RouteSelector;
-Lcom/android/okhttp/internal/http/StreamAllocation;->stream()Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/StreamAllocation;->stream:Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/StreamAllocation;->streamFinished(Lcom/android/okhttp/internal/http/HttpStream;)V
-Lcom/android/okhttp/MediaType;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Lcom/android/okhttp/MediaType;->charset()Ljava/nio/charset/Charset;
-Lcom/android/okhttp/MediaType;->charset(Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
-Lcom/android/okhttp/MediaType;->charset:Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->mediaType:Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->PARAMETER:Ljava/util/regex/Pattern;
-Lcom/android/okhttp/MediaType;->parse(Ljava/lang/String;)Lcom/android/okhttp/MediaType;
-Lcom/android/okhttp/MediaType;->QUOTED:Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->subtype()Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->subtype:Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->TOKEN:Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->type()Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->type:Ljava/lang/String;
-Lcom/android/okhttp/MediaType;->TYPE_SUBTYPE:Ljava/util/regex/Pattern;
-Lcom/android/okhttp/OkCacheContainer;->getCache()Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/OkHttpClient;-><init>(Lcom/android/okhttp/OkHttpClient;)V
-Lcom/android/okhttp/OkHttpClient;->authenticator:Lcom/android/okhttp/Authenticator;
-Lcom/android/okhttp/OkHttpClient;->cache:Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/OkHttpClient;->cancel(Ljava/lang/Object;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->certificatePinner:Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/OkHttpClient;->connectionSpecs:Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->connectTimeout:I
-Lcom/android/okhttp/OkHttpClient;->cookieHandler:Ljava/net/CookieHandler;
-Lcom/android/okhttp/OkHttpClient;->copyWithDefaults()Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->defaultSslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
-Lcom/android/okhttp/OkHttpClient;->DEFAULT_CONNECTION_SPECS:Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->dispatcher:Lcom/android/okhttp/Dispatcher;
-Lcom/android/okhttp/OkHttpClient;->followRedirects:Z
-Lcom/android/okhttp/OkHttpClient;->followSslRedirects:Z
-Lcom/android/okhttp/OkHttpClient;->getAuthenticator()Lcom/android/okhttp/Authenticator;
-Lcom/android/okhttp/OkHttpClient;->getCache()Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/OkHttpClient;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/OkHttpClient;->getConnectionSpecs()Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->getConnectTimeout()I
-Lcom/android/okhttp/OkHttpClient;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
-Lcom/android/okhttp/OkHttpClient;->getDispatcher()Lcom/android/okhttp/Dispatcher;
-Lcom/android/okhttp/OkHttpClient;->getDns()Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/OkHttpClient;->getFollowRedirects()Z
-Lcom/android/okhttp/OkHttpClient;->getFollowSslRedirects()Z
-Lcom/android/okhttp/OkHttpClient;->getProtocols()Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->getReadTimeout()I
-Lcom/android/okhttp/OkHttpClient;->getRetryOnConnectionFailure()Z
-Lcom/android/okhttp/OkHttpClient;->getSocketFactory()Ljavax/net/SocketFactory;
-Lcom/android/okhttp/OkHttpClient;->getWriteTimeout()I
-Lcom/android/okhttp/OkHttpClient;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
-Lcom/android/okhttp/OkHttpClient;->interceptors()Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->interceptors:Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->internalCache()Lcom/android/okhttp/internal/InternalCache;
-Lcom/android/okhttp/OkHttpClient;->internalCache:Lcom/android/okhttp/internal/InternalCache;
-Lcom/android/okhttp/OkHttpClient;->networkInterceptors()Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->networkInterceptors:Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->newCall(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Call;
-Lcom/android/okhttp/OkHttpClient;->protocols:Ljava/util/List;
-Lcom/android/okhttp/OkHttpClient;->proxy:Ljava/net/Proxy;
-Lcom/android/okhttp/OkHttpClient;->proxySelector:Ljava/net/ProxySelector;
-Lcom/android/okhttp/OkHttpClient;->readTimeout:I
-Lcom/android/okhttp/OkHttpClient;->retryOnConnectionFailure:Z
-Lcom/android/okhttp/OkHttpClient;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/OkHttpClient;->routeDatabase:Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/OkHttpClient;->setAuthenticator(Lcom/android/okhttp/Authenticator;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setCache(Lcom/android/okhttp/Cache;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setCertificatePinner(Lcom/android/okhttp/CertificatePinner;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setConnectionPool(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setConnectionSpecs(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setConnectTimeout(JLjava/util/concurrent/TimeUnit;)V
-Lcom/android/okhttp/OkHttpClient;->setCookieHandler(Ljava/net/CookieHandler;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setDispatcher(Lcom/android/okhttp/Dispatcher;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setDns(Lcom/android/okhttp/Dns;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setFollowRedirects(Z)V
-Lcom/android/okhttp/OkHttpClient;->setFollowSslRedirects(Z)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setInternalCache(Lcom/android/okhttp/internal/InternalCache;)V
-Lcom/android/okhttp/OkHttpClient;->setProxy(Ljava/net/Proxy;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setProxySelector(Ljava/net/ProxySelector;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setReadTimeout(JLjava/util/concurrent/TimeUnit;)V
-Lcom/android/okhttp/OkHttpClient;->setSocketFactory(Ljavax/net/SocketFactory;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setSslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkHttpClient;->setWriteTimeout(JLjava/util/concurrent/TimeUnit;)V
-Lcom/android/okhttp/OkHttpClient;->socketFactory:Ljavax/net/SocketFactory;
-Lcom/android/okhttp/OkHttpClient;->sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
-Lcom/android/okhttp/OkHttpClient;->writeTimeout:I
-Lcom/android/okhttp/okio/AsyncTimeout$Watchdog;-><init>()V
-Lcom/android/okhttp/okio/AsyncTimeout;-><init>()V
-Lcom/android/okhttp/okio/AsyncTimeout;->awaitTimeout()Lcom/android/okhttp/okio/AsyncTimeout;
-Lcom/android/okhttp/okio/AsyncTimeout;->cancelScheduledTimeout(Lcom/android/okhttp/okio/AsyncTimeout;)Z
-Lcom/android/okhttp/okio/AsyncTimeout;->enter()V
-Lcom/android/okhttp/okio/AsyncTimeout;->exit()Z
-Lcom/android/okhttp/okio/AsyncTimeout;->exit(Ljava/io/IOException;)Ljava/io/IOException;
-Lcom/android/okhttp/okio/AsyncTimeout;->exit(Z)V
-Lcom/android/okhttp/okio/AsyncTimeout;->head:Lcom/android/okhttp/okio/AsyncTimeout;
-Lcom/android/okhttp/okio/AsyncTimeout;->inQueue:Z
-Lcom/android/okhttp/okio/AsyncTimeout;->newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException;
-Lcom/android/okhttp/okio/AsyncTimeout;->next:Lcom/android/okhttp/okio/AsyncTimeout;
-Lcom/android/okhttp/okio/AsyncTimeout;->remainingNanos(J)J
-Lcom/android/okhttp/okio/AsyncTimeout;->scheduleTimeout(Lcom/android/okhttp/okio/AsyncTimeout;JZ)V
-Lcom/android/okhttp/okio/AsyncTimeout;->sink(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/okio/AsyncTimeout;->source(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/Source;
-Lcom/android/okhttp/okio/AsyncTimeout;->timedOut()V
-Lcom/android/okhttp/okio/AsyncTimeout;->timeoutAt:J
-Lcom/android/okhttp/okio/Buffer;-><init>()V
-Lcom/android/okhttp/okio/Buffer;->buffer()Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->clear()V
-Lcom/android/okhttp/okio/Buffer;->completeSegmentByteCount()J
-Lcom/android/okhttp/okio/Buffer;->copyTo(Lcom/android/okhttp/okio/Buffer;JJ)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->copyTo(Ljava/io/OutputStream;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->copyTo(Ljava/io/OutputStream;JJ)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->DIGITS:[B
-Lcom/android/okhttp/okio/Buffer;->emit()Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->emitCompleteSegments()Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->exhausted()Z
-Lcom/android/okhttp/okio/Buffer;->getByte(J)B
-Lcom/android/okhttp/okio/Buffer;->head:Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Buffer;->indexOf(B)J
-Lcom/android/okhttp/okio/Buffer;->indexOf(BJ)J
-Lcom/android/okhttp/okio/Buffer;->indexOf(Lcom/android/okhttp/okio/ByteString;)J
-Lcom/android/okhttp/okio/Buffer;->indexOf(Lcom/android/okhttp/okio/ByteString;J)J
-Lcom/android/okhttp/okio/Buffer;->indexOfElement(Lcom/android/okhttp/okio/ByteString;)J
-Lcom/android/okhttp/okio/Buffer;->indexOfElement(Lcom/android/okhttp/okio/ByteString;J)J
-Lcom/android/okhttp/okio/Buffer;->inputStream()Ljava/io/InputStream;
-Lcom/android/okhttp/okio/Buffer;->outputStream()Ljava/io/OutputStream;
-Lcom/android/okhttp/okio/Buffer;->rangeEquals(JLcom/android/okhttp/okio/ByteString;)Z
-Lcom/android/okhttp/okio/Buffer;->read(Lcom/android/okhttp/okio/Buffer;J)J
-Lcom/android/okhttp/okio/Buffer;->read([B)I
-Lcom/android/okhttp/okio/Buffer;->read([BII)I
-Lcom/android/okhttp/okio/Buffer;->readAll(Lcom/android/okhttp/okio/Sink;)J
-Lcom/android/okhttp/okio/Buffer;->readByte()B
-Lcom/android/okhttp/okio/Buffer;->readByteArray()[B
-Lcom/android/okhttp/okio/Buffer;->readByteArray(J)[B
-Lcom/android/okhttp/okio/Buffer;->readByteString()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/Buffer;->readByteString(J)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/Buffer;->readDecimalLong()J
-Lcom/android/okhttp/okio/Buffer;->readFrom(Ljava/io/InputStream;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->readFrom(Ljava/io/InputStream;J)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->readFrom(Ljava/io/InputStream;JZ)V
-Lcom/android/okhttp/okio/Buffer;->readFully(Lcom/android/okhttp/okio/Buffer;J)V
-Lcom/android/okhttp/okio/Buffer;->readFully([B)V
-Lcom/android/okhttp/okio/Buffer;->readHexadecimalUnsignedLong()J
-Lcom/android/okhttp/okio/Buffer;->readInt()I
-Lcom/android/okhttp/okio/Buffer;->readIntLe()I
-Lcom/android/okhttp/okio/Buffer;->readLong()J
-Lcom/android/okhttp/okio/Buffer;->readLongLe()J
-Lcom/android/okhttp/okio/Buffer;->readShort()S
-Lcom/android/okhttp/okio/Buffer;->readShortLe()S
-Lcom/android/okhttp/okio/Buffer;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->readString(Ljava/nio/charset/Charset;)Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->readUtf8()Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->readUtf8(J)Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->readUtf8CodePoint()I
-Lcom/android/okhttp/okio/Buffer;->readUtf8Line()Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->readUtf8Line(J)Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->readUtf8LineStrict()Ljava/lang/String;
-Lcom/android/okhttp/okio/Buffer;->REPLACEMENT_CHARACTER:I
-Lcom/android/okhttp/okio/Buffer;->request(J)Z
-Lcom/android/okhttp/okio/Buffer;->require(J)V
-Lcom/android/okhttp/okio/Buffer;->segmentSizes()Ljava/util/List;
-Lcom/android/okhttp/okio/Buffer;->size()J
-Lcom/android/okhttp/okio/Buffer;->size:J
-Lcom/android/okhttp/okio/Buffer;->skip(J)V
-Lcom/android/okhttp/okio/Buffer;->snapshot()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/Buffer;->snapshot(I)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/Buffer;->timeout()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Buffer;->writableSegment(I)Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Buffer;J)V
-Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Source;J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->write([B)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->write([B)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeAll(Lcom/android/okhttp/okio/Source;)J
-Lcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeDecimalLong(J)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeDecimalLong(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeInt(I)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeInt(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeIntLe(I)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeIntLe(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeLong(J)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeLong(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeLongLe(J)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeLongLe(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeShort(I)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeShort(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeShortLe(I)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeShortLe(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;IILjava/nio/charset/Charset;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;IILjava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;Ljava/nio/charset/Charset;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeString(Ljava/lang/String;Ljava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeTo(Ljava/io/OutputStream;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeTo(Ljava/io/OutputStream;J)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->buffer()Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/BufferedSink;->emit()Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->outputStream()Ljava/io/OutputStream;
-Lcom/android/okhttp/okio/BufferedSink;->write(Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->write(Lcom/android/okhttp/okio/Source;J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->write([B)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->write([BII)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeAll(Lcom/android/okhttp/okio/Source;)J
-Lcom/android/okhttp/okio/BufferedSink;->writeByte(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeDecimalLong(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeInt(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeIntLe(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeLong(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeLongLe(J)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeShort(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeShortLe(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeString(Ljava/lang/String;IILjava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeString(Ljava/lang/String;Ljava/nio/charset/Charset;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSource;->buffer()Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/BufferedSource;->exhausted()Z
-Lcom/android/okhttp/okio/BufferedSource;->indexOf(B)J
-Lcom/android/okhttp/okio/BufferedSource;->indexOf(BJ)J
-Lcom/android/okhttp/okio/BufferedSource;->indexOf(Lcom/android/okhttp/okio/ByteString;)J
-Lcom/android/okhttp/okio/BufferedSource;->indexOf(Lcom/android/okhttp/okio/ByteString;J)J
-Lcom/android/okhttp/okio/BufferedSource;->indexOfElement(Lcom/android/okhttp/okio/ByteString;)J
-Lcom/android/okhttp/okio/BufferedSource;->indexOfElement(Lcom/android/okhttp/okio/ByteString;J)J
-Lcom/android/okhttp/okio/BufferedSource;->inputStream()Ljava/io/InputStream;
-Lcom/android/okhttp/okio/BufferedSource;->read([B)I
-Lcom/android/okhttp/okio/BufferedSource;->read([BII)I
-Lcom/android/okhttp/okio/BufferedSource;->readAll(Lcom/android/okhttp/okio/Sink;)J
-Lcom/android/okhttp/okio/BufferedSource;->readByte()B
-Lcom/android/okhttp/okio/BufferedSource;->readByteArray()[B
-Lcom/android/okhttp/okio/BufferedSource;->readByteArray(J)[B
-Lcom/android/okhttp/okio/BufferedSource;->readByteString()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/BufferedSource;->readByteString(J)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/BufferedSource;->readDecimalLong()J
-Lcom/android/okhttp/okio/BufferedSource;->readFully(Lcom/android/okhttp/okio/Buffer;J)V
-Lcom/android/okhttp/okio/BufferedSource;->readFully([B)V
-Lcom/android/okhttp/okio/BufferedSource;->readHexadecimalUnsignedLong()J
-Lcom/android/okhttp/okio/BufferedSource;->readInt()I
-Lcom/android/okhttp/okio/BufferedSource;->readIntLe()I
-Lcom/android/okhttp/okio/BufferedSource;->readLong()J
-Lcom/android/okhttp/okio/BufferedSource;->readLongLe()J
-Lcom/android/okhttp/okio/BufferedSource;->readShort()S
-Lcom/android/okhttp/okio/BufferedSource;->readShortLe()S
-Lcom/android/okhttp/okio/BufferedSource;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String;
-Lcom/android/okhttp/okio/BufferedSource;->readString(Ljava/nio/charset/Charset;)Ljava/lang/String;
-Lcom/android/okhttp/okio/BufferedSource;->readUtf8()Ljava/lang/String;
-Lcom/android/okhttp/okio/BufferedSource;->readUtf8(J)Ljava/lang/String;
-Lcom/android/okhttp/okio/BufferedSource;->readUtf8CodePoint()I
-Lcom/android/okhttp/okio/BufferedSource;->readUtf8Line()Ljava/lang/String;
-Lcom/android/okhttp/okio/BufferedSource;->readUtf8LineStrict()Ljava/lang/String;
-Lcom/android/okhttp/okio/BufferedSource;->request(J)Z
-Lcom/android/okhttp/okio/BufferedSource;->require(J)V
-Lcom/android/okhttp/okio/BufferedSource;->skip(J)V
-Lcom/android/okhttp/okio/ByteString;-><init>([B)V
-Lcom/android/okhttp/okio/ByteString;->base64()Ljava/lang/String;
-Lcom/android/okhttp/okio/ByteString;->base64Url()Ljava/lang/String;
-Lcom/android/okhttp/okio/ByteString;->compareTo(Lcom/android/okhttp/okio/ByteString;)I
-Lcom/android/okhttp/okio/ByteString;->compareTo(Ljava/lang/Object;)I
-Lcom/android/okhttp/okio/ByteString;->data:[B
-Lcom/android/okhttp/okio/ByteString;->decodeBase64(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->decodeHex(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->decodeHexDigit(C)I
-Lcom/android/okhttp/okio/ByteString;->digest(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->EMPTY:Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->getByte(I)B
-Lcom/android/okhttp/okio/ByteString;->hashCode:I
-Lcom/android/okhttp/okio/ByteString;->hex()Ljava/lang/String;
-Lcom/android/okhttp/okio/ByteString;->HEX_DIGITS:[C
-Lcom/android/okhttp/okio/ByteString;->md5()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->of([BII)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->rangeEquals(ILcom/android/okhttp/okio/ByteString;II)Z
-Lcom/android/okhttp/okio/ByteString;->rangeEquals(I[BII)Z
-Lcom/android/okhttp/okio/ByteString;->read(Ljava/io/InputStream;I)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->sha256()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->size()I
-Lcom/android/okhttp/okio/ByteString;->substring(I)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->substring(II)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->toAsciiLowercase()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->toAsciiUppercase()Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->toByteArray()[B
-Lcom/android/okhttp/okio/ByteString;->utf8()Ljava/lang/String;
-Lcom/android/okhttp/okio/ByteString;->utf8:Ljava/lang/String;
-Lcom/android/okhttp/okio/ByteString;->write(Lcom/android/okhttp/okio/Buffer;)V
-Lcom/android/okhttp/okio/ByteString;->write(Ljava/io/OutputStream;)V
-Lcom/android/okhttp/okio/Segment;-><init>()V
-Lcom/android/okhttp/okio/Segment;-><init>(Lcom/android/okhttp/okio/Segment;)V
-Lcom/android/okhttp/okio/Segment;-><init>([BII)V
-Lcom/android/okhttp/okio/Segment;->compact()V
-Lcom/android/okhttp/okio/Segment;->data:[B
-Lcom/android/okhttp/okio/Segment;->limit:I
-Lcom/android/okhttp/okio/Segment;->next:Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Segment;->owner:Z
-Lcom/android/okhttp/okio/Segment;->pop()Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Segment;->pos:I
-Lcom/android/okhttp/okio/Segment;->prev:Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Segment;->push(Lcom/android/okhttp/okio/Segment;)Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Segment;->shared:Z
-Lcom/android/okhttp/okio/Segment;->SIZE:I
-Lcom/android/okhttp/okio/Segment;->split(I)Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/Segment;->writeTo(Lcom/android/okhttp/okio/Segment;I)V
-Lcom/android/okhttp/okio/Sink;->timeout()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Sink;->write(Lcom/android/okhttp/okio/Buffer;J)V
-Lcom/android/okhttp/okio/Source;->read(Lcom/android/okhttp/okio/Buffer;J)J
-Lcom/android/okhttp/okio/Source;->timeout()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;-><init>()V
-Lcom/android/okhttp/okio/Timeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;->clearTimeout()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;->deadline(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;->deadlineNanoTime()J
-Lcom/android/okhttp/okio/Timeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;->deadlineNanoTime:J
-Lcom/android/okhttp/okio/Timeout;->hasDeadline()Z
-Lcom/android/okhttp/okio/Timeout;->hasDeadline:Z
-Lcom/android/okhttp/okio/Timeout;->NONE:Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;->throwIfReached()V
-Lcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;->timeoutNanos()J
-Lcom/android/okhttp/okio/Timeout;->timeoutNanos:J
-Lcom/android/okhttp/Protocol;->get(Ljava/lang/String;)Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;->HTTP_1_0:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;->HTTP_1_1:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;->HTTP_2:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;->protocol:Ljava/lang/String;
-Lcom/android/okhttp/Protocol;->SPDY_3:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;->values()[Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Request$Builder;-><init>()V
-Lcom/android/okhttp/Request$Builder;-><init>(Lcom/android/okhttp/Request;)V
-Lcom/android/okhttp/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->body:Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/Request$Builder;->build()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Request$Builder;->cacheControl(Lcom/android/okhttp/CacheControl;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->delete()Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->delete(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->get()Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->head()Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->headers(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->headers:Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Request$Builder;->method(Ljava/lang/String;Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->method:Ljava/lang/String;
-Lcom/android/okhttp/Request$Builder;->patch(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->post(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->put(Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->removeHeader(Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->tag(Ljava/lang/Object;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->tag:Ljava/lang/Object;
-Lcom/android/okhttp/Request$Builder;->url(Lcom/android/okhttp/HttpUrl;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->url(Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->url(Ljava/net/URL;)Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request$Builder;->url:Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/Request;-><init>(Lcom/android/okhttp/Request$Builder;)V
-Lcom/android/okhttp/Request;->body()Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/Request;->body:Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/Request;->cacheControl()Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/Request;->cacheControl:Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/Request;->header(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/Request;->headers()Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Request;->headers(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/Request;->httpUrl()Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/Request;->isHttps()Z
-Lcom/android/okhttp/Request;->javaNetUri:Ljava/net/URI;
-Lcom/android/okhttp/Request;->javaNetUrl:Ljava/net/URL;
-Lcom/android/okhttp/Request;->method()Ljava/lang/String;
-Lcom/android/okhttp/Request;->newBuilder()Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request;->tag()Ljava/lang/Object;
-Lcom/android/okhttp/Request;->tag:Ljava/lang/Object;
-Lcom/android/okhttp/Request;->uri()Ljava/net/URI;
-Lcom/android/okhttp/Request;->url()Ljava/net/URL;
-Lcom/android/okhttp/Request;->urlString()Ljava/lang/String;
-Lcom/android/okhttp/RequestBody;-><init>()V
-Lcom/android/okhttp/RequestBody;->contentLength()J
-Lcom/android/okhttp/RequestBody;->contentType()Lcom/android/okhttp/MediaType;
-Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;Lcom/android/okhttp/okio/ByteString;)Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;Ljava/io/File;)Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;Ljava/lang/String;)Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;[B)Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;[BII)Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/RequestBody;->writeTo(Lcom/android/okhttp/okio/BufferedSink;)V
-Lcom/android/okhttp/Response$Builder;-><init>()V
-Lcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/Response$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->body(Lcom/android/okhttp/ResponseBody;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->body:Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/Response$Builder;->build()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response$Builder;->cacheResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->cacheResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response$Builder;->checkPriorResponse(Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/Response$Builder;->checkSupportResponse(Ljava/lang/String;Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/Response$Builder;->code(I)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->code:I
-Lcom/android/okhttp/Response$Builder;->handshake(Lcom/android/okhttp/Handshake;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->handshake:Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Response$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->headers(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->headers:Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Response$Builder;->message(Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->message:Ljava/lang/String;
-Lcom/android/okhttp/Response$Builder;->networkResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->networkResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response$Builder;->priorResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->priorResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response$Builder;->protocol(Lcom/android/okhttp/Protocol;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->protocol:Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Response$Builder;->removeHeader(Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->request(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response$Builder;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Response;-><init>(Lcom/android/okhttp/Response$Builder;)V
-Lcom/android/okhttp/Response;->body()Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/Response;->body:Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/Response;->cacheControl()Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/Response;->cacheControl:Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/Response;->cacheResponse()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response;->cacheResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response;->challenges()Ljava/util/List;
-Lcom/android/okhttp/Response;->code()I
-Lcom/android/okhttp/Response;->handshake()Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Response;->handshake:Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Response;->header(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/okhttp/Response;->headers()Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Response;->headers(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/Response;->isRedirect()Z
-Lcom/android/okhttp/Response;->isSuccessful()Z
-Lcom/android/okhttp/Response;->message()Ljava/lang/String;
-Lcom/android/okhttp/Response;->networkResponse()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response;->newBuilder()Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response;->priorResponse()Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response;->priorResponse:Lcom/android/okhttp/Response;
-Lcom/android/okhttp/Response;->protocol()Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Response;->request()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Response;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/ResponseBody;-><init>()V
-Lcom/android/okhttp/ResponseBody;->bytes()[B
-Lcom/android/okhttp/ResponseBody;->byteStream()Ljava/io/InputStream;
-Lcom/android/okhttp/ResponseBody;->charset()Ljava/nio/charset/Charset;
-Lcom/android/okhttp/ResponseBody;->charStream()Ljava/io/Reader;
-Lcom/android/okhttp/ResponseBody;->contentLength()J
-Lcom/android/okhttp/ResponseBody;->contentType()Lcom/android/okhttp/MediaType;
-Lcom/android/okhttp/ResponseBody;->create(Lcom/android/okhttp/MediaType;JLcom/android/okhttp/okio/BufferedSource;)Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/ResponseBody;->create(Lcom/android/okhttp/MediaType;Ljava/lang/String;)Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/ResponseBody;->create(Lcom/android/okhttp/MediaType;[B)Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/ResponseBody;->reader:Ljava/io/Reader;
-Lcom/android/okhttp/ResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource;
-Lcom/android/okhttp/ResponseBody;->string()Ljava/lang/String;
-Lcom/android/okhttp/Route;-><init>(Lcom/android/okhttp/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V
-Lcom/android/okhttp/Route;->address:Lcom/android/okhttp/Address;
-Lcom/android/okhttp/Route;->getAddress()Lcom/android/okhttp/Address;
-Lcom/android/okhttp/Route;->getProxy()Ljava/net/Proxy;
-Lcom/android/okhttp/Route;->getSocketAddress()Ljava/net/InetSocketAddress;
-Lcom/android/okhttp/Route;->inetSocketAddress:Ljava/net/InetSocketAddress;
-Lcom/android/okhttp/Route;->proxy:Ljava/net/Proxy;
-Lcom/android/okhttp/Route;->requiresTunnel()Z
-Lcom/android/okhttp/TlsVersion;->forJavaName(Ljava/lang/String;)Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;->javaName()Ljava/lang/String;
-Lcom/android/okhttp/TlsVersion;->javaName:Ljava/lang/String;
-Lcom/android/okhttp/TlsVersion;->SSL_3_0:Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;->TLS_1_0:Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;->TLS_1_1:Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;->TLS_1_2:Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;->values()[Lcom/android/okhttp/TlsVersion;
Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>()V
Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>(Ljava/lang/String;I)V
Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>(Ljava/lang/String;ILjava/net/InetAddress;I)V
@@ -102641,9868 +94140,6 @@ Lcom/android/org/conscrypt/TrustManagerImpl;->trustedCertificateStore:Lcom/andro
Lcom/android/org/conscrypt/TrustManagerImpl;->TRUST_ANCHOR_COMPARATOR:Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;
Lcom/android/org/conscrypt/TrustManagerImpl;->validator:Ljava/security/cert/CertPathValidator;
Lcom/android/org/conscrypt/TrustManagerImpl;->verifyChain(Ljava/util/List;Ljava/util/List;Ljava/lang/String;Z[B[B)Ljava/util/List;
-Ldalvik/bytecode/OpcodeInfo;-><init>()V
-Ldalvik/bytecode/OpcodeInfo;->isInvoke(I)Z
-Ldalvik/system/AllocationLimitError;-><init>()V
-Ldalvik/system/AllocationLimitError;-><init>(Ljava/lang/String;)V
-Ldalvik/system/AnnotatedStackTraceElement;-><init>()V
-Ldalvik/system/AnnotatedStackTraceElement;->blockedOn:Ljava/lang/Object;
-Ldalvik/system/AnnotatedStackTraceElement;->getBlockedOn()Ljava/lang/Object;
-Ldalvik/system/AnnotatedStackTraceElement;->getHeldLocks()[Ljava/lang/Object;
-Ldalvik/system/AnnotatedStackTraceElement;->getStackTraceElement()Ljava/lang/StackTraceElement;
-Ldalvik/system/AnnotatedStackTraceElement;->heldLocks:[Ljava/lang/Object;
-Ldalvik/system/AnnotatedStackTraceElement;->stackTraceElement:Ljava/lang/StackTraceElement;
-Ldalvik/system/BaseDexClassLoader$Reporter;->report(Ljava/util/List;Ljava/util/List;)V
-Ldalvik/system/BaseDexClassLoader;-><init>([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V
-Ldalvik/system/BaseDexClassLoader;->addNativePath(Ljava/util/Collection;)V
-Ldalvik/system/BaseDexClassLoader;->getReporter()Ldalvik/system/BaseDexClassLoader$Reporter;
-Ldalvik/system/BaseDexClassLoader;->reportClassLoaderChain()V
-Ldalvik/system/BaseDexClassLoader;->reporter:Ldalvik/system/BaseDexClassLoader$Reporter;
-Ldalvik/system/BaseDexClassLoader;->setReporter(Ldalvik/system/BaseDexClassLoader$Reporter;)V
-Ldalvik/system/BlockGuard$BlockGuardPolicyException;-><init>(II)V
-Ldalvik/system/BlockGuard$BlockGuardPolicyException;->getPolicy()I
-Ldalvik/system/BlockGuard$BlockGuardPolicyException;->getPolicyViolation()I
-Ldalvik/system/BlockGuard$Policy;->getPolicyMask()I
-Ldalvik/system/BlockGuard$Policy;->onUnbufferedIO()V
-Ldalvik/system/BlockGuard$Policy;->onWriteToDisk()V
-Ldalvik/system/BlockGuard;-><init>()V
-Ldalvik/system/BlockGuard;->DISALLOW_DISK_READ:I
-Ldalvik/system/BlockGuard;->DISALLOW_DISK_WRITE:I
-Ldalvik/system/BlockGuard;->DISALLOW_NETWORK:I
-Ldalvik/system/BlockGuard;->PASS_RESTRICTIONS_VIA_RPC:I
-Ldalvik/system/BlockGuard;->PENALTY_DEATH:I
-Ldalvik/system/BlockGuard;->PENALTY_DIALOG:I
-Ldalvik/system/BlockGuard;->PENALTY_LOG:I
-Ldalvik/system/ClassExt;-><init>()V
-Ldalvik/system/ClassExt;->obsoleteDexCaches:[Ljava/lang/Object;
-Ldalvik/system/ClassExt;->obsoleteMethods:Ljava/lang/Object;
-Ldalvik/system/ClassExt;->originalDexFile:Ljava/lang/Object;
-Ldalvik/system/ClassExt;->verifyError:Ljava/lang/Object;
-Ldalvik/system/CloseGuard$DefaultReporter;->report(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ldalvik/system/CloseGuard$Tracker;->close(Ljava/lang/Throwable;)V
-Ldalvik/system/CloseGuard$Tracker;->open(Ljava/lang/Throwable;)V
-Ldalvik/system/CloseGuard;->closerNameOrAllocationInfo:Ljava/lang/Object;
-Ldalvik/system/CloseGuard;->currentTracker:Ldalvik/system/CloseGuard$Tracker;
-Ldalvik/system/CloseGuard;->getReporter()Ldalvik/system/CloseGuard$Reporter;
-Ldalvik/system/CloseGuard;->getTracker()Ldalvik/system/CloseGuard$Tracker;
-Ldalvik/system/CloseGuard;->isEnabled()Z
-Ldalvik/system/CloseGuard;->reporter:Ldalvik/system/CloseGuard$Reporter;
-Ldalvik/system/CloseGuard;->setTracker(Ldalvik/system/CloseGuard$Tracker;)V
-Ldalvik/system/CloseGuard;->stackAndTrackingEnabled:Z
-Ldalvik/system/DalvikLogging;-><init>()V
-Ldalvik/system/DalvikLogging;->loggerNameToTag(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DalvikLogHandler;->publish(Ljava/util/logging/Logger;Ljava/lang/String;Ljava/util/logging/Level;Ljava/lang/String;)V
-Ldalvik/system/DexFile$DFEnum;-><init>(Ldalvik/system/DexFile;)V
-Ldalvik/system/DexFile$DFEnum;->mIndex:I
-Ldalvik/system/DexFile$OptimizationInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Ldalvik/system/DexFile$OptimizationInfo;->getReason()Ljava/lang/String;
-Ldalvik/system/DexFile$OptimizationInfo;->getStatus()Ljava/lang/String;
-Ldalvik/system/DexFile$OptimizationInfo;->reason:Ljava/lang/String;
-Ldalvik/system/DexFile$OptimizationInfo;->status:Ljava/lang/String;
-Ldalvik/system/DexFile;-><init>(Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
-Ldalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
-Ldalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
-Ldalvik/system/DexFile;-><init>(Ljava/nio/ByteBuffer;)V
-Ldalvik/system/DexFile;->closeDexFile(Ljava/lang/Object;)Z
-Ldalvik/system/DexFile;->createCookieWithArray([BII)Ljava/lang/Object;
-Ldalvik/system/DexFile;->createCookieWithDirectBuffer(Ljava/nio/ByteBuffer;II)Ljava/lang/Object;
-Ldalvik/system/DexFile;->defineClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;Ljava/util/List;)Ljava/lang/Class;
-Ldalvik/system/DexFile;->defineClassNative(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;)Ljava/lang/Class;
-Ldalvik/system/DexFile;->DEX2OAT_FOR_BOOT_IMAGE:I
-Ldalvik/system/DexFile;->DEX2OAT_FOR_FILTER:I
-Ldalvik/system/DexFile;->DEX2OAT_FOR_RELOCATION:I
-Ldalvik/system/DexFile;->DEX2OAT_FROM_SCRATCH:I
-Ldalvik/system/DexFile;->getDexFileOptimizationInfo(Ljava/lang/String;Ljava/lang/String;)Ldalvik/system/DexFile$OptimizationInfo;
-Ldalvik/system/DexFile;->getDexFileOptimizationStatus(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
-Ldalvik/system/DexFile;->getDexFileOutputPaths(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
-Ldalvik/system/DexFile;->getDexFileStatus(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DexFile;->getDexOptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
-Ldalvik/system/DexFile;->getDexOptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
-Ldalvik/system/DexFile;->getNonProfileGuidedCompilerFilter(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DexFile;->getSafeModeCompilerFilter(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DexFile;->getStaticSizeOfDexFile()J
-Ldalvik/system/DexFile;->getStaticSizeOfDexFile(Ljava/lang/Object;)J
-Ldalvik/system/DexFile;->isBackedByOatFile(Ljava/lang/Object;)Z
-Ldalvik/system/DexFile;->isProfileGuidedCompilerFilter(Ljava/lang/String;)Z
-Ldalvik/system/DexFile;->isValidCompilerFilter(Ljava/lang/String;)Z
-Ldalvik/system/DexFile;->NO_DEXOPT_NEEDED:I
-Ldalvik/system/DexFile;->openInMemoryDexFile(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
-Ldalvik/system/DexFile;->setTrusted()V
-Ldalvik/system/DexFile;->setTrusted(Ljava/lang/Object;)V
-Ldalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;)V
-Ldalvik/system/DexPathList$Element;-><init>(Ljava/io/File;)V
-Ldalvik/system/DexPathList$Element;->findClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
-Ldalvik/system/DexPathList$Element;->findResource(Ljava/lang/String;)Ljava/net/URL;
-Ldalvik/system/DexPathList$Element;->getDexPath()Ljava/lang/String;
-Ldalvik/system/DexPathList$Element;->initialized:Z
-Ldalvik/system/DexPathList$Element;->maybeInit()V
-Ldalvik/system/DexPathList$Element;->urlHandler:Llibcore/io/ClassPathURLStreamHandler;
-Ldalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;Ljava/lang/String;)V
-Ldalvik/system/DexPathList$NativeLibraryElement;->findNativeLibrary(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DexPathList$NativeLibraryElement;->initialized:Z
-Ldalvik/system/DexPathList$NativeLibraryElement;->maybeInit()V
-Ldalvik/system/DexPathList$NativeLibraryElement;->urlHandler:Llibcore/io/ClassPathURLStreamHandler;
-Ldalvik/system/DexPathList$NativeLibraryElement;->zipDir:Ljava/lang/String;
-Ldalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Z)V
-Ldalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;[Ljava/nio/ByteBuffer;)V
-Ldalvik/system/DexPathList;->addDexPath(Ljava/lang/String;Ljava/io/File;Z)V
-Ldalvik/system/DexPathList;->DEX_SUFFIX:Ljava/lang/String;
-Ldalvik/system/DexPathList;->findClass(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Class;
-Ldalvik/system/DexPathList;->findLibrary(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DexPathList;->findResource(Ljava/lang/String;)Ljava/net/URL;
-Ldalvik/system/DexPathList;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
-Ldalvik/system/DexPathList;->getDexPaths()Ljava/util/List;
-Ldalvik/system/DexPathList;->getNativeLibraryDirectories()Ljava/util/List;
-Ldalvik/system/DexPathList;->makeDexElements(Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/lang/ClassLoader;Z)[Ldalvik/system/DexPathList$Element;
-Ldalvik/system/DexPathList;->optimizedPathFor(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
-Ldalvik/system/DexPathList;->splitDexPath(Ljava/lang/String;)Ljava/util/List;
-Ldalvik/system/DexPathList;->zipSeparator:Ljava/lang/String;
-Ldalvik/system/EmulatedStackFrame$Range;-><init>(IIII)V
-Ldalvik/system/EmulatedStackFrame$Range;->all(Ljava/lang/invoke/MethodType;)Ldalvik/system/EmulatedStackFrame$Range;
-Ldalvik/system/EmulatedStackFrame$Range;->numBytes:I
-Ldalvik/system/EmulatedStackFrame$Range;->numReferences:I
-Ldalvik/system/EmulatedStackFrame$Range;->of(Ljava/lang/invoke/MethodType;II)Ldalvik/system/EmulatedStackFrame$Range;
-Ldalvik/system/EmulatedStackFrame$Range;->referencesStart:I
-Ldalvik/system/EmulatedStackFrame$Range;->stackFrameStart:I
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;-><init>()V
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->argumentIdx:I
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->attach(Ldalvik/system/EmulatedStackFrame;)Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->attach(Ldalvik/system/EmulatedStackFrame;III)Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->checkType(Ljava/lang/Class;)V
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->copyNext(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->frame:Ldalvik/system/EmulatedStackFrame;
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->frameBuf:Ljava/nio/ByteBuffer;
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->makeReturnValueAccessor()V
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->numArgs:I
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->referencesOffset:I
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->RETURN_VALUE_IDX:I
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;-><init>()V
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextBoolean()Z
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextByte()B
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextChar()C
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextDouble()D
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextFloat()F
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextInt()I
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextLong()J
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextReference(Ljava/lang/Class;)Ljava/lang/Object;
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextShort()S
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;-><init>()V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextBoolean(Z)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextByte(B)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextChar(C)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextDouble(D)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextFloat(F)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextInt(I)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextLong(J)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextReference(Ljava/lang/Object;Ljava/lang/Class;)V
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextShort(S)V
-Ldalvik/system/EmulatedStackFrame;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;[B)V
-Ldalvik/system/EmulatedStackFrame;->callsiteType:Ljava/lang/invoke/MethodType;
-Ldalvik/system/EmulatedStackFrame;->copyRangeTo(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame$Range;II)V
-Ldalvik/system/EmulatedStackFrame;->copyReturnValueTo(Ldalvik/system/EmulatedStackFrame;)V
-Ldalvik/system/EmulatedStackFrame;->create(Ljava/lang/invoke/MethodType;)Ldalvik/system/EmulatedStackFrame;
-Ldalvik/system/EmulatedStackFrame;->getCallsiteType()Ljava/lang/invoke/MethodType;
-Ldalvik/system/EmulatedStackFrame;->getMethodType()Ljava/lang/invoke/MethodType;
-Ldalvik/system/EmulatedStackFrame;->getReference(ILjava/lang/Class;)Ljava/lang/Object;
-Ldalvik/system/EmulatedStackFrame;->getSize(Ljava/lang/Class;)I
-Ldalvik/system/EmulatedStackFrame;->is64BitPrimitive(Ljava/lang/Class;)Z
-Ldalvik/system/EmulatedStackFrame;->references:[Ljava/lang/Object;
-Ldalvik/system/EmulatedStackFrame;->setReference(ILjava/lang/Object;)V
-Ldalvik/system/EmulatedStackFrame;->setReturnValueTo(Ljava/lang/Object;)V
-Ldalvik/system/EmulatedStackFrame;->stackFrame:[B
-Ldalvik/system/EmulatedStackFrame;->type:Ljava/lang/invoke/MethodType;
-Ldalvik/system/PotentialDeadlockError;-><init>()V
-Ldalvik/system/PotentialDeadlockError;-><init>(Ljava/lang/String;)V
-Ldalvik/system/SocketTagger;-><init>()V
-Ldalvik/system/SocketTagger;->set(Ldalvik/system/SocketTagger;)V
-Ldalvik/system/SocketTagger;->tag(Ljava/io/FileDescriptor;)V
-Ldalvik/system/SocketTagger;->tag(Ljava/net/DatagramSocket;)V
-Ldalvik/system/SocketTagger;->tagger:Ldalvik/system/SocketTagger;
-Ldalvik/system/SocketTagger;->untag(Ljava/io/FileDescriptor;)V
-Ldalvik/system/SocketTagger;->untag(Ljava/net/DatagramSocket;)V
-Ldalvik/system/TemporaryDirectory;-><init>()V
-Ldalvik/system/TemporaryDirectory;->setUpDirectory(Ljava/io/File;)V
-Ldalvik/system/TemporaryDirectory;->setUpDirectory(Ljava/lang/String;)V
-Ldalvik/system/VMDebug;-><init>()V
-Ldalvik/system/VMDebug;->attachAgent(Ljava/lang/String;)V
-Ldalvik/system/VMDebug;->attachAgent(Ljava/lang/String;Ljava/lang/ClassLoader;)V
-Ldalvik/system/VMDebug;->cacheRegisterMap(Ljava/lang/String;)Z
-Ldalvik/system/VMDebug;->checkBufferSize(I)I
-Ldalvik/system/VMDebug;->countInstancesOfClass(Ljava/lang/Class;Z)J
-Ldalvik/system/VMDebug;->countInstancesOfClasses([Ljava/lang/Class;Z)[J
-Ldalvik/system/VMDebug;->crash()V
-Ldalvik/system/VMDebug;->dumpHprofData(Ljava/lang/String;)V
-Ldalvik/system/VMDebug;->dumpHprofData(Ljava/lang/String;I)V
-Ldalvik/system/VMDebug;->dumpHprofData(Ljava/lang/String;Ljava/io/FileDescriptor;)V
-Ldalvik/system/VMDebug;->dumpHprofDataDdms()V
-Ldalvik/system/VMDebug;->getAllocCount(I)I
-Ldalvik/system/VMDebug;->getHeapSpaceStats([J)V
-Ldalvik/system/VMDebug;->getInstancesOfClasses([Ljava/lang/Class;Z)[[Ljava/lang/Object;
-Ldalvik/system/VMDebug;->getInstructionCount([I)V
-Ldalvik/system/VMDebug;->getLoadedClassCount()I
-Ldalvik/system/VMDebug;->getMethodTracingMode()I
-Ldalvik/system/VMDebug;->getRuntimeStat(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/VMDebug;->getRuntimeStatInternal(I)Ljava/lang/String;
-Ldalvik/system/VMDebug;->getRuntimeStats()Ljava/util/Map;
-Ldalvik/system/VMDebug;->getRuntimeStatsInternal()[Ljava/lang/String;
-Ldalvik/system/VMDebug;->getVmFeatureList()[Ljava/lang/String;
-Ldalvik/system/VMDebug;->infopoint(I)V
-Ldalvik/system/VMDebug;->isDebuggingEnabled()Z
-Ldalvik/system/VMDebug;->KIND_ALLOCATED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_ALLOCATED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_ALL_COUNTS:I
-Ldalvik/system/VMDebug;->KIND_CLASS_INIT_COUNT:I
-Ldalvik/system/VMDebug;->KIND_CLASS_INIT_TIME:I
-Ldalvik/system/VMDebug;->KIND_EXT_ALLOCATED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_EXT_ALLOCATED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_EXT_FREED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_EXT_FREED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_FREED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_FREED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_GC_INVOCATIONS:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_ALLOCATED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_ALLOCATED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_CLASS_INIT_COUNT:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_CLASS_INIT_TIME:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_ALLOCATED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_ALLOCATED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_FREED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_EXT_FREED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_FREED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_FREED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_GLOBAL_GC_INVOCATIONS:I
-Ldalvik/system/VMDebug;->KIND_THREAD_ALLOCATED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_THREAD_ALLOCATED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_THREAD_CLASS_INIT_COUNT:I
-Ldalvik/system/VMDebug;->KIND_THREAD_CLASS_INIT_TIME:I
-Ldalvik/system/VMDebug;->KIND_THREAD_EXT_ALLOCATED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_THREAD_EXT_ALLOCATED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_THREAD_EXT_FREED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_THREAD_EXT_FREED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_THREAD_FREED_BYTES:I
-Ldalvik/system/VMDebug;->KIND_THREAD_FREED_OBJECTS:I
-Ldalvik/system/VMDebug;->KIND_THREAD_GC_INVOCATIONS:I
-Ldalvik/system/VMDebug;->lastDebuggerActivity()J
-Ldalvik/system/VMDebug;->nativeAttachAgent(Ljava/lang/String;Ljava/lang/ClassLoader;)V
-Ldalvik/system/VMDebug;->printLoadedClasses(I)V
-Ldalvik/system/VMDebug;->resetAllocCount(I)V
-Ldalvik/system/VMDebug;->resetInstructionCount()V
-Ldalvik/system/VMDebug;->runtimeStatsMap:Ljava/util/HashMap;
-Ldalvik/system/VMDebug;->setAllocationLimit(I)I
-Ldalvik/system/VMDebug;->setGlobalAllocationLimit(I)I
-Ldalvik/system/VMDebug;->startAllocCounting()V
-Ldalvik/system/VMDebug;->startClassPrep()V
-Ldalvik/system/VMDebug;->startEmulatorTracing()V
-Ldalvik/system/VMDebug;->startGC()V
-Ldalvik/system/VMDebug;->startInstructionCounting()V
-Ldalvik/system/VMDebug;->startMethodTracing()V
-Ldalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;IIZI)V
-Ldalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;Ljava/io/FileDescriptor;IIZI)V
-Ldalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;Ljava/io/FileDescriptor;IIZIZ)V
-Ldalvik/system/VMDebug;->startMethodTracingDdms(IIZI)V
-Ldalvik/system/VMDebug;->startMethodTracingDdmsImpl(IIZI)V
-Ldalvik/system/VMDebug;->startMethodTracingFd(Ljava/lang/String;IIIZIZ)V
-Ldalvik/system/VMDebug;->startMethodTracingFilename(Ljava/lang/String;IIZI)V
-Ldalvik/system/VMDebug;->stopAllocCounting()V
-Ldalvik/system/VMDebug;->stopEmulatorTracing()V
-Ldalvik/system/VMDebug;->stopInstructionCounting()V
-Ldalvik/system/VMDebug;->stopMethodTracing()V
-Ldalvik/system/VMDebug;->threadCpuTimeNanos()J
-Ldalvik/system/VMDebug;->TRACE_COUNT_ALLOCS:I
-Ldalvik/system/VMRuntime;-><init>()V
-Ldalvik/system/VMRuntime;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
-Ldalvik/system/VMRuntime;->bootClassPath()Ljava/lang/String;
-Ldalvik/system/VMRuntime;->clampGrowthLimit()V
-Ldalvik/system/VMRuntime;->classPath()Ljava/lang/String;
-Ldalvik/system/VMRuntime;->concurrentGC()V
-Ldalvik/system/VMRuntime;->didPruneDalvikCache()Z
-Ldalvik/system/VMRuntime;->disableJitCompilation()V
-Ldalvik/system/VMRuntime;->getTargetHeapUtilization()F
-Ldalvik/system/VMRuntime;->getTargetSdkVersion()I
-Ldalvik/system/VMRuntime;->hasUsedHiddenApi()Z
-Ldalvik/system/VMRuntime;->is64BitInstructionSet(Ljava/lang/String;)Z
-Ldalvik/system/VMRuntime;->isBootClassPathOnDisk(Ljava/lang/String;)Z
-Ldalvik/system/VMRuntime;->isCheckJniEnabled()Z
-Ldalvik/system/VMRuntime;->isDebuggerActive()Z
-Ldalvik/system/VMRuntime;->isJavaDebuggable()Z
-Ldalvik/system/VMRuntime;->isNativeDebuggable()Z
-Ldalvik/system/VMRuntime;->nativeSetTargetHeapUtilization(F)V
-Ldalvik/system/VMRuntime;->newUnpaddedArray(Ljava/lang/Class;I)Ljava/lang/Object;
-Ldalvik/system/VMRuntime;->nonSdkApiUsageConsumer:Ljava/util/function/Consumer;
-Ldalvik/system/VMRuntime;->preloadDexCaches()V
-Ldalvik/system/VMRuntime;->properties()[Ljava/lang/String;
-Ldalvik/system/VMRuntime;->registerAppInfo(Ljava/lang/String;[Ljava/lang/String;)V
-Ldalvik/system/VMRuntime;->registerSensitiveThread()V
-Ldalvik/system/VMRuntime;->requestConcurrentGC()V
-Ldalvik/system/VMRuntime;->requestHeapTrim()V
-Ldalvik/system/VMRuntime;->runHeapTasks()V
-Ldalvik/system/VMRuntime;->SDK_VERSION_CUR_DEVELOPMENT:I
-Ldalvik/system/VMRuntime;->setDedupeHiddenApiWarnings(Z)V
-Ldalvik/system/VMRuntime;->setHiddenApiAccessLogSamplingRate(I)V
-Ldalvik/system/VMRuntime;->setNonSdkApiUsageConsumer(Ljava/util/function/Consumer;)V
-Ldalvik/system/VMRuntime;->setProcessPackageName(Ljava/lang/String;)V
-Ldalvik/system/VMRuntime;->setSystemDaemonThreadPriority()V
-Ldalvik/system/VMRuntime;->startHeapTaskProcessor()V
-Ldalvik/system/VMRuntime;->startJitCompilation()V
-Ldalvik/system/VMRuntime;->stopHeapTaskProcessor()V
-Ldalvik/system/VMRuntime;->targetSdkVersion:I
-Ldalvik/system/VMRuntime;->THE_ONE:Ldalvik/system/VMRuntime;
-Ldalvik/system/VMRuntime;->trimHeap()V
-Ldalvik/system/VMRuntime;->updateProcessState(I)V
-Ldalvik/system/VMRuntime;->vmVersion()Ljava/lang/String;
-Ldalvik/system/VMStack;-><init>()V
-Ldalvik/system/VMStack;->getAnnotatedThreadStackTrace(Ljava/lang/Thread;)[Ldalvik/system/AnnotatedStackTraceElement;
-Ldalvik/system/VMStack;->getClosestUserClassLoader()Ljava/lang/ClassLoader;
-Ldalvik/system/VMStack;->getStackClass1()Ljava/lang/Class;
-Ldalvik/system/ZygoteHooks;-><init>()V
-Ldalvik/system/ZygoteHooks;->nativePostForkChild(JIZZLjava/lang/String;)V
-Ldalvik/system/ZygoteHooks;->nativePreFork()J
-Ldalvik/system/ZygoteHooks;->postForkChild(IZZLjava/lang/String;)V
-Ldalvik/system/ZygoteHooks;->postForkCommon()V
-Ldalvik/system/ZygoteHooks;->preFork()V
-Ldalvik/system/ZygoteHooks;->startZygoteNoThreadCreation()V
-Ldalvik/system/ZygoteHooks;->stopZygoteNoThreadCreation()V
-Ldalvik/system/ZygoteHooks;->token:J
-Ldalvik/system/ZygoteHooks;->waitUntilAllThreadsStopped()V
-Ljava/awt/font/NumericShaper$Range;->base:I
-Ljava/awt/font/NumericShaper$Range;->end:I
-Ljava/awt/font/NumericShaper$Range;->getDigitBase()I
-Ljava/awt/font/NumericShaper$Range;->getNumericBase()C
-Ljava/awt/font/NumericShaper$Range;->indexToRange(I)Ljava/awt/font/NumericShaper$Range;
-Ljava/awt/font/NumericShaper$Range;->inRange(I)Z
-Ljava/awt/font/NumericShaper$Range;->maskToRangeSet(I)Ljava/util/Set;
-Ljava/awt/font/NumericShaper$Range;->start:I
-Ljava/awt/font/NumericShaper$Range;->toRangeIndex(Ljava/awt/font/NumericShaper$Range;)I
-Ljava/awt/font/NumericShaper$Range;->toRangeMask(Ljava/util/Set;)I
-Ljava/awt/font/NumericShaper;-><init>(II)V
-Ljava/awt/font/NumericShaper;-><init>(Ljava/awt/font/NumericShaper$Range;Ljava/util/Set;)V
-Ljava/awt/font/NumericShaper;->ARABIC_KEY:I
-Ljava/awt/font/NumericShaper;->bases:[C
-Ljava/awt/font/NumericShaper;->BENGALI_KEY:I
-Ljava/awt/font/NumericShaper;->BSEARCH_THRESHOLD:I
-Ljava/awt/font/NumericShaper;->checkParams([CII)V
-Ljava/awt/font/NumericShaper;->contexts:[C
-Ljava/awt/font/NumericShaper;->CONTEXTUAL_MASK:I
-Ljava/awt/font/NumericShaper;->ctCache:I
-Ljava/awt/font/NumericShaper;->ctCacheLimit:I
-Ljava/awt/font/NumericShaper;->currentRange:Ljava/awt/font/NumericShaper$Range;
-Ljava/awt/font/NumericShaper;->DEVANAGARI_KEY:I
-Ljava/awt/font/NumericShaper;->EASTERN_ARABIC_KEY:I
-Ljava/awt/font/NumericShaper;->ETHIOPIC_KEY:I
-Ljava/awt/font/NumericShaper;->EUROPEAN_KEY:I
-Ljava/awt/font/NumericShaper;->getContextKey(C)I
-Ljava/awt/font/NumericShaper;->getHighBit(I)I
-Ljava/awt/font/NumericShaper;->getKeyFromMask(I)I
-Ljava/awt/font/NumericShaper;->GUJARATI_KEY:I
-Ljava/awt/font/NumericShaper;->GURMUKHI_KEY:I
-Ljava/awt/font/NumericShaper;->isStrongDirectional(C)Z
-Ljava/awt/font/NumericShaper;->KANNADA_KEY:I
-Ljava/awt/font/NumericShaper;->key:I
-Ljava/awt/font/NumericShaper;->KHMER_KEY:I
-Ljava/awt/font/NumericShaper;->LAO_KEY:I
-Ljava/awt/font/NumericShaper;->MALAYALAM_KEY:I
-Ljava/awt/font/NumericShaper;->mask:I
-Ljava/awt/font/NumericShaper;->MONGOLIAN_KEY:I
-Ljava/awt/font/NumericShaper;->MYANMAR_KEY:I
-Ljava/awt/font/NumericShaper;->NUM_KEYS:I
-Ljava/awt/font/NumericShaper;->ORIYA_KEY:I
-Ljava/awt/font/NumericShaper;->rangeArray:[Ljava/awt/font/NumericShaper$Range;
-Ljava/awt/font/NumericShaper;->rangeForCodePoint(I)Ljava/awt/font/NumericShaper$Range;
-Ljava/awt/font/NumericShaper;->rangeSet:Ljava/util/Set;
-Ljava/awt/font/NumericShaper;->search(I[III)I
-Ljava/awt/font/NumericShaper;->shapeContextually([CIII)V
-Ljava/awt/font/NumericShaper;->shapeContextually([CIILjava/awt/font/NumericShaper$Range;)V
-Ljava/awt/font/NumericShaper;->shapeNonContextually([CII)V
-Ljava/awt/font/NumericShaper;->shapingRange:Ljava/awt/font/NumericShaper$Range;
-Ljava/awt/font/NumericShaper;->stCache:I
-Ljava/awt/font/NumericShaper;->strongTable:[I
-Ljava/awt/font/NumericShaper;->TAMIL_KEY:I
-Ljava/awt/font/NumericShaper;->TELUGU_KEY:I
-Ljava/awt/font/NumericShaper;->THAI_KEY:I
-Ljava/awt/font/NumericShaper;->TIBETAN_KEY:I
-Ljava/awt/font/TextAttribute;->instanceMap:Ljava/util/Map;
-Ljava/beans/ChangeListenerMap;-><init>()V
-Ljava/beans/ChangeListenerMap;->add(Ljava/lang/String;Ljava/util/EventListener;)V
-Ljava/beans/ChangeListenerMap;->extract(Ljava/util/EventListener;)Ljava/util/EventListener;
-Ljava/beans/ChangeListenerMap;->get(Ljava/lang/String;)[Ljava/util/EventListener;
-Ljava/beans/ChangeListenerMap;->getEntries()Ljava/util/Set;
-Ljava/beans/ChangeListenerMap;->getListeners()[Ljava/util/EventListener;
-Ljava/beans/ChangeListenerMap;->getListeners(Ljava/lang/String;)[Ljava/util/EventListener;
-Ljava/beans/ChangeListenerMap;->hasListeners(Ljava/lang/String;)Z
-Ljava/beans/ChangeListenerMap;->map:Ljava/util/Map;
-Ljava/beans/ChangeListenerMap;->newArray(I)[Ljava/util/EventListener;
-Ljava/beans/ChangeListenerMap;->newProxy(Ljava/lang/String;Ljava/util/EventListener;)Ljava/util/EventListener;
-Ljava/beans/ChangeListenerMap;->remove(Ljava/lang/String;Ljava/util/EventListener;)V
-Ljava/beans/ChangeListenerMap;->set(Ljava/lang/String;[Ljava/util/EventListener;)V
-Ljava/beans/IndexedPropertyChangeEvent;->appendTo(Ljava/lang/StringBuilder;)V
-Ljava/beans/IndexedPropertyChangeEvent;->index:I
-Ljava/beans/PropertyChangeEvent;->appendTo(Ljava/lang/StringBuilder;)V
-Ljava/beans/PropertyChangeEvent;->newValue:Ljava/lang/Object;
-Ljava/beans/PropertyChangeEvent;->oldValue:Ljava/lang/Object;
-Ljava/beans/PropertyChangeEvent;->propagationId:Ljava/lang/Object;
-Ljava/beans/PropertyChangeEvent;->propertyName:Ljava/lang/String;
-Ljava/beans/PropertyChangeListenerProxy;->propertyName:Ljava/lang/String;
-Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;-><init>()V
-Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->EMPTY:[Ljava/beans/PropertyChangeListener;
-Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->extract(Ljava/beans/PropertyChangeListener;)Ljava/beans/PropertyChangeListener;
-Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->newArray(I)[Ljava/beans/PropertyChangeListener;
-Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->newProxy(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)Ljava/beans/PropertyChangeListener;
-Ljava/beans/PropertyChangeSupport;->fire([Ljava/beans/PropertyChangeListener;Ljava/beans/PropertyChangeEvent;)V
-Ljava/beans/PropertyChangeSupport;->map:Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;
-Ljava/beans/PropertyChangeSupport;->source:Ljava/lang/Object;
-Ljava/io/BufferedInputStream;->bufUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
-Ljava/io/BufferedInputStream;->DEFAULT_BUFFER_SIZE:I
-Ljava/io/BufferedInputStream;->fill()V
-Ljava/io/BufferedInputStream;->getBufIfOpen()[B
-Ljava/io/BufferedInputStream;->getInIfOpen()Ljava/io/InputStream;
-Ljava/io/BufferedInputStream;->MAX_BUFFER_SIZE:I
-Ljava/io/BufferedInputStream;->read1([BII)I
-Ljava/io/BufferedOutputStream;->flushBuffer()V
-Ljava/io/BufferedReader;->cb:[C
-Ljava/io/BufferedReader;->defaultCharBufferSize:I
-Ljava/io/BufferedReader;->defaultExpectedLineLength:I
-Ljava/io/BufferedReader;->ensureOpen()V
-Ljava/io/BufferedReader;->fill()V
-Ljava/io/BufferedReader;->in:Ljava/io/Reader;
-Ljava/io/BufferedReader;->INVALIDATED:I
-Ljava/io/BufferedReader;->markedChar:I
-Ljava/io/BufferedReader;->markedSkipLF:Z
-Ljava/io/BufferedReader;->nChars:I
-Ljava/io/BufferedReader;->nextChar:I
-Ljava/io/BufferedReader;->read1([CII)I
-Ljava/io/BufferedReader;->readAheadLimit:I
-Ljava/io/BufferedReader;->readLine(Z)Ljava/lang/String;
-Ljava/io/BufferedReader;->skipLF:Z
-Ljava/io/BufferedReader;->UNMARKED:I
-Ljava/io/BufferedWriter;->cb:[C
-Ljava/io/BufferedWriter;->defaultCharBufferSize:I
-Ljava/io/BufferedWriter;->ensureOpen()V
-Ljava/io/BufferedWriter;->flushBuffer()V
-Ljava/io/BufferedWriter;->lineSeparator:Ljava/lang/String;
-Ljava/io/BufferedWriter;->min(II)I
-Ljava/io/BufferedWriter;->nChars:I
-Ljava/io/BufferedWriter;->nextChar:I
-Ljava/io/BufferedWriter;->out:Ljava/io/Writer;
-Ljava/io/ByteArrayOutputStream;->ensureCapacity(I)V
-Ljava/io/ByteArrayOutputStream;->grow(I)V
-Ljava/io/ByteArrayOutputStream;->hugeCapacity(I)I
-Ljava/io/ByteArrayOutputStream;->MAX_ARRAY_SIZE:I
-Ljava/io/CharArrayReader;->ensureOpen()V
-Ljava/io/Console$LineReader;->cb:[C
-Ljava/io/Console$LineReader;->in:Ljava/io/Reader;
-Ljava/io/Console$LineReader;->leftoverLF:Z
-Ljava/io/Console$LineReader;->nChars:I
-Ljava/io/Console$LineReader;->nextChar:I
-Ljava/io/Console;-><init>()V
-Ljava/io/Console;-><init>(Ljava/io/InputStream;Ljava/io/OutputStream;)V
-Ljava/io/Console;->cons:Ljava/io/Console;
-Ljava/io/Console;->console()Ljava/io/Console;
-Ljava/io/Console;->cs:Ljava/nio/charset/Charset;
-Ljava/io/Console;->echo(Z)Z
-Ljava/io/Console;->echoOff:Z
-Ljava/io/Console;->formatter:Ljava/util/Formatter;
-Ljava/io/Console;->grow()[C
-Ljava/io/Console;->istty()Z
-Ljava/io/Console;->out:Ljava/io/Writer;
-Ljava/io/Console;->pw:Ljava/io/PrintWriter;
-Ljava/io/Console;->rcb:[C
-Ljava/io/Console;->reader:Ljava/io/Reader;
-Ljava/io/Console;->readline(Z)[C
-Ljava/io/Console;->readLock:Ljava/lang/Object;
-Ljava/io/Console;->writeLock:Ljava/lang/Object;
-Ljava/io/DataInputStream;->bytearr:[B
-Ljava/io/DataInputStream;->chararr:[C
-Ljava/io/DataInputStream;->lineBuffer:[C
-Ljava/io/DataInputStream;->readBuffer:[B
-Ljava/io/DataOutputStream;->bytearr:[B
-Ljava/io/DataOutputStream;->incCount(I)V
-Ljava/io/DataOutputStream;->writeBuffer:[B
-Ljava/io/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I
-Ljava/io/File$PathStatus;->CHECKED:Ljava/io/File$PathStatus;
-Ljava/io/File$PathStatus;->INVALID:Ljava/io/File$PathStatus;
-Ljava/io/File$PathStatus;->valueOf(Ljava/lang/String;)Ljava/io/File$PathStatus;
-Ljava/io/File$PathStatus;->values()[Ljava/io/File$PathStatus;
-Ljava/io/File$TempDirectory;-><init>()V
-Ljava/io/File$TempDirectory;->generateFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
-Ljava/io/File;-><init>(Ljava/lang/String;I)V
-Ljava/io/File;-><init>(Ljava/lang/String;Ljava/io/File;)V
-Ljava/io/File;->getPrefixLength()I
-Ljava/io/File;->isInvalid()Z
-Ljava/io/File;->PATH_OFFSET:J
-Ljava/io/File;->PREFIX_LENGTH_OFFSET:J
-Ljava/io/File;->slashify(Ljava/lang/String;Z)Ljava/lang/String;
-Ljava/io/File;->UNSAFE:Lsun/misc/Unsafe;
-Ljava/io/FileDescriptor;-><init>(I)V
-Ljava/io/FileDescriptor;->dupFd(I)Ljava/io/FileDescriptor;
-Ljava/io/FileDescriptor;->isSocket(I)Z
-Ljava/io/FileInputStream$UseManualSkipException;-><init>()V
-Ljava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;Z)V
-Ljava/io/FileInputStream;->available0()I
-Ljava/io/FileInputStream;->channel:Ljava/nio/channels/FileChannel;
-Ljava/io/FileInputStream;->closed:Z
-Ljava/io/FileInputStream;->closeLock:Ljava/lang/Object;
-Ljava/io/FileInputStream;->guard:Ldalvik/system/CloseGuard;
-Ljava/io/FileInputStream;->isFdOwner:Z
-Ljava/io/FileInputStream;->open(Ljava/lang/String;)V
-Ljava/io/FileInputStream;->open0(Ljava/lang/String;)V
-Ljava/io/FileInputStream;->path:Ljava/lang/String;
-Ljava/io/FileInputStream;->skip0(J)J
-Ljava/io/FileInputStream;->tracker:Llibcore/io/IoTracker;
-Ljava/io/FileNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;Z)V
-Ljava/io/FileOutputStream;->append:Z
-Ljava/io/FileOutputStream;->closed:Z
-Ljava/io/FileOutputStream;->closeLock:Ljava/lang/Object;
-Ljava/io/FileOutputStream;->guard:Ldalvik/system/CloseGuard;
-Ljava/io/FileOutputStream;->isFdOwner:Z
-Ljava/io/FileOutputStream;->open(Ljava/lang/String;Z)V
-Ljava/io/FileOutputStream;->open0(Ljava/lang/String;Z)V
-Ljava/io/FileOutputStream;->path:Ljava/lang/String;
-Ljava/io/FileOutputStream;->tracker:Llibcore/io/IoTracker;
-Ljava/io/FileSystem;-><init>()V
-Ljava/io/FileSystem;->ACCESS_EXECUTE:I
-Ljava/io/FileSystem;->ACCESS_OK:I
-Ljava/io/FileSystem;->ACCESS_READ:I
-Ljava/io/FileSystem;->ACCESS_WRITE:I
-Ljava/io/FileSystem;->BA_DIRECTORY:I
-Ljava/io/FileSystem;->BA_EXISTS:I
-Ljava/io/FileSystem;->BA_HIDDEN:I
-Ljava/io/FileSystem;->BA_REGULAR:I
-Ljava/io/FileSystem;->getBooleanProperty(Ljava/lang/String;Z)Z
-Ljava/io/FileSystem;->SPACE_FREE:I
-Ljava/io/FileSystem;->SPACE_TOTAL:I
-Ljava/io/FileSystem;->SPACE_USABLE:I
-Ljava/io/FileSystem;->useCanonCaches:Z
-Ljava/io/FileSystem;->useCanonPrefixCache:Z
-Ljava/io/InputStream;->MAX_SKIP_BUFFER_SIZE:I
-Ljava/io/InputStreamReader;->sd:Lsun/nio/cs/StreamDecoder;
-Ljava/io/InterruptedIOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/io/InterruptedIOException;-><init>(Ljava/lang/Throwable;)V
-Ljava/io/LineNumberInputStream;->lineNumber:I
-Ljava/io/LineNumberInputStream;->markLineNumber:I
-Ljava/io/LineNumberInputStream;->markPushBack:I
-Ljava/io/LineNumberInputStream;->pushBack:I
-Ljava/io/LineNumberReader;->lineNumber:I
-Ljava/io/LineNumberReader;->markedLineNumber:I
-Ljava/io/LineNumberReader;->markedSkipLF:Z
-Ljava/io/LineNumberReader;->maxSkipBufferSize:I
-Ljava/io/LineNumberReader;->skipBuffer:[C
-Ljava/io/LineNumberReader;->skipLF:Z
-Ljava/io/ObjectInputStream$BlockDataInputStream;->blkmode:Z
-Ljava/io/ObjectInputStream$BlockDataInputStream;->buf:[B
-Ljava/io/ObjectInputStream$BlockDataInputStream;->cbuf:[C
-Ljava/io/ObjectInputStream$BlockDataInputStream;->CHAR_BUF_SIZE:I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->currentBlockRemaining()I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->din:Ljava/io/DataInputStream;
-Ljava/io/ObjectInputStream$BlockDataInputStream;->end:I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->getBlockDataMode()Z
-Ljava/io/ObjectInputStream$BlockDataInputStream;->hbuf:[B
-Ljava/io/ObjectInputStream$BlockDataInputStream;->HEADER_BLOCKED:I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->in:Ljava/io/ObjectInputStream$PeekInputStream;
-Ljava/io/ObjectInputStream$BlockDataInputStream;->MAX_BLOCK_SIZE:I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->MAX_HEADER_SIZE:I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->peek()I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->peekByte()B
-Ljava/io/ObjectInputStream$BlockDataInputStream;->pos:I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->read([BIIZ)I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readBlockHeader(Z)I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readBooleans([ZII)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readChars([CII)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readDoubles([DII)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readFloats([FII)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readFully([BIIZ)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readInts([III)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readLongs([JII)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readLongUTF()Ljava/lang/String;
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readShorts([SII)V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readUTFBody(J)Ljava/lang/String;
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readUTFChar(Ljava/lang/StringBuilder;J)I
-Ljava/io/ObjectInputStream$BlockDataInputStream;->readUTFSpan(Ljava/lang/StringBuilder;J)J
-Ljava/io/ObjectInputStream$BlockDataInputStream;->refill()V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->setBlockDataMode(Z)Z
-Ljava/io/ObjectInputStream$BlockDataInputStream;->skipBlockData()V
-Ljava/io/ObjectInputStream$BlockDataInputStream;->unread:I
-Ljava/io/ObjectInputStream$Caches;-><init>()V
-Ljava/io/ObjectInputStream$Caches;->subclassAudits:Ljava/util/concurrent/ConcurrentMap;
-Ljava/io/ObjectInputStream$Caches;->subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectInputStream$GetFieldImpl;->desc:Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectInputStream$GetFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
-Ljava/io/ObjectInputStream$GetFieldImpl;->objHandles:[I
-Ljava/io/ObjectInputStream$GetFieldImpl;->objVals:[Ljava/lang/Object;
-Ljava/io/ObjectInputStream$GetFieldImpl;->primVals:[B
-Ljava/io/ObjectInputStream$GetFieldImpl;->readFields()V
-Ljava/io/ObjectInputStream$HandleTable$HandleList;-><init>()V
-Ljava/io/ObjectInputStream$HandleTable$HandleList;->add(I)V
-Ljava/io/ObjectInputStream$HandleTable$HandleList;->get(I)I
-Ljava/io/ObjectInputStream$HandleTable$HandleList;->list:[I
-Ljava/io/ObjectInputStream$HandleTable$HandleList;->size()I
-Ljava/io/ObjectInputStream$HandleTable$HandleList;->size:I
-Ljava/io/ObjectInputStream$HandleTable;-><init>(I)V
-Ljava/io/ObjectInputStream$HandleTable;->assign(Ljava/lang/Object;)I
-Ljava/io/ObjectInputStream$HandleTable;->clear()V
-Ljava/io/ObjectInputStream$HandleTable;->deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
-Ljava/io/ObjectInputStream$HandleTable;->entries:[Ljava/lang/Object;
-Ljava/io/ObjectInputStream$HandleTable;->finish(I)V
-Ljava/io/ObjectInputStream$HandleTable;->grow()V
-Ljava/io/ObjectInputStream$HandleTable;->lookupException(I)Ljava/lang/ClassNotFoundException;
-Ljava/io/ObjectInputStream$HandleTable;->lookupObject(I)Ljava/lang/Object;
-Ljava/io/ObjectInputStream$HandleTable;->lowDep:I
-Ljava/io/ObjectInputStream$HandleTable;->markDependency(II)V
-Ljava/io/ObjectInputStream$HandleTable;->markException(ILjava/lang/ClassNotFoundException;)V
-Ljava/io/ObjectInputStream$HandleTable;->setObject(ILjava/lang/Object;)V
-Ljava/io/ObjectInputStream$HandleTable;->size()I
-Ljava/io/ObjectInputStream$HandleTable;->size:I
-Ljava/io/ObjectInputStream$HandleTable;->status:[B
-Ljava/io/ObjectInputStream$HandleTable;->STATUS_EXCEPTION:B
-Ljava/io/ObjectInputStream$HandleTable;->STATUS_OK:B
-Ljava/io/ObjectInputStream$HandleTable;->STATUS_UNKNOWN:B
-Ljava/io/ObjectInputStream$PeekInputStream;-><init>(Ljava/io/InputStream;)V
-Ljava/io/ObjectInputStream$PeekInputStream;->in:Ljava/io/InputStream;
-Ljava/io/ObjectInputStream$PeekInputStream;->peek()I
-Ljava/io/ObjectInputStream$PeekInputStream;->peekb:I
-Ljava/io/ObjectInputStream$PeekInputStream;->readFully([BII)V
-Ljava/io/ObjectInputStream$ValidationList$Callback;-><init>(Ljava/io/ObjectInputValidation;ILjava/io/ObjectInputStream$ValidationList$Callback;Ljava/security/AccessControlContext;)V
-Ljava/io/ObjectInputStream$ValidationList$Callback;->acc:Ljava/security/AccessControlContext;
-Ljava/io/ObjectInputStream$ValidationList$Callback;->next:Ljava/io/ObjectInputStream$ValidationList$Callback;
-Ljava/io/ObjectInputStream$ValidationList$Callback;->obj:Ljava/io/ObjectInputValidation;
-Ljava/io/ObjectInputStream$ValidationList$Callback;->priority:I
-Ljava/io/ObjectInputStream$ValidationList;-><init>()V
-Ljava/io/ObjectInputStream$ValidationList;->clear()V
-Ljava/io/ObjectInputStream$ValidationList;->doCallbacks()V
-Ljava/io/ObjectInputStream$ValidationList;->list:Ljava/io/ObjectInputStream$ValidationList$Callback;
-Ljava/io/ObjectInputStream$ValidationList;->register(Ljava/io/ObjectInputValidation;I)V
-Ljava/io/ObjectInputStream;->auditSubclass(Ljava/lang/Class;)Z
-Ljava/io/ObjectInputStream;->checkResolve(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->clear()V
-Ljava/io/ObjectInputStream;->cloneArray(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->closed:Z
-Ljava/io/ObjectInputStream;->curContext:Ljava/io/SerialCallbackContext;
-Ljava/io/ObjectInputStream;->defaultDataEnd:Z
-Ljava/io/ObjectInputStream;->defaultReadFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectInputStream;->depth:I
-Ljava/io/ObjectInputStream;->enableOverride:Z
-Ljava/io/ObjectInputStream;->enableResolve:Z
-Ljava/io/ObjectInputStream;->handleReset()V
-Ljava/io/ObjectInputStream;->handles:Ljava/io/ObjectInputStream$HandleTable;
-Ljava/io/ObjectInputStream;->isCustomSubclass()Z
-Ljava/io/ObjectInputStream;->latestUserDefinedLoader()Ljava/lang/ClassLoader;
-Ljava/io/ObjectInputStream;->NULL_HANDLE:I
-Ljava/io/ObjectInputStream;->passHandle:I
-Ljava/io/ObjectInputStream;->primClasses:Ljava/util/HashMap;
-Ljava/io/ObjectInputStream;->primVals:[B
-Ljava/io/ObjectInputStream;->readArray(Z)Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->readClass(Z)Ljava/lang/Class;
-Ljava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum;
-Ljava/io/ObjectInputStream;->readExternalData(Ljava/io/Externalizable;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectInputStream;->readFatalException()Ljava/io/IOException;
-Ljava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->readNonProxyDesc(Z)Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectInputStream;->readNull()Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->readObject0(Z)Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->readOrdinaryObject(Z)Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->readProxyDesc(Z)Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectInputStream;->readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectInputStream;->readString(Z)Ljava/lang/String;
-Ljava/io/ObjectInputStream;->readTypeString()Ljava/lang/String;
-Ljava/io/ObjectInputStream;->skipCustomData()V
-Ljava/io/ObjectInputStream;->unsharedMarker:Ljava/lang/Object;
-Ljava/io/ObjectInputStream;->verifySubclass()V
-Ljava/io/ObjectInputStream;->vlist:Ljava/io/ObjectInputStream$ValidationList;
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;-><init>(Ljava/io/OutputStream;)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->blkmode:Z
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->buf:[B
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->cbuf:[C
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->CHAR_BUF_SIZE:I
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->dout:Ljava/io/DataOutputStream;
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->drain()V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->getBlockDataMode()Z
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->getUTFLength(Ljava/lang/String;)J
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->hbuf:[B
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->MAX_BLOCK_SIZE:I
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->MAX_HEADER_SIZE:I
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->out:Ljava/io/OutputStream;
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->pos:I
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->setBlockDataMode(Z)Z
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->warnIfClosed()V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->warnOnceWhenWriting:Z
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->write([BIIZ)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeBlockHeader(I)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeBooleans([ZII)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeChars([CII)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeDoubles([DII)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloats([FII)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeInts([III)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeLongs([JII)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeLongUTF(Ljava/lang/String;)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeLongUTF(Ljava/lang/String;J)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeShorts([SII)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;J)V
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTFBody(Ljava/lang/String;)V
-Ljava/io/ObjectOutputStream$Caches;-><init>()V
-Ljava/io/ObjectOutputStream$Caches;->subclassAudits:Ljava/util/concurrent/ConcurrentMap;
-Ljava/io/ObjectOutputStream$Caches;->subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;-><init>()V
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->clear()V
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->pop()V
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->push(Ljava/lang/String;)V
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->stack:Ljava/util/List;
-Ljava/io/ObjectOutputStream$HandleTable;-><init>(IF)V
-Ljava/io/ObjectOutputStream$HandleTable;->assign(Ljava/lang/Object;)I
-Ljava/io/ObjectOutputStream$HandleTable;->clear()V
-Ljava/io/ObjectOutputStream$HandleTable;->growEntries()V
-Ljava/io/ObjectOutputStream$HandleTable;->growSpine()V
-Ljava/io/ObjectOutputStream$HandleTable;->hash(Ljava/lang/Object;)I
-Ljava/io/ObjectOutputStream$HandleTable;->insert(Ljava/lang/Object;I)V
-Ljava/io/ObjectOutputStream$HandleTable;->loadFactor:F
-Ljava/io/ObjectOutputStream$HandleTable;->lookup(Ljava/lang/Object;)I
-Ljava/io/ObjectOutputStream$HandleTable;->next:[I
-Ljava/io/ObjectOutputStream$HandleTable;->objs:[Ljava/lang/Object;
-Ljava/io/ObjectOutputStream$HandleTable;->size()I
-Ljava/io/ObjectOutputStream$HandleTable;->size:I
-Ljava/io/ObjectOutputStream$HandleTable;->spine:[I
-Ljava/io/ObjectOutputStream$HandleTable;->threshold:I
-Ljava/io/ObjectOutputStream$PutFieldImpl;->desc:Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectOutputStream$PutFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
-Ljava/io/ObjectOutputStream$PutFieldImpl;->objVals:[Ljava/lang/Object;
-Ljava/io/ObjectOutputStream$PutFieldImpl;->primVals:[B
-Ljava/io/ObjectOutputStream$PutFieldImpl;->writeFields()V
-Ljava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V
-Ljava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/io/ObjectOutputStream$ReplaceTable;->clear()V
-Ljava/io/ObjectOutputStream$ReplaceTable;->grow()V
-Ljava/io/ObjectOutputStream$ReplaceTable;->htab:Ljava/io/ObjectOutputStream$HandleTable;
-Ljava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/io/ObjectOutputStream$ReplaceTable;->reps:[Ljava/lang/Object;
-Ljava/io/ObjectOutputStream$ReplaceTable;->size()I
-Ljava/io/ObjectOutputStream;->auditSubclass(Ljava/lang/Class;)Z
-Ljava/io/ObjectOutputStream;->bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
-Ljava/io/ObjectOutputStream;->clear()V
-Ljava/io/ObjectOutputStream;->curContext:Ljava/io/SerialCallbackContext;
-Ljava/io/ObjectOutputStream;->curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
-Ljava/io/ObjectOutputStream;->debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
-Ljava/io/ObjectOutputStream;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectOutputStream;->depth:I
-Ljava/io/ObjectOutputStream;->doublesToBytes([DI[BII)V
-Ljava/io/ObjectOutputStream;->enableOverride:Z
-Ljava/io/ObjectOutputStream;->enableReplace:Z
-Ljava/io/ObjectOutputStream;->extendedDebugInfo:Z
-Ljava/io/ObjectOutputStream;->floatsToBytes([FI[BII)V
-Ljava/io/ObjectOutputStream;->getProtocolVersion()I
-Ljava/io/ObjectOutputStream;->handles:Ljava/io/ObjectOutputStream$HandleTable;
-Ljava/io/ObjectOutputStream;->isCustomSubclass()Z
-Ljava/io/ObjectOutputStream;->primVals:[B
-Ljava/io/ObjectOutputStream;->subs:Ljava/io/ObjectOutputStream$ReplaceTable;
-Ljava/io/ObjectOutputStream;->verifySubclass()V
-Ljava/io/ObjectOutputStream;->writeArray(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectOutputStream;->writeClass(Ljava/lang/Class;Z)V
-Ljava/io/ObjectOutputStream;->writeClassDesc(Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectOutputStream;->writeEnum(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectOutputStream;->writeExternalData(Ljava/io/Externalizable;)V
-Ljava/io/ObjectOutputStream;->writeFatalException(Ljava/io/IOException;)V
-Ljava/io/ObjectOutputStream;->writeHandle(I)V
-Ljava/io/ObjectOutputStream;->writeNonProxyDesc(Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectOutputStream;->writeNull()V
-Ljava/io/ObjectOutputStream;->writeObject0(Ljava/lang/Object;Z)V
-Ljava/io/ObjectOutputStream;->writeOrdinaryObject(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectOutputStream;->writeProxyDesc(Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectOutputStream;->writeSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectOutputStream;->writeString(Ljava/lang/String;Z)V
-Ljava/io/ObjectOutputStream;->writeTypeString(Ljava/lang/String;)V
-Ljava/io/ObjectStreamClass$Caches;-><init>()V
-Ljava/io/ObjectStreamClass$Caches;->localDescs:Ljava/util/concurrent/ConcurrentMap;
-Ljava/io/ObjectStreamClass$Caches;->localDescsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectStreamClass$Caches;->reflectors:Ljava/util/concurrent/ConcurrentMap;
-Ljava/io/ObjectStreamClass$Caches;->reflectorsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectStreamClass$ClassDataSlot;-><init>(Ljava/io/ObjectStreamClass;Z)V
-Ljava/io/ObjectStreamClass$ClassDataSlot;->desc:Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamClass$ClassDataSlot;->hasData:Z
-Ljava/io/ObjectStreamClass$EntryFuture;-><init>()V
-Ljava/io/ObjectStreamClass$EntryFuture;->entry:Ljava/lang/Object;
-Ljava/io/ObjectStreamClass$EntryFuture;->get()Ljava/lang/Object;
-Ljava/io/ObjectStreamClass$EntryFuture;->getOwner()Ljava/lang/Thread;
-Ljava/io/ObjectStreamClass$EntryFuture;->owner:Ljava/lang/Thread;
-Ljava/io/ObjectStreamClass$EntryFuture;->set(Ljava/lang/Object;)Z
-Ljava/io/ObjectStreamClass$EntryFuture;->unset:Ljava/lang/Object;
-Ljava/io/ObjectStreamClass$ExceptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/io/ObjectStreamClass$ExceptionInfo;->className:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$ExceptionInfo;->message:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$ExceptionInfo;->newInvalidClassException()Ljava/io/InvalidClassException;
-Ljava/io/ObjectStreamClass$FieldReflector;-><init>([Ljava/io/ObjectStreamField;)V
-Ljava/io/ObjectStreamClass$FieldReflector;->fields:[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass$FieldReflector;->getFields()[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass$FieldReflector;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-Ljava/io/ObjectStreamClass$FieldReflector;->getPrimFieldValues(Ljava/lang/Object;[B)V
-Ljava/io/ObjectStreamClass$FieldReflector;->numPrimFields:I
-Ljava/io/ObjectStreamClass$FieldReflector;->offsets:[I
-Ljava/io/ObjectStreamClass$FieldReflector;->readKeys:[J
-Ljava/io/ObjectStreamClass$FieldReflector;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-Ljava/io/ObjectStreamClass$FieldReflector;->setPrimFieldValues(Ljava/lang/Object;[B)V
-Ljava/io/ObjectStreamClass$FieldReflector;->typeCodes:[C
-Ljava/io/ObjectStreamClass$FieldReflector;->types:[Ljava/lang/Class;
-Ljava/io/ObjectStreamClass$FieldReflector;->unsafe:Lsun/misc/Unsafe;
-Ljava/io/ObjectStreamClass$FieldReflector;->writeKeys:[J
-Ljava/io/ObjectStreamClass$FieldReflectorKey;-><init>(Ljava/lang/Class;[Ljava/io/ObjectStreamField;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/io/ObjectStreamClass$FieldReflectorKey;->hash:I
-Ljava/io/ObjectStreamClass$FieldReflectorKey;->nullClass:Z
-Ljava/io/ObjectStreamClass$FieldReflectorKey;->sigs:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Constructor;)V
-Ljava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Field;)V
-Ljava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Method;)V
-Ljava/io/ObjectStreamClass$MemberSignature;->member:Ljava/lang/reflect/Member;
-Ljava/io/ObjectStreamClass$MemberSignature;->name:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$MemberSignature;->signature:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$WeakClassKey;-><init>(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/io/ObjectStreamClass$WeakClassKey;->hash:I
-Ljava/io/ObjectStreamClass;-><init>()V
-Ljava/io/ObjectStreamClass;-><init>(Ljava/lang/Class;)V
-Ljava/io/ObjectStreamClass;->checkDefaultSerialize()V
-Ljava/io/ObjectStreamClass;->checkDeserialize()V
-Ljava/io/ObjectStreamClass;->checkSerialize()V
-Ljava/io/ObjectStreamClass;->cl:Ljava/lang/Class;
-Ljava/io/ObjectStreamClass;->classNamesEqual(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/io/ObjectStreamClass;->cons:Ljava/lang/reflect/Constructor;
-Ljava/io/ObjectStreamClass;->dataLayout:[Ljava/io/ObjectStreamClass$ClassDataSlot;
-Ljava/io/ObjectStreamClass;->defaultSerializeEx:Ljava/io/ObjectStreamClass$ExceptionInfo;
-Ljava/io/ObjectStreamClass;->deserializeEx:Ljava/io/ObjectStreamClass$ExceptionInfo;
-Ljava/io/ObjectStreamClass;->externalizable:Z
-Ljava/io/ObjectStreamClass;->fieldRefl:Ljava/io/ObjectStreamClass$FieldReflector;
-Ljava/io/ObjectStreamClass;->getClassDataLayout()[Ljava/io/ObjectStreamClass$ClassDataSlot;
-Ljava/io/ObjectStreamClass;->getClassDataLayout0()[Ljava/io/ObjectStreamClass$ClassDataSlot;
-Ljava/io/ObjectStreamClass;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String;
-Ljava/io/ObjectStreamClass;->getDeclaredSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass;->getDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long;
-Ljava/io/ObjectStreamClass;->getDefaultSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass;->getExternalizableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-Ljava/io/ObjectStreamClass;->getField(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass;->getFields(Z)[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass;->getInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamClass;->getMethodSignature([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
-Ljava/io/ObjectStreamClass;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-Ljava/io/ObjectStreamClass;->getPackageName(Ljava/lang/Class;)Ljava/lang/String;
-Ljava/io/ObjectStreamClass;->getPrimFieldValues(Ljava/lang/Object;[B)V
-Ljava/io/ObjectStreamClass;->getPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamClass;->getReflector([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)Ljava/io/ObjectStreamClass$FieldReflector;
-Ljava/io/ObjectStreamClass;->getResolveException()Ljava/lang/ClassNotFoundException;
-Ljava/io/ObjectStreamClass;->getSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass;->getSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-Ljava/io/ObjectStreamClass;->getSuperDesc()Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamClass;->getVariantFor(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamClass;->hasBlockExternalData()Z
-Ljava/io/ObjectStreamClass;->hasBlockExternalData:Z
-Ljava/io/ObjectStreamClass;->hasReadResolveMethod()Z
-Ljava/io/ObjectStreamClass;->hasStaticInitializer(Ljava/lang/Class;Z)Z
-Ljava/io/ObjectStreamClass;->hasWriteObjectData:Z
-Ljava/io/ObjectStreamClass;->hasWriteObjectMethod()Z
-Ljava/io/ObjectStreamClass;->hasWriteReplaceMethod()Z
-Ljava/io/ObjectStreamClass;->initialized:Z
-Ljava/io/ObjectStreamClass;->initNonProxy(Ljava/io/ObjectStreamClass;Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectStreamClass;->initProxy(Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V
-Ljava/io/ObjectStreamClass;->invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V
-Ljava/io/ObjectStreamClass;->invokeReadObjectNoData(Ljava/lang/Object;)V
-Ljava/io/ObjectStreamClass;->invokeReadResolve(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/io/ObjectStreamClass;->invokeWriteObject(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V
-Ljava/io/ObjectStreamClass;->invokeWriteReplace(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/io/ObjectStreamClass;->isEnum()Z
-Ljava/io/ObjectStreamClass;->isEnum:Z
-Ljava/io/ObjectStreamClass;->isExternalizable()Z
-Ljava/io/ObjectStreamClass;->isInstantiable()Z
-Ljava/io/ObjectStreamClass;->isProxy()Z
-Ljava/io/ObjectStreamClass;->isProxy:Z
-Ljava/io/ObjectStreamClass;->isSerializable()Z
-Ljava/io/ObjectStreamClass;->localDesc:Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamClass;->lookup(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamClass;->matchFields([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)[Ljava/io/ObjectStreamField;
-Ljava/io/ObjectStreamClass;->MAX_SDK_TARGET_FOR_CLINIT_UIDGEN_WORKAROUND:I
-Ljava/io/ObjectStreamClass;->name:Ljava/lang/String;
-Ljava/io/ObjectStreamClass;->numObjFields:I
-Ljava/io/ObjectStreamClass;->packageEquals(Ljava/lang/Class;Ljava/lang/Class;)Z
-Ljava/io/ObjectStreamClass;->primDataSize:I
-Ljava/io/ObjectStreamClass;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
-Ljava/io/ObjectStreamClass;->readNonProxy(Ljava/io/ObjectInputStream;)V
-Ljava/io/ObjectStreamClass;->readObjectMethod:Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamClass;->readObjectNoDataMethod:Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamClass;->readResolveMethod:Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamClass;->requireInitialized()V
-Ljava/io/ObjectStreamClass;->resolveEx:Ljava/lang/ClassNotFoundException;
-Ljava/io/ObjectStreamClass;->serializable:Z
-Ljava/io/ObjectStreamClass;->serializeEx:Ljava/io/ObjectStreamClass$ExceptionInfo;
-Ljava/io/ObjectStreamClass;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-Ljava/io/ObjectStreamClass;->setPrimFieldValues(Ljava/lang/Object;[B)V
-Ljava/io/ObjectStreamClass;->suid:Ljava/lang/Long;
-Ljava/io/ObjectStreamClass;->superDesc:Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamClass;->throwMiscException(Ljava/lang/Throwable;)V
-Ljava/io/ObjectStreamClass;->writeNonProxy(Ljava/io/ObjectOutputStream;)V
-Ljava/io/ObjectStreamClass;->writeObjectMethod:Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamClass;->writeReplaceMethod:Ljava/lang/reflect/Method;
-Ljava/io/ObjectStreamField;-><init>(Ljava/lang/reflect/Field;ZZ)V
-Ljava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
-Ljava/io/ObjectStreamField;->field:Ljava/lang/reflect/Field;
-Ljava/io/ObjectStreamField;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String;
-Ljava/io/ObjectStreamField;->getSignature()Ljava/lang/String;
-Ljava/io/ObjectStreamField;->name:Ljava/lang/String;
-Ljava/io/ObjectStreamField;->offset:I
-Ljava/io/ObjectStreamField;->signature:Ljava/lang/String;
-Ljava/io/ObjectStreamField;->type:Ljava/lang/Class;
-Ljava/io/ObjectStreamField;->unshared:Z
-Ljava/io/OptionalDataException;-><init>(I)V
-Ljava/io/OptionalDataException;-><init>(Z)V
-Ljava/io/OutputStreamWriter;->flushBuffer()V
-Ljava/io/OutputStreamWriter;->se:Lsun/nio/cs/StreamEncoder;
-Ljava/io/PipedInputStream;->awaitSpace()V
-Ljava/io/PipedInputStream;->checkStateForReceive()V
-Ljava/io/PipedInputStream;->closedByReader:Z
-Ljava/io/PipedInputStream;->closedByWriter:Z
-Ljava/io/PipedInputStream;->connected:Z
-Ljava/io/PipedInputStream;->DEFAULT_PIPE_SIZE:I
-Ljava/io/PipedInputStream;->initPipe(I)V
-Ljava/io/PipedInputStream;->readSide:Ljava/lang/Thread;
-Ljava/io/PipedInputStream;->receive([BII)V
-Ljava/io/PipedInputStream;->receivedLast()V
-Ljava/io/PipedInputStream;->writeSide:Ljava/lang/Thread;
-Ljava/io/PipedOutputStream;->sink:Ljava/io/PipedInputStream;
-Ljava/io/PipedReader;->buffer:[C
-Ljava/io/PipedReader;->closedByReader:Z
-Ljava/io/PipedReader;->closedByWriter:Z
-Ljava/io/PipedReader;->connected:Z
-Ljava/io/PipedReader;->DEFAULT_PIPE_SIZE:I
-Ljava/io/PipedReader;->in:I
-Ljava/io/PipedReader;->initPipe(I)V
-Ljava/io/PipedReader;->out:I
-Ljava/io/PipedReader;->readSide:Ljava/lang/Thread;
-Ljava/io/PipedReader;->receive(I)V
-Ljava/io/PipedReader;->receive([CII)V
-Ljava/io/PipedReader;->receivedLast()V
-Ljava/io/PipedReader;->writeSide:Ljava/lang/Thread;
-Ljava/io/PipedWriter;->closed:Z
-Ljava/io/PipedWriter;->sink:Ljava/io/PipedReader;
-Ljava/io/PrintStream;-><init>(ZLjava/io/OutputStream;)V
-Ljava/io/PrintStream;-><init>(ZLjava/io/OutputStream;Ljava/nio/charset/Charset;)V
-Ljava/io/PrintStream;-><init>(ZLjava/nio/charset/Charset;Ljava/io/OutputStream;)V
-Ljava/io/PrintStream;->autoFlush:Z
-Ljava/io/PrintStream;->charOut:Ljava/io/OutputStreamWriter;
-Ljava/io/PrintStream;->charset:Ljava/nio/charset/Charset;
-Ljava/io/PrintStream;->closing:Z
-Ljava/io/PrintStream;->ensureOpen()V
-Ljava/io/PrintStream;->formatter:Ljava/util/Formatter;
-Ljava/io/PrintStream;->getTextOut()Ljava/io/BufferedWriter;
-Ljava/io/PrintStream;->newLine()V
-Ljava/io/PrintStream;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
-Ljava/io/PrintStream;->textOut:Ljava/io/BufferedWriter;
-Ljava/io/PrintStream;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/io/PrintStream;->trouble:Z
-Ljava/io/PrintStream;->write(Ljava/lang/String;)V
-Ljava/io/PrintStream;->write([C)V
-Ljava/io/PrintWriter;-><init>(Ljava/nio/charset/Charset;Ljava/io/File;)V
-Ljava/io/PrintWriter;->autoFlush:Z
-Ljava/io/PrintWriter;->ensureOpen()V
-Ljava/io/PrintWriter;->formatter:Ljava/util/Formatter;
-Ljava/io/PrintWriter;->lineSeparator:Ljava/lang/String;
-Ljava/io/PrintWriter;->newLine()V
-Ljava/io/PrintWriter;->psOut:Ljava/io/PrintStream;
-Ljava/io/PrintWriter;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/io/PrintWriter;->trouble:Z
-Ljava/io/PushbackInputStream;->ensureOpen()V
-Ljava/io/PushbackReader;->buf:[C
-Ljava/io/PushbackReader;->ensureOpen()V
-Ljava/io/PushbackReader;->pos:I
-Ljava/io/RandomAccessFile;->channel:Ljava/nio/channels/FileChannel;
-Ljava/io/RandomAccessFile;->closed:Z
-Ljava/io/RandomAccessFile;->closeLock:Ljava/lang/Object;
-Ljava/io/RandomAccessFile;->flushAfterWrite:I
-Ljava/io/RandomAccessFile;->FLUSH_FDATASYNC:I
-Ljava/io/RandomAccessFile;->FLUSH_FSYNC:I
-Ljava/io/RandomAccessFile;->FLUSH_NONE:I
-Ljava/io/RandomAccessFile;->guard:Ldalvik/system/CloseGuard;
-Ljava/io/RandomAccessFile;->ioTracker:Llibcore/io/IoTracker;
-Ljava/io/RandomAccessFile;->maybeSync()V
-Ljava/io/RandomAccessFile;->mode:I
-Ljava/io/RandomAccessFile;->path:Ljava/lang/String;
-Ljava/io/RandomAccessFile;->readBytes([BII)I
-Ljava/io/RandomAccessFile;->rw:Z
-Ljava/io/RandomAccessFile;->scratch:[B
-Ljava/io/RandomAccessFile;->writeBytes([BII)V
-Ljava/io/Reader;->maxSkipBufferSize:I
-Ljava/io/Reader;->skipBuffer:[C
-Ljava/io/SequenceInputStream;->e:Ljava/util/Enumeration;
-Ljava/io/SequenceInputStream;->in:Ljava/io/InputStream;
-Ljava/io/SequenceInputStream;->nextStream()V
-Ljava/io/SerialCallbackContext;-><init>(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-Ljava/io/SerialCallbackContext;->check()V
-Ljava/io/SerialCallbackContext;->checkAndSetUsed()V
-Ljava/io/SerialCallbackContext;->desc:Ljava/io/ObjectStreamClass;
-Ljava/io/SerialCallbackContext;->getDesc()Ljava/io/ObjectStreamClass;
-Ljava/io/SerialCallbackContext;->getObj()Ljava/lang/Object;
-Ljava/io/SerialCallbackContext;->obj:Ljava/lang/Object;
-Ljava/io/SerialCallbackContext;->setUsed()V
-Ljava/io/SerialCallbackContext;->thread:Ljava/lang/Thread;
-Ljava/io/StreamTokenizer;-><init>()V
-Ljava/io/StreamTokenizer;->buf:[C
-Ljava/io/StreamTokenizer;->ctype:[B
-Ljava/io/StreamTokenizer;->CT_ALPHA:B
-Ljava/io/StreamTokenizer;->CT_COMMENT:B
-Ljava/io/StreamTokenizer;->CT_DIGIT:B
-Ljava/io/StreamTokenizer;->CT_QUOTE:B
-Ljava/io/StreamTokenizer;->CT_WHITESPACE:B
-Ljava/io/StreamTokenizer;->eolIsSignificantP:Z
-Ljava/io/StreamTokenizer;->forceLower:Z
-Ljava/io/StreamTokenizer;->input:Ljava/io/InputStream;
-Ljava/io/StreamTokenizer;->LINENO:I
-Ljava/io/StreamTokenizer;->NEED_CHAR:I
-Ljava/io/StreamTokenizer;->peekc:I
-Ljava/io/StreamTokenizer;->pushedBack:Z
-Ljava/io/StreamTokenizer;->read()I
-Ljava/io/StreamTokenizer;->reader:Ljava/io/Reader;
-Ljava/io/StreamTokenizer;->SKIP_LF:I
-Ljava/io/StreamTokenizer;->slashSlashCommentsP:Z
-Ljava/io/StreamTokenizer;->slashStarCommentsP:Z
-Ljava/io/StreamTokenizer;->TT_NOTHING:I
-Ljava/io/StringReader;->ensureOpen()V
-Ljava/io/StringReader;->length:I
-Ljava/io/StringReader;->mark:I
-Ljava/io/StringReader;->next:I
-Ljava/io/StringReader;->str:Ljava/lang/String;
-Ljava/io/StringWriter;->buf:Ljava/lang/StringBuffer;
-Ljava/io/Writer;->writeBuffer:[C
-Ljava/io/Writer;->WRITE_BUFFER_SIZE:I
-Ljava/lang/AbstractStringBuilder;-><init>()V
-Ljava/lang/AbstractStringBuilder;-><init>(I)V
-Ljava/lang/AbstractStringBuilder;->append(D)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(F)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(I)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(J)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/Object;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(Ljava/lang/StringBuffer;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append(Z)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append([C)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->append([CII)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->appendCodePoint(I)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->capacity()I
-Ljava/lang/AbstractStringBuilder;->codePointAt(I)I
-Ljava/lang/AbstractStringBuilder;->codePointBefore(I)I
-Ljava/lang/AbstractStringBuilder;->codePointCount(II)I
-Ljava/lang/AbstractStringBuilder;->count:I
-Ljava/lang/AbstractStringBuilder;->delete(II)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->deleteCharAt(I)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->ensureCapacity(I)V
-Ljava/lang/AbstractStringBuilder;->ensureCapacityInternal(I)V
-Ljava/lang/AbstractStringBuilder;->getChars(II[CI)V
-Ljava/lang/AbstractStringBuilder;->getValue()[C
-Ljava/lang/AbstractStringBuilder;->hugeCapacity(I)I
-Ljava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;)I
-Ljava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;I)I
-Ljava/lang/AbstractStringBuilder;->insert(IC)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(ID)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(IF)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(II)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(IJ)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/Object;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(IZ)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(I[C)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->insert(I[CII)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;)I
-Ljava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;I)I
-Ljava/lang/AbstractStringBuilder;->MAX_ARRAY_SIZE:I
-Ljava/lang/AbstractStringBuilder;->newCapacity(I)I
-Ljava/lang/AbstractStringBuilder;->offsetByCodePoints(II)I
-Ljava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->reverse()Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AbstractStringBuilder;->reverseAllValidSurrogatePairs()V
-Ljava/lang/AbstractStringBuilder;->setCharAt(IC)V
-Ljava/lang/AbstractStringBuilder;->setLength(I)V
-Ljava/lang/AbstractStringBuilder;->substring(I)Ljava/lang/String;
-Ljava/lang/AbstractStringBuilder;->substring(II)Ljava/lang/String;
-Ljava/lang/AbstractStringBuilder;->trimToSize()V
-Ljava/lang/AndroidHardcodedSystemProperties;-><init>()V
-Ljava/lang/AndroidHardcodedSystemProperties;->JAVA_VERSION:Ljava/lang/String;
-Ljava/lang/AndroidHardcodedSystemProperties;->STATIC_PROPERTIES:[[Ljava/lang/String;
-Ljava/lang/annotation/AnnotationTypeMismatchException;->element:Ljava/lang/reflect/Method;
-Ljava/lang/annotation/AnnotationTypeMismatchException;->foundType:Ljava/lang/String;
-Ljava/lang/annotation/IncompleteAnnotationException;->annotationType:Ljava/lang/Class;
-Ljava/lang/annotation/IncompleteAnnotationException;->elementName:Ljava/lang/String;
-Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(II)V
-Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(III)V
-Ljava/lang/AssertionError;-><init>(Ljava/lang/String;)V
-Ljava/lang/Byte$ByteCache;-><init>()V
-Ljava/lang/Byte$ByteCache;->cache:[Ljava/lang/Byte;
-Ljava/lang/Byte;->DIGITS:[C
-Ljava/lang/Byte;->UPPER_CASE_DIGITS:[C
-Ljava/lang/Character$CharacterCache;-><init>()V
-Ljava/lang/Character$CharacterCache;->cache:[Ljava/lang/Character;
-Ljava/lang/Character$Subset;->name:Ljava/lang/String;
-Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;)V
-Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;Z)V
-Ljava/lang/Character$UnicodeBlock;->blocks:[Ljava/lang/Character$UnicodeBlock;
-Ljava/lang/Character$UnicodeBlock;->blockStarts:[I
-Ljava/lang/Character$UnicodeBlock;->map:Ljava/util/Map;
-Ljava/lang/Character$UnicodeScript;->aliases:Ljava/util/HashMap;
-Ljava/lang/Character$UnicodeScript;->scripts:[Ljava/lang/Character$UnicodeScript;
-Ljava/lang/Character$UnicodeScript;->scriptStarts:[I
-Ljava/lang/Character;->codePointAtImpl([CII)I
-Ljava/lang/Character;->codePointBeforeImpl([CII)I
-Ljava/lang/Character;->codePointCountImpl([CII)I
-Ljava/lang/Character;->digitImpl(II)I
-Ljava/lang/Character;->DIRECTIONALITY:[B
-Ljava/lang/Character;->ERROR:I
-Ljava/lang/Character;->getDirectionalityImpl(I)B
-Ljava/lang/Character;->getNameImpl(I)Ljava/lang/String;
-Ljava/lang/Character;->getNumericValueImpl(I)I
-Ljava/lang/Character;->getTypeImpl(I)I
-Ljava/lang/Character;->isAlphabeticImpl(I)Z
-Ljava/lang/Character;->isDefinedImpl(I)Z
-Ljava/lang/Character;->isDigitImpl(I)Z
-Ljava/lang/Character;->isIdentifierIgnorableImpl(I)Z
-Ljava/lang/Character;->isIdeographicImpl(I)Z
-Ljava/lang/Character;->isLetterImpl(I)Z
-Ljava/lang/Character;->isLetterOrDigitImpl(I)Z
-Ljava/lang/Character;->isLowerCaseImpl(I)Z
-Ljava/lang/Character;->isMirroredImpl(I)Z
-Ljava/lang/Character;->isSpaceCharImpl(I)Z
-Ljava/lang/Character;->isTitleCaseImpl(I)Z
-Ljava/lang/Character;->isUnicodeIdentifierPartImpl(I)Z
-Ljava/lang/Character;->isUnicodeIdentifierStartImpl(I)Z
-Ljava/lang/Character;->isUpperCaseImpl(I)Z
-Ljava/lang/Character;->isWhitespaceImpl(I)Z
-Ljava/lang/Character;->offsetByCodePointsImpl([CIIII)I
-Ljava/lang/Character;->toLowerCaseImpl(I)I
-Ljava/lang/Character;->toSurrogates(I[CI)V
-Ljava/lang/Character;->toTitleCaseImpl(I)I
-Ljava/lang/Character;->toUpperCaseImpl(I)I
-Ljava/lang/Class$Caches;-><init>()V
-Ljava/lang/Class$Caches;->genericInterfaces:Llibcore/util/BasicLruCache;
-Ljava/lang/Class;->ANNOTATION:I
-Ljava/lang/Class;->cannotCastMsg(Ljava/lang/Object;)Ljava/lang/String;
-Ljava/lang/Class;->classFlags:I
-Ljava/lang/Class;->classForName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
-Ljava/lang/Class;->classNameImpliesTopLevel()Z
-Ljava/lang/Class;->classSize:I
-Ljava/lang/Class;->componentType:Ljava/lang/Class;
-Ljava/lang/Class;->copiedMethodsOffset:S
-Ljava/lang/Class;->dexTypeIndex:I
-Ljava/lang/Class;->ENUM:I
-Ljava/lang/Class;->extData:Ldalvik/system/ClassExt;
-Ljava/lang/Class;->FINALIZABLE:I
-Ljava/lang/Class;->findInterfaceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
-Ljava/lang/Class;->getAccessFlags()I
-Ljava/lang/Class;->getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
-Ljava/lang/Class;->getDeclaredConstructorInternal([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-Ljava/lang/Class;->getDeclaredConstructorsInternal(Z)[Ljava/lang/reflect/Constructor;
-Ljava/lang/Class;->getDeclaredFieldsUnchecked(Z)[Ljava/lang/reflect/Field;
-Ljava/lang/Class;->getDeclaredMethodInternal(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
-Ljava/lang/Class;->getEnclosingConstructorNative()Ljava/lang/reflect/Constructor;
-Ljava/lang/Class;->getEnclosingMethodNative()Ljava/lang/reflect/Method;
-Ljava/lang/Class;->getEnumConstantsShared()[Ljava/lang/Object;
-Ljava/lang/Class;->getInnerClassFlags(I)I
-Ljava/lang/Class;->getInnerClassName()Ljava/lang/String;
-Ljava/lang/Class;->getInstanceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
-Ljava/lang/Class;->getInterfacesInternal()[Ljava/lang/Class;
-Ljava/lang/Class;->getNameNative()Ljava/lang/String;
-Ljava/lang/Class;->getPackageName$()Ljava/lang/String;
-Ljava/lang/Class;->getPrimitiveClass(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/lang/Class;->getPublicDeclaredFields()[Ljava/lang/reflect/Field;
-Ljava/lang/Class;->getPublicFieldRecursive(Ljava/lang/String;)Ljava/lang/reflect/Field;
-Ljava/lang/Class;->getPublicFieldsRecursive(Ljava/util/List;)V
-Ljava/lang/Class;->getPublicMethodRecursive(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
-Ljava/lang/Class;->getPublicMethodsInternal(Ljava/util/List;)V
-Ljava/lang/Class;->getSignatureAnnotation()[Ljava/lang/String;
-Ljava/lang/Class;->getSignatureAttribute()Ljava/lang/String;
-Ljava/lang/Class;->iFields:J
-Ljava/lang/Class;->isDeclaredAnnotationPresent(Ljava/lang/Class;)Z
-Ljava/lang/Class;->isFinalizable()Z
-Ljava/lang/Class;->isLocalOrAnonymousClass()Z
-Ljava/lang/Class;->isProxy()Z
-Ljava/lang/Class;->methods:J
-Ljava/lang/Class;->numReferenceInstanceFields:I
-Ljava/lang/Class;->numReferenceStaticFields:I
-Ljava/lang/Class;->objectSizeAllocFastPath:I
-Ljava/lang/Class;->primitiveType:I
-Ljava/lang/Class;->referenceInstanceOffsets:I
-Ljava/lang/Class;->resolveName(Ljava/lang/String;)Ljava/lang/String;
-Ljava/lang/Class;->sFields:J
-Ljava/lang/Class;->superClass:Ljava/lang/Class;
-Ljava/lang/Class;->SYNTHETIC:I
-Ljava/lang/Class;->virtualMethodsOffset:S
-Ljava/lang/Class;->vtable:Ljava/lang/Object;
-Ljava/lang/ClassLoader$SystemClassLoader;-><init>()V
-Ljava/lang/ClassLoader$SystemClassLoader;->loader:Ljava/lang/ClassLoader;
-Ljava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/ClassLoader;)V
-Ljava/lang/ClassLoader;->allocator:J
-Ljava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void;
-Ljava/lang/ClassLoader;->classTable:J
-Ljava/lang/ClassLoader;->createSystemClassLoader()Ljava/lang/ClassLoader;
-Ljava/lang/ClassLoader;->findBootstrapClassOrNull(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/lang/ClassLoader;->getBootstrapResource(Ljava/lang/String;)Ljava/net/URL;
-Ljava/lang/ClassLoader;->getBootstrapResources(Ljava/lang/String;)Ljava/util/Enumeration;
-Ljava/lang/ClassLoader;->packages:Ljava/util/HashMap;
-Ljava/lang/ClassLoader;->proxyCache:Ljava/util/Map;
-Ljava/lang/ClassNotFoundException;->ex:Ljava/lang/Throwable;
-Ljava/lang/Compiler;-><init>()V
-Ljava/lang/Daemons$Daemon;-><init>(Ljava/lang/String;)V
-Ljava/lang/Daemons$Daemon;->getStackTrace()[Ljava/lang/StackTraceElement;
-Ljava/lang/Daemons$Daemon;->interrupt()V
-Ljava/lang/Daemons$Daemon;->interrupt(Ljava/lang/Thread;)V
-Ljava/lang/Daemons$Daemon;->name:Ljava/lang/String;
-Ljava/lang/Daemons$Daemon;->postZygoteFork:Z
-Ljava/lang/Daemons$Daemon;->runInternal()V
-Ljava/lang/Daemons$Daemon;->startInternal()V
-Ljava/lang/Daemons$Daemon;->startPostZygoteFork()V
-Ljava/lang/Daemons$FinalizerDaemon;-><init>()V
-Ljava/lang/Daemons$FinalizerDaemon;->doFinalize(Ljava/lang/ref/FinalizerReference;)V
-Ljava/lang/Daemons$FinalizerDaemon;->progressCounter:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/lang/Daemons$FinalizerDaemon;->queue:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/Daemons$FinalizerDaemon;->runInternal()V
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;-><init>()V
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->finalizerTimedOut(Ljava/lang/Object;)V
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->getNeedToWork()Z
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->goToSleep()V
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->needToWork:Z
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->runInternal()V
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->sleepFor(J)Z
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->sleepUntilNeeded()Z
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->waitForFinalization()Ljava/lang/Object;
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;->wakeUp()V
-Ljava/lang/Daemons$HeapTaskDaemon;-><init>()V
-Ljava/lang/Daemons$HeapTaskDaemon;->INSTANCE:Ljava/lang/Daemons$HeapTaskDaemon;
-Ljava/lang/Daemons$HeapTaskDaemon;->interrupt(Ljava/lang/Thread;)V
-Ljava/lang/Daemons$HeapTaskDaemon;->runInternal()V
-Ljava/lang/Daemons$ReferenceQueueDaemon;-><init>()V
-Ljava/lang/Daemons$ReferenceQueueDaemon;->runInternal()V
-Ljava/lang/Daemons;-><init>()V
-Ljava/lang/Daemons;->NANOS_PER_MILLI:I
-Ljava/lang/Daemons;->NANOS_PER_SECOND:I
-Ljava/lang/Daemons;->requestGC()V
-Ljava/lang/Daemons;->startPostZygoteFork()V
-Ljava/lang/Enum;->sharedConstantsCache:Llibcore/util/BasicLruCache;
-Ljava/lang/EnumConstantNotPresentException;->constantName:Ljava/lang/String;
-Ljava/lang/EnumConstantNotPresentException;->enumType:Ljava/lang/Class;
-Ljava/lang/ExceptionInInitializerError;->exception:Ljava/lang/Throwable;
-Ljava/lang/InheritableThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
-Ljava/lang/InheritableThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
-Ljava/lang/Integer$IntegerCache;-><init>()V
-Ljava/lang/Integer$IntegerCache;->cache:[Ljava/lang/Integer;
-Ljava/lang/Integer$IntegerCache;->high:I
-Ljava/lang/Integer$IntegerCache;->low:I
-Ljava/lang/Integer;->DigitOnes:[C
-Ljava/lang/Integer;->digits:[C
-Ljava/lang/Integer;->DigitTens:[C
-Ljava/lang/Integer;->formatUnsignedInt(II[CII)I
-Ljava/lang/Integer;->getChars(II[C)V
-Ljava/lang/Integer;->sizeTable:[I
-Ljava/lang/Integer;->SMALL_NEG_VALUES:[Ljava/lang/String;
-Ljava/lang/Integer;->SMALL_NONNEG_VALUES:[Ljava/lang/String;
-Ljava/lang/Integer;->stringSize(I)I
-Ljava/lang/Integer;->toUnsignedString0(II)Ljava/lang/String;
-Ljava/lang/invoke/CallSite;-><init>(Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/CallSite;-><init>(Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/CallSite;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/CallSite;->checkTargetChange(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/CallSite;->getTargetVolatile()Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/CallSite;->GET_TARGET:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/CallSite;->initializeGetTarget()V
-Ljava/lang/invoke/CallSite;->makeDynamicInvoker()Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/CallSite;->setTargetNormal(Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/CallSite;->setTargetVolatile(Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/CallSite;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/CallSite;->TARGET_OFFSET:J
-Ljava/lang/invoke/CallSite;->wrongTargetType(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/WrongMethodTypeException;
-Ljava/lang/invoke/ConstantCallSite;->isFrozen:Z
-Ljava/lang/invoke/MethodHandle;-><init>(JILjava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/MethodHandle;->artFieldOrMethod:J
-Ljava/lang/invoke/MethodHandle;->asCollectorChecks(Ljava/lang/Class;I)Z
-Ljava/lang/invoke/MethodHandle;->asSpreaderChecks(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodHandle;->cachedSpreadInvoker:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandle;->duplicate()Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandle;->getHandleKind()I
-Ljava/lang/invoke/MethodHandle;->handleKind:I
-Ljava/lang/invoke/MethodHandle;->IGET:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_CALLSITE_TRANSFORM:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_DIRECT:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_INTERFACE:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_STATIC:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_SUPER:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_TRANSFORM:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_VAR_HANDLE:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_VAR_HANDLE_EXACT:I
-Ljava/lang/invoke/MethodHandle;->INVOKE_VIRTUAL:I
-Ljava/lang/invoke/MethodHandle;->IPUT:I
-Ljava/lang/invoke/MethodHandle;->nominalType:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodHandle;->SGET:I
-Ljava/lang/invoke/MethodHandle;->spreadArrayChecks(Ljava/lang/Class;I)V
-Ljava/lang/invoke/MethodHandle;->SPUT:I
-Ljava/lang/invoke/MethodHandle;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/MethodHandle;->transformInternal(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/MethodHandle;->type:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodHandleImpl$HandleInfo;-><init>(Ljava/lang/reflect/Member;Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->handle:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->member:Ljava/lang/reflect/Member;
-Ljava/lang/invoke/MethodHandleImpl;-><init>(JILjava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/MethodHandleImpl;->getMemberInternal()Ljava/lang/reflect/Member;
-Ljava/lang/invoke/MethodHandleImpl;->info:Ljava/lang/invoke/MethodHandleImpl$HandleInfo;
-Ljava/lang/invoke/MethodHandleImpl;->reveal()Ljava/lang/invoke/MethodHandleInfo;
-Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodHandles$Lookup;->accessFailedMessage(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/String;
-Ljava/lang/invoke/MethodHandles$Lookup;->allowedModes:I
-Ljava/lang/invoke/MethodHandles$Lookup;->ALL_MODES:I
-Ljava/lang/invoke/MethodHandles$Lookup;->checkAccess(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/String;)V
-Ljava/lang/invoke/MethodHandles$Lookup;->checkReturnType(Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/MethodHandles$Lookup;->checkSpecialCaller(Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodHandles$Lookup;->checkUnprivilegedlookupClass(Ljava/lang/Class;I)V
-Ljava/lang/invoke/MethodHandles$Lookup;->commonFieldChecks(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/Class;ZZ)V
-Ljava/lang/invoke/MethodHandles$Lookup;->createMethodHandle(Ljava/lang/reflect/Method;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->createMethodHandleForConstructor(Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findAccessor(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findAccessor(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/Class;IZ)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findFieldOfType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Field;
-Ljava/lang/invoke/MethodHandles$Lookup;->findSpecial(Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodType;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findStaticVarHandle(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findVarHandle(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findVirtualForMH(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->findVirtualForVH(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles$Lookup;->fixmods(I)I
-Ljava/lang/invoke/MethodHandles$Lookup;->hasPrivateAccess()Z
-Ljava/lang/invoke/MethodHandles$Lookup;->initMethodType(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodHandles$Lookup;->lookupClass:Ljava/lang/Class;
-Ljava/lang/invoke/MethodHandles$Lookup;->PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
-Ljava/lang/invoke/MethodHandles$Lookup;->throwMakeAccessException(Ljava/lang/String;Ljava/lang/Object;)V
-Ljava/lang/invoke/MethodHandles$Lookup;->unreflectVarHandle(Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/MethodHandles;-><init>()V
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([BI)B
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([CI)C
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([DI)D
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([FI)F
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([II)I
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([JI)J
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([SI)S
-Ljava/lang/invoke/MethodHandles;->arrayElementGetter([ZI)Z
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([BIB)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([CIC)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([DID)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([FIF)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([III)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([JIJ)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([SIS)V
-Ljava/lang/invoke/MethodHandles;->arrayElementSetter([ZIZ)V
-Ljava/lang/invoke/MethodHandles;->arrayElementVarHandle(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/MethodHandles;->byteArrayViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/MethodHandles;->byteBufferViewVarHandle(Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/MethodHandles;->checkClassIsArray(Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodHandles;->checkTypeIsViewable(Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodHandles;->collectArgumentsChecks(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodHandles;->copyTypes(Ljava/util/List;)Ljava/util/List;
-Ljava/lang/invoke/MethodHandles;->dropArgumentChecks(Ljava/lang/invoke/MethodType;ILjava/util/List;)I
-Ljava/lang/invoke/MethodHandles;->explicitCastArgumentsChecks(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/MethodHandles;->filterArgumentChecks(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/MethodHandles;->filterArgumentsCheckArity(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/MethodHandles;->filterReturnValueChecks(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/MethodHandles;->foldArgumentChecks(ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
-Ljava/lang/invoke/MethodHandles;->getMethodHandleImpl(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleImpl;
-Ljava/lang/invoke/MethodHandles;->identity(B)B
-Ljava/lang/invoke/MethodHandles;->identity(C)C
-Ljava/lang/invoke/MethodHandles;->identity(D)D
-Ljava/lang/invoke/MethodHandles;->identity(F)F
-Ljava/lang/invoke/MethodHandles;->identity(I)I
-Ljava/lang/invoke/MethodHandles;->identity(J)J
-Ljava/lang/invoke/MethodHandles;->identity(S)S
-Ljava/lang/invoke/MethodHandles;->identity(Z)Z
-Ljava/lang/invoke/MethodHandles;->insertArgumentsChecks(Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
-Ljava/lang/invoke/MethodHandles;->methodHandleForVarHandleAccessor(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles;->misMatchedTypes(Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/RuntimeException;
-Ljava/lang/invoke/MethodHandles;->permuteArgumentChecks([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
-Ljava/lang/invoke/MethodHandles;->varHandleExactInvoker(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandles;->varHandleInvoker(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;)V
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->hashcode:I
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;-><init>()V
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->add(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->expungeStaleElements()V
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->get(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->map:Ljava/util/concurrent/ConcurrentMap;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->stale:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/invoke/MethodType;-><init>()V
-Ljava/lang/invoke/MethodType;-><init>(Ljava/lang/Class;[Ljava/lang/Class;Z)V
-Ljava/lang/invoke/MethodType;-><init>([Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodType;->asCollectorType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->asSpreaderType(Ljava/lang/Class;I)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->basicType()Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->canConvert(Ljava/lang/Class;Ljava/lang/Class;)Z
-Ljava/lang/invoke/MethodType;->canConvertParameters([Ljava/lang/Class;[Ljava/lang/Class;)Z
-Ljava/lang/invoke/MethodType;->checkPtype(Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodType;->checkPtypes([Ljava/lang/Class;)I
-Ljava/lang/invoke/MethodType;->checkRtype(Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodType;->checkSlotCount(I)V
-Ljava/lang/invoke/MethodType;->equals(Ljava/lang/invoke/MethodType;)Z
-Ljava/lang/invoke/MethodType;->explicitCastEquivalentToAsType(Ljava/lang/Class;Ljava/lang/Class;)Z
-Ljava/lang/invoke/MethodType;->explicitCastEquivalentToAsType(Ljava/lang/invoke/MethodType;)Z
-Ljava/lang/invoke/MethodType;->form()Ljava/lang/invoke/MethodTypeForm;
-Ljava/lang/invoke/MethodType;->form:Ljava/lang/invoke/MethodTypeForm;
-Ljava/lang/invoke/MethodType;->internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;
-Ljava/lang/invoke/MethodType;->invokerType()Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->isConvertibleTo(Ljava/lang/invoke/MethodType;)Z
-Ljava/lang/invoke/MethodType;->isGeneric()Z
-Ljava/lang/invoke/MethodType;->lastParameterType()Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->leadingReferenceParameter()Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->listToArray(Ljava/util/List;)[Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->MAX_JVM_ARITY:I
-Ljava/lang/invoke/MethodType;->MAX_MH_ARITY:I
-Ljava/lang/invoke/MethodType;->MAX_MH_INVOKER_ARITY:I
-Ljava/lang/invoke/MethodType;->methodDescriptor:Ljava/lang/String;
-Ljava/lang/invoke/MethodType;->MethodType_init(Ljava/lang/Class;[Ljava/lang/Class;)V
-Ljava/lang/invoke/MethodType;->newIndexOutOfBoundsException(Ljava/lang/Object;)Ljava/lang/IndexOutOfBoundsException;
-Ljava/lang/invoke/MethodType;->NO_PTYPES:[Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->objectOnlyTypes:[Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->parameterSlotCount()I
-Ljava/lang/invoke/MethodType;->ptypes()[Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->ptypes:[Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->ptypesOffset:J
-Ljava/lang/invoke/MethodType;->rtype()Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->rtype:Ljava/lang/Class;
-Ljava/lang/invoke/MethodType;->rtypeOffset:J
-Ljava/lang/invoke/MethodType;->toFieldDescriptorString(Ljava/lang/Class;)Ljava/lang/String;
-Ljava/lang/invoke/MethodType;->unwrapWithNoPrims(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->wrapAlt:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodType;->wrapWithPrims(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;-><init>(Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/MethodTypeForm;->argCounts:J
-Ljava/lang/invoke/MethodTypeForm;->argSlotToParameter(I)I
-Ljava/lang/invoke/MethodTypeForm;->argToSlotTable:[I
-Ljava/lang/invoke/MethodTypeForm;->assertIsBasicType()Z
-Ljava/lang/invoke/MethodTypeForm;->basicType()Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;->basicType:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/Class;I)Ljava/lang/Class;
-Ljava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;->canonicalizeAll([Ljava/lang/Class;I)[Ljava/lang/Class;
-Ljava/lang/invoke/MethodTypeForm;->ERASE:I
-Ljava/lang/invoke/MethodTypeForm;->erasedType()Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;->erasedType:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;->findForm(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm;
-Ljava/lang/invoke/MethodTypeForm;->hasLongPrimitives()Z
-Ljava/lang/invoke/MethodTypeForm;->hasNonVoidPrimitives()Z
-Ljava/lang/invoke/MethodTypeForm;->hasPrimitives()Z
-Ljava/lang/invoke/MethodTypeForm;->INTS:I
-Ljava/lang/invoke/MethodTypeForm;->longPrimitiveParameterCount()I
-Ljava/lang/invoke/MethodTypeForm;->longPrimitiveReturnCount()I
-Ljava/lang/invoke/MethodTypeForm;->LONGS:I
-Ljava/lang/invoke/MethodTypeForm;->NO_CHANGE:I
-Ljava/lang/invoke/MethodTypeForm;->pack(IIII)J
-Ljava/lang/invoke/MethodTypeForm;->parameterCount()I
-Ljava/lang/invoke/MethodTypeForm;->parameterSlotCount()I
-Ljava/lang/invoke/MethodTypeForm;->parameterToArgSlot(I)I
-Ljava/lang/invoke/MethodTypeForm;->primCounts:J
-Ljava/lang/invoke/MethodTypeForm;->primitiveParameterCount()I
-Ljava/lang/invoke/MethodTypeForm;->primitiveReturnCount()I
-Ljava/lang/invoke/MethodTypeForm;->RAW_RETURN:I
-Ljava/lang/invoke/MethodTypeForm;->returnCount()I
-Ljava/lang/invoke/MethodTypeForm;->returnSlotCount()I
-Ljava/lang/invoke/MethodTypeForm;->slotToArgTable:[I
-Ljava/lang/invoke/MethodTypeForm;->unpack(JI)C
-Ljava/lang/invoke/MethodTypeForm;->UNWRAP:I
-Ljava/lang/invoke/MethodTypeForm;->WRAP:I
-Ljava/lang/invoke/Transformers$AlwaysThrow;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$AlwaysThrow;->exceptionType:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$AlwaysThrow;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$BindTo;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Object;)V
-Ljava/lang/invoke/Transformers$BindTo;->delegate:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$BindTo;->range:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$BindTo;->receiver:Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$BindTo;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$CatchException;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$CatchException;->exType:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$CatchException;->handler:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$CatchException;->handlerArgsRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$CatchException;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$CatchException;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$CollectArguments;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/Transformers$CollectArguments;->collector:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$CollectArguments;->collectorRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$CollectArguments;->pos:I
-Ljava/lang/invoke/Transformers$CollectArguments;->range1:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$CollectArguments;->range2:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$CollectArguments;->referencesOffset:I
-Ljava/lang/invoke/Transformers$CollectArguments;->stackFrameOffset:I
-Ljava/lang/invoke/Transformers$CollectArguments;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$CollectArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Collector;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;I)V
-Ljava/lang/invoke/Transformers$Collector;->arrayOffset:I
-Ljava/lang/invoke/Transformers$Collector;->arrayTypeChar:C
-Ljava/lang/invoke/Transformers$Collector;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$Collector;->numArrayArgs:I
-Ljava/lang/invoke/Transformers$Collector;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$Collector;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Constant;-><init>(Ljava/lang/Class;Ljava/lang/Object;)V
-Ljava/lang/invoke/Transformers$Constant;->asDouble:D
-Ljava/lang/invoke/Transformers$Constant;->asFloat:F
-Ljava/lang/invoke/Transformers$Constant;->asInt:I
-Ljava/lang/invoke/Transformers$Constant;->asLong:J
-Ljava/lang/invoke/Transformers$Constant;->asReference:Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$Constant;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Constant;->type:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$Constant;->typeChar:C
-Ljava/lang/invoke/Transformers$Construct;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/Transformers$Construct;->callerRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$Construct;->checkInstantiable(Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$Construct;->constructorHandle:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$Construct;->getConstructorHandle()Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$Construct;->isAbstract(Ljava/lang/Class;)Z
-Ljava/lang/invoke/Transformers$Construct;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$DropArguments;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;II)V
-Ljava/lang/invoke/Transformers$DropArguments;->delegate:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$DropArguments;->range1:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$DropArguments;->range2:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$DropArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->box(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCast(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastArguments(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastFromBoolean(ZLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastPrimitives(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastReturnValue(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCastToBoolean(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsByte(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)B
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsChar(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)C
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsDouble(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)D
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsFloat(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)F
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsInt(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)I
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsLong(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)J
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->readPrimitiveAsShort(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;)S
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->throwUnexpectedType(Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->toBoolean(B)Z
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->unbox(Ljava/lang/Object;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->unboxNonNull(Ljava/lang/Object;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;->unboxNull(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$FilterArguments;-><init>(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/Transformers$FilterArguments;->deriveType(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/Transformers$FilterArguments;->filters:[Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$FilterArguments;->pos:I
-Ljava/lang/invoke/Transformers$FilterArguments;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$FilterArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$FilterReturnValue;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/Transformers$FilterReturnValue;->allArgs:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$FilterReturnValue;->filter:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$FilterReturnValue;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$FilterReturnValue;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$FoldArguments;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/Transformers$FoldArguments;->combiner:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$FoldArguments;->combinerArgs:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$FoldArguments;->deriveType(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/Transformers$FoldArguments;->referencesOffset:I
-Ljava/lang/invoke/Transformers$FoldArguments;->stackFrameOffset:I
-Ljava/lang/invoke/Transformers$FoldArguments;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$FoldArguments;->targetArgs:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$FoldArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$GuardWithTest;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/Transformers$GuardWithTest;->fallback:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$GuardWithTest;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$GuardWithTest;->test:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$GuardWithTest;->testArgsRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$GuardWithTest;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$InsertArguments;-><init>(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)V
-Ljava/lang/invoke/Transformers$InsertArguments;->pos:I
-Ljava/lang/invoke/Transformers$InsertArguments;->range1:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$InsertArguments;->range2:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$InsertArguments;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$InsertArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$InsertArguments;->values:[Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$Invoker;-><init>(Ljava/lang/invoke/MethodType;Z)V
-Ljava/lang/invoke/Transformers$Invoker;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$Invoker;->isExactInvoker:Z
-Ljava/lang/invoke/Transformers$Invoker;->targetType:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/Transformers$Invoker;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$PermuteArguments;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;[I)V
-Ljava/lang/invoke/Transformers$PermuteArguments;->reorder:[I
-Ljava/lang/invoke/Transformers$PermuteArguments;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$PermuteArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;-><init>(Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;->arrayClass:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;-><init>(Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;->arrayClass:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceIdentity;-><init>(Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$ReferenceIdentity;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceIdentity;->type:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$Spreader;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;I)V
-Ljava/lang/invoke/Transformers$Spreader;->arrayOffset:I
-Ljava/lang/invoke/Transformers$Spreader;->arrayTypeChar:C
-Ljava/lang/invoke/Transformers$Spreader;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
-Ljava/lang/invoke/Transformers$Spreader;->numArrayArgs:I
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([BLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([CLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([DLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([FLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ILdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([JLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([Ljava/lang/Object;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([SLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ZLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
-Ljava/lang/invoke/Transformers$Spreader;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$Spreader;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;I)V
-Ljava/lang/invoke/Transformers$VarargsCollector;-><init>(Ljava/lang/invoke/MethodHandle;)V
-Ljava/lang/invoke/Transformers$VarargsCollector;->arityArgumentsConvertible([Ljava/lang/Class;ILjava/lang/Class;)Z
-Ljava/lang/invoke/Transformers$VarargsCollector;->booleanArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->byteArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->charArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->collectArguments(CLjava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->copyParameter(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$VarargsCollector;->doubleArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->floatArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->intArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->lastParameterTypeIsAnArray([Ljava/lang/Class;)Z
-Ljava/lang/invoke/Transformers$VarargsCollector;->longArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->makeArityArray(Ljava/lang/invoke/MethodType;Ldalvik/system/EmulatedStackFrame$StackFrameReader;ILjava/lang/Class;)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->makeTargetFrameType(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/Transformers$VarargsCollector;->prepareFrame(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$VarargsCollector;->referenceArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->shortArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$VarargsCollector;->target:Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/Transformers$VarargsCollector;->throwWrongMethodTypeException(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
-Ljava/lang/invoke/Transformers$VarargsCollector;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers;-><init>()V
-Ljava/lang/invoke/Transformers;->TRANSFORM_INTERNAL:Ljava/lang/reflect/Method;
-Ljava/lang/invoke/VarHandle$AccessMode;->at:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_SET:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_ADD:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_ADD_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_ADD_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_AND:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_AND_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_AND_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_OR:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_OR_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_OR_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_XOR:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_XOR_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_BITWISE_XOR_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_SET:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_SET_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_AND_SET_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_OPAQUE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->GET_VOLATILE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->methodName()Ljava/lang/String;
-Ljava/lang/invoke/VarHandle$AccessMode;->methodName:Ljava/lang/String;
-Ljava/lang/invoke/VarHandle$AccessMode;->methodNameToAccessMode:Ljava/util/Map;
-Ljava/lang/invoke/VarHandle$AccessMode;->SET:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->SET_OPAQUE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->SET_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->SET_VOLATILE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->valueFromMethodName(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->valueOf(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->values()[Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET_PLAIN:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessType;->COMPARE_AND_EXCHANGE:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->COMPARE_AND_SWAP:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->GET:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->GET_AND_UPDATE:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->GET_AND_UPDATE_BITWISE:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->GET_AND_UPDATE_NUMERIC:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->SET:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->valueOf(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->values()[Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;Ljava/lang/Class;ZLjava/lang/Class;Ljava/lang/Class;)V
-Ljava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;Z)V
-Ljava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;ZLjava/lang/Class;)V
-Ljava/lang/invoke/VarHandle;->accessModesBitMask:I
-Ljava/lang/invoke/VarHandle;->accessModeType(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/VarHandle;->accessTypesToBitMask(Ljava/util/EnumSet;)I
-Ljava/lang/invoke/VarHandle;->alignedAccessModesBitMask(Ljava/lang/Class;Z)I
-Ljava/lang/invoke/VarHandle;->ALL_MODES_BIT_MASK:I
-Ljava/lang/invoke/VarHandle;->ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK:I
-Ljava/lang/invoke/VarHandle;->BITWISE_ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK:I
-Ljava/lang/invoke/VarHandle;->coordinateType0:Ljava/lang/Class;
-Ljava/lang/invoke/VarHandle;->coordinateType1:Ljava/lang/Class;
-Ljava/lang/invoke/VarHandle;->coordinateTypes()Ljava/util/List;
-Ljava/lang/invoke/VarHandle;->isAccessModeSupported(Ljava/lang/invoke/VarHandle$AccessMode;)Z
-Ljava/lang/invoke/VarHandle;->NUMERIC_ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK:I
-Ljava/lang/invoke/VarHandle;->READ_ACCESS_MODES_BIT_MASK:I
-Ljava/lang/invoke/VarHandle;->toMethodHandle(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/VarHandle;->unalignedAccessModesBitMask(Ljava/lang/Class;)I
-Ljava/lang/invoke/VarHandle;->UNSAFE:Lsun/misc/Unsafe;
-Ljava/lang/invoke/VarHandle;->varType()Ljava/lang/Class;
-Ljava/lang/invoke/VarHandle;->varType:Ljava/lang/Class;
-Ljava/lang/invoke/VarHandle;->WRITE_ACCESS_MODES_BIT_MASK:I
-Ljava/lang/invoke/WrongMethodTypeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/lang/invoke/WrongMethodTypeException;-><init>(Ljava/lang/Throwable;)V
-Ljava/lang/Long$LongCache;-><init>()V
-Ljava/lang/Long$LongCache;->cache:[Ljava/lang/Long;
-Ljava/lang/Long;->formatUnsignedLong(JI[CII)I
-Ljava/lang/Long;->getChars(JI[C)V
-Ljava/lang/Long;->stringSize(J)I
-Ljava/lang/Long;->toUnsignedBigInteger(J)Ljava/math/BigInteger;
-Ljava/lang/Long;->toUnsignedString0(JI)Ljava/lang/String;
-Ljava/lang/Math$RandomNumberGeneratorHolder;-><init>()V
-Ljava/lang/Math$RandomNumberGeneratorHolder;->randomNumberGenerator:Ljava/util/Random;
-Ljava/lang/Math;-><init>()V
-Ljava/lang/Math;->negativeZeroDoubleBits:J
-Ljava/lang/Math;->negativeZeroFloatBits:J
-Ljava/lang/Math;->powerOfTwoD(I)D
-Ljava/lang/Math;->powerOfTwoF(I)F
-Ljava/lang/Math;->randomIntInternal()I
-Ljava/lang/Math;->randomLongInternal()J
-Ljava/lang/Math;->setRandomSeedInternal(J)V
-Ljava/lang/Math;->twoToTheDoubleScaleDown:D
-Ljava/lang/Math;->twoToTheDoubleScaleUp:D
-Ljava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/lang/NumberFormatException;->forInputString(Ljava/lang/String;)Ljava/lang/NumberFormatException;
-Ljava/lang/Object;->identityHashCodeNative(Ljava/lang/Object;)I
-Ljava/lang/Object;->internalClone()Ljava/lang/Object;
-Ljava/lang/Object;->shadow$_klass_:Ljava/lang/Class;
-Ljava/lang/Object;->shadow$_monitor_:I
-Ljava/lang/Package;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;)V
-Ljava/lang/Package;-><init>(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;Ljava/lang/ClassLoader;)V
-Ljava/lang/Package;->defineSystemPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Package;
-Ljava/lang/Package;->getPackage(Ljava/lang/Class;)Ljava/lang/Package;
-Ljava/lang/Package;->getPackageInfo()Ljava/lang/Class;
-Ljava/lang/Package;->getSystemPackage(Ljava/lang/String;)Ljava/lang/Package;
-Ljava/lang/Package;->getSystemPackage0(Ljava/lang/String;)Ljava/lang/String;
-Ljava/lang/Package;->getSystemPackages()[Ljava/lang/Package;
-Ljava/lang/Package;->getSystemPackages0()[Ljava/lang/String;
-Ljava/lang/Package;->implTitle:Ljava/lang/String;
-Ljava/lang/Package;->implVendor:Ljava/lang/String;
-Ljava/lang/Package;->implVersion:Ljava/lang/String;
-Ljava/lang/Package;->loader:Ljava/lang/ClassLoader;
-Ljava/lang/Package;->loadManifest(Ljava/lang/String;)Ljava/util/jar/Manifest;
-Ljava/lang/Package;->mans:Ljava/util/Map;
-Ljava/lang/Package;->packageInfo:Ljava/lang/Class;
-Ljava/lang/Package;->pkgName:Ljava/lang/String;
-Ljava/lang/Package;->pkgs:Ljava/util/Map;
-Ljava/lang/Package;->sealBase:Ljava/net/URL;
-Ljava/lang/Package;->specTitle:Ljava/lang/String;
-Ljava/lang/Package;->specVendor:Ljava/lang/String;
-Ljava/lang/Package;->specVersion:Ljava/lang/String;
-Ljava/lang/Package;->urls:Ljava/util/Map;
-Ljava/lang/ProcessBuilder$NullInputStream;-><init>()V
-Ljava/lang/ProcessBuilder$NullInputStream;->INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
-Ljava/lang/ProcessBuilder$NullOutputStream;-><init>()V
-Ljava/lang/ProcessBuilder$NullOutputStream;->INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
-Ljava/lang/ProcessBuilder$Redirect;-><init>()V
-Ljava/lang/ProcessBuilder$Redirect;->append()Z
-Ljava/lang/ProcessBuilder;->command:Ljava/util/List;
-Ljava/lang/ProcessBuilder;->directory:Ljava/io/File;
-Ljava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder;
-Ljava/lang/ProcessBuilder;->environment:Ljava/util/Map;
-Ljava/lang/ProcessBuilder;->redirectErrorStream:Z
-Ljava/lang/ProcessBuilder;->redirects()[Ljava/lang/ProcessBuilder$Redirect;
-Ljava/lang/ProcessBuilder;->redirects:[Ljava/lang/ProcessBuilder$Redirect;
-Ljava/lang/ref/FinalizerReference$Sentinel;-><init>()V
-Ljava/lang/ref/FinalizerReference$Sentinel;->awaitFinalization(J)V
-Ljava/lang/ref/FinalizerReference$Sentinel;->finalized:Z
-Ljava/lang/ref/FinalizerReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/lang/ref/FinalizerReference;->enqueueSentinelReference(Ljava/lang/ref/FinalizerReference$Sentinel;)Z
-Ljava/lang/ref/FinalizerReference;->finalizeAllEnqueued(J)V
-Ljava/lang/ref/FinalizerReference;->getReferent()Ljava/lang/Object;
-Ljava/lang/ref/FinalizerReference;->LIST_LOCK:Ljava/lang/Object;
-Ljava/lang/ref/FinalizerReference;->makeCircularListIfUnenqueued()Z
-Ljava/lang/ref/FinalizerReference;->prev:Ljava/lang/ref/FinalizerReference;
-Ljava/lang/ref/FinalizerReference;->zombie:Ljava/lang/Object;
-Ljava/lang/ref/Reference$SinkHolder;-><init>()V
-Ljava/lang/ref/Reference$SinkHolder;->finalize_count:I
-Ljava/lang/ref/Reference$SinkHolder;->sink:Ljava/lang/Object;
-Ljava/lang/ref/Reference$SinkHolder;->sinkUser:Ljava/lang/Object;
-Ljava/lang/ref/Reference;-><init>(Ljava/lang/Object;)V
-Ljava/lang/ref/Reference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/lang/ref/Reference;->clearReferent()V
-Ljava/lang/ref/Reference;->disableIntrinsic:Z
-Ljava/lang/ref/Reference;->pendingNext:Ljava/lang/ref/Reference;
-Ljava/lang/ref/Reference;->queue:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/ref/Reference;->queueNext:Ljava/lang/ref/Reference;
-Ljava/lang/ref/Reference;->slowPathEnabled:Z
-Ljava/lang/ref/ReferenceQueue;->enqueue(Ljava/lang/ref/Reference;)Z
-Ljava/lang/ref/ReferenceQueue;->enqueueLocked(Ljava/lang/ref/Reference;)Z
-Ljava/lang/ref/ReferenceQueue;->enqueuePending(Ljava/lang/ref/Reference;)V
-Ljava/lang/ref/ReferenceQueue;->head:Ljava/lang/ref/Reference;
-Ljava/lang/ref/ReferenceQueue;->isEnqueued(Ljava/lang/ref/Reference;)Z
-Ljava/lang/ref/ReferenceQueue;->lock:Ljava/lang/Object;
-Ljava/lang/ref/ReferenceQueue;->reallyPollLocked()Ljava/lang/ref/Reference;
-Ljava/lang/ref/ReferenceQueue;->sQueueNextUnenqueued:Ljava/lang/ref/Reference;
-Ljava/lang/ref/ReferenceQueue;->tail:Ljava/lang/ref/Reference;
-Ljava/lang/ref/ReferenceQueue;->unenqueued:Ljava/lang/ref/Reference;
-Ljava/lang/ref/SoftReference;->clock:J
-Ljava/lang/ref/SoftReference;->timestamp:J
-Ljava/lang/reflect/AccessibleObject;->setAccessible0(Ljava/lang/reflect/AccessibleObject;Z)V
-Ljava/lang/reflect/Array;-><init>()V
-Ljava/lang/reflect/Array;->badArray(Ljava/lang/Object;)Ljava/lang/RuntimeException;
-Ljava/lang/reflect/Array;->createMultiArray(Ljava/lang/Class;[I)Ljava/lang/Object;
-Ljava/lang/reflect/Array;->createObjectArray(Ljava/lang/Class;I)Ljava/lang/Object;
-Ljava/lang/reflect/Array;->incompatibleType(Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
-Ljava/lang/reflect/Array;->newArray(Ljava/lang/Class;I)Ljava/lang/Object;
-Ljava/lang/reflect/Array;->notAnArray(Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
-Ljava/lang/reflect/Constructor;-><init>()V
-Ljava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/lang/reflect/Constructor;->hasGenericInformation()Z
-Ljava/lang/reflect/Constructor;->newInstanceFromSerialization(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Object;
-Ljava/lang/reflect/Constructor;->ORDER_BY_SIGNATURE:Ljava/util/Comparator;
-Ljava/lang/reflect/Constructor;->serializationClass:Ljava/lang/Class;
-Ljava/lang/reflect/Constructor;->serializationCtor:Ljava/lang/Class;
-Ljava/lang/reflect/Constructor;->specificToGenericStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Constructor;->specificToStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Executable$GenericInfo;-><init>(Llibcore/reflect/ListOfTypes;Llibcore/reflect/ListOfTypes;Ljava/lang/reflect/Type;[Ljava/lang/reflect/TypeVariable;)V
-Ljava/lang/reflect/Executable$GenericInfo;->formalTypeParameters:[Ljava/lang/reflect/TypeVariable;
-Ljava/lang/reflect/Executable$GenericInfo;->genericExceptionTypes:Llibcore/reflect/ListOfTypes;
-Ljava/lang/reflect/Executable$GenericInfo;->genericParameterTypes:Llibcore/reflect/ListOfTypes;
-Ljava/lang/reflect/Executable$GenericInfo;->genericReturnType:Ljava/lang/reflect/Type;
-Ljava/lang/reflect/Executable;-><init>()V
-Ljava/lang/reflect/Executable;->accessFlags:I
-Ljava/lang/reflect/Executable;->compareMethodParametersInternal(Ljava/lang/reflect/Method;)I
-Ljava/lang/reflect/Executable;->declaringClass:Ljava/lang/Class;
-Ljava/lang/reflect/Executable;->declaringClassOfOverriddenMethod:Ljava/lang/Class;
-Ljava/lang/reflect/Executable;->dexMethodIndex:I
-Ljava/lang/reflect/Executable;->equalNameAndParametersInternal(Ljava/lang/reflect/Method;)Z
-Ljava/lang/reflect/Executable;->equalParamTypes([Ljava/lang/Class;[Ljava/lang/Class;)Z
-Ljava/lang/reflect/Executable;->fixMethodFlags(I)I
-Ljava/lang/reflect/Executable;->getAccessFlags()I
-Ljava/lang/reflect/Executable;->getAllGenericParameterTypes()[Ljava/lang/reflect/Type;
-Ljava/lang/reflect/Executable;->getAnnotationNative(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
-Ljava/lang/reflect/Executable;->getArtMethod()J
-Ljava/lang/reflect/Executable;->getDeclaredAnnotationsNative()[Ljava/lang/annotation/Annotation;
-Ljava/lang/reflect/Executable;->getDeclaringClassInternal()Ljava/lang/Class;
-Ljava/lang/reflect/Executable;->getMethodNameInternal()Ljava/lang/String;
-Ljava/lang/reflect/Executable;->getMethodOrConstructorGenericInfoInternal()Ljava/lang/reflect/Executable$GenericInfo;
-Ljava/lang/reflect/Executable;->getMethodReturnTypeInternal()Ljava/lang/Class;
-Ljava/lang/reflect/Executable;->getModifiersInternal()I
-Ljava/lang/reflect/Executable;->getParameterAnnotationsInternal()[[Ljava/lang/annotation/Annotation;
-Ljava/lang/reflect/Executable;->getParameterAnnotationsNative()[[Ljava/lang/annotation/Annotation;
-Ljava/lang/reflect/Executable;->getParameterCountInternal()I
-Ljava/lang/reflect/Executable;->getParameters0()[Ljava/lang/reflect/Parameter;
-Ljava/lang/reflect/Executable;->getParameterTypesInternal()[Ljava/lang/Class;
-Ljava/lang/reflect/Executable;->getSignatureAnnotation()[Ljava/lang/String;
-Ljava/lang/reflect/Executable;->getSignatureAttribute()Ljava/lang/String;
-Ljava/lang/reflect/Executable;->hasGenericInformation()Z
-Ljava/lang/reflect/Executable;->hasGenericInformationInternal()Z
-Ljava/lang/reflect/Executable;->hasRealParameterData()Z
-Ljava/lang/reflect/Executable;->hasRealParameterData:Z
-Ljava/lang/reflect/Executable;->isAnnotationPresentNative(Ljava/lang/Class;)Z
-Ljava/lang/reflect/Executable;->isBridgeMethodInternal()Z
-Ljava/lang/reflect/Executable;->isDefaultMethodInternal()Z
-Ljava/lang/reflect/Executable;->parameters:[Ljava/lang/reflect/Parameter;
-Ljava/lang/reflect/Executable;->printModifiersIfNonzero(Ljava/lang/StringBuilder;IZ)V
-Ljava/lang/reflect/Executable;->privateGetParameters()[Ljava/lang/reflect/Parameter;
-Ljava/lang/reflect/Executable;->separateWithCommas([Ljava/lang/Class;Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Executable;->sharedToGenericString(IZ)Ljava/lang/String;
-Ljava/lang/reflect/Executable;->sharedToString(IZ[Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
-Ljava/lang/reflect/Executable;->specificToGenericStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Executable;->specificToStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Executable;->synthesizeAllParams()[Ljava/lang/reflect/Parameter;
-Ljava/lang/reflect/Executable;->verifyParameters([Ljava/lang/reflect/Parameter;)V
-Ljava/lang/reflect/Field;-><init>()V
-Ljava/lang/reflect/Field;->declaringClass:Ljava/lang/Class;
-Ljava/lang/reflect/Field;->dexFieldIndex:I
-Ljava/lang/reflect/Field;->getAnnotationNative(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
-Ljava/lang/reflect/Field;->getArtField()J
-Ljava/lang/reflect/Field;->getDexFieldIndex()I
-Ljava/lang/reflect/Field;->getNameInternal()Ljava/lang/String;
-Ljava/lang/reflect/Field;->getSignatureAnnotation()[Ljava/lang/String;
-Ljava/lang/reflect/Field;->getSignatureAttribute()Ljava/lang/String;
-Ljava/lang/reflect/Field;->isAnnotationPresentNative(Ljava/lang/Class;)Z
-Ljava/lang/reflect/Field;->offset:I
-Ljava/lang/reflect/Field;->type:Ljava/lang/Class;
-Ljava/lang/reflect/InvocationTargetException;->target:Ljava/lang/Throwable;
-Ljava/lang/reflect/Method;-><init>()V
-Ljava/lang/reflect/Method;->equalNameAndParameters(Ljava/lang/reflect/Method;)Z
-Ljava/lang/reflect/Method;->hasGenericInformation()Z
-Ljava/lang/reflect/Method;->ORDER_BY_SIGNATURE:Ljava/util/Comparator;
-Ljava/lang/reflect/Method;->specificToGenericStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Modifier;->ACCESS_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->ANNOTATION:I
-Ljava/lang/reflect/Modifier;->BRIDGE:I
-Ljava/lang/reflect/Modifier;->CLASS_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->CONSTRUCTOR:I
-Ljava/lang/reflect/Modifier;->CONSTRUCTOR_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->DEFAULT:I
-Ljava/lang/reflect/Modifier;->ENUM:I
-Ljava/lang/reflect/Modifier;->FIELD_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->INTERFACE_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->isConstructor(I)Z
-Ljava/lang/reflect/Modifier;->isMandated(I)Z
-Ljava/lang/reflect/Modifier;->isSynthetic(I)Z
-Ljava/lang/reflect/Modifier;->MANDATED:I
-Ljava/lang/reflect/Modifier;->METHOD_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->PARAMETER_MODIFIERS:I
-Ljava/lang/reflect/Modifier;->SYNTHETIC:I
-Ljava/lang/reflect/Modifier;->VARARGS:I
-Ljava/lang/reflect/Parameter;->executable:Ljava/lang/reflect/Executable;
-Ljava/lang/reflect/Parameter;->getAnnotationNative(Ljava/lang/reflect/Executable;ILjava/lang/Class;)Ljava/lang/annotation/Annotation;
-Ljava/lang/reflect/Parameter;->getRealName()Ljava/lang/String;
-Ljava/lang/reflect/Parameter;->index:I
-Ljava/lang/reflect/Parameter;->modifiers:I
-Ljava/lang/reflect/Parameter;->name:Ljava/lang/String;
-Ljava/lang/reflect/Parameter;->parameterClassCache:Ljava/lang/Class;
-Ljava/lang/reflect/Parameter;->parameterTypeCache:Ljava/lang/reflect/Type;
-Ljava/lang/reflect/Proxy$Key1;-><init>(Ljava/lang/Class;)V
-Ljava/lang/reflect/Proxy$Key1;->hash:I
-Ljava/lang/reflect/Proxy$Key2;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/lang/reflect/Proxy$Key2;->hash:I
-Ljava/lang/reflect/Proxy$Key2;->ref2:Ljava/lang/ref/WeakReference;
-Ljava/lang/reflect/Proxy$KeyFactory;-><init>()V
-Ljava/lang/reflect/Proxy$KeyFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Object;
-Ljava/lang/reflect/Proxy$KeyX;-><init>([Ljava/lang/Class;)V
-Ljava/lang/reflect/Proxy$KeyX;->equals([Ljava/lang/ref/WeakReference;[Ljava/lang/ref/WeakReference;)Z
-Ljava/lang/reflect/Proxy$KeyX;->hash:I
-Ljava/lang/reflect/Proxy$KeyX;->refs:[Ljava/lang/ref/WeakReference;
-Ljava/lang/reflect/Proxy$ProxyClassFactory;-><init>()V
-Ljava/lang/reflect/Proxy$ProxyClassFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
-Ljava/lang/reflect/Proxy$ProxyClassFactory;->nextUniqueNumber:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/lang/reflect/Proxy$ProxyClassFactory;->proxyClassNamePrefix:Ljava/lang/String;
-Ljava/lang/reflect/Proxy;-><init>()V
-Ljava/lang/reflect/Proxy;->constructorParams:[Ljava/lang/Class;
-Ljava/lang/reflect/Proxy;->deduplicateAndGetExceptions(Ljava/util/List;)Ljava/util/List;
-Ljava/lang/reflect/Proxy;->generateProxy(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/reflect/Method;[[Ljava/lang/Class;)Ljava/lang/Class;
-Ljava/lang/reflect/Proxy;->getMethods([Ljava/lang/Class;)Ljava/util/List;
-Ljava/lang/reflect/Proxy;->getMethodsRecursive([Ljava/lang/Class;Ljava/util/List;)V
-Ljava/lang/reflect/Proxy;->intersectExceptions([Ljava/lang/Class;[Ljava/lang/Class;)[Ljava/lang/Class;
-Ljava/lang/reflect/Proxy;->key0:Ljava/lang/Object;
-Ljava/lang/reflect/Proxy;->ORDER_BY_SIGNATURE_AND_SUBTYPE:Ljava/util/Comparator;
-Ljava/lang/reflect/Proxy;->proxyClassCache:Ljava/lang/reflect/WeakCache;
-Ljava/lang/reflect/Proxy;->validateReturnTypes(Ljava/util/List;)V
-Ljava/lang/reflect/UndeclaredThrowableException;->undeclaredThrowable:Ljava/lang/Throwable;
-Ljava/lang/reflect/WeakCache$CacheKey;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/lang/reflect/WeakCache$CacheKey;->expungeFrom(Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentMap;)V
-Ljava/lang/reflect/WeakCache$CacheKey;->hash:I
-Ljava/lang/reflect/WeakCache$CacheKey;->NULL_KEY:Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$CacheKey;->valueOf(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$CacheValue;-><init>(Ljava/lang/Object;)V
-Ljava/lang/reflect/WeakCache$CacheValue;->hash:I
-Ljava/lang/reflect/WeakCache$Factory;->key:Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$Factory;->parameter:Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$Factory;->subKey:Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$Factory;->valuesMap:Ljava/util/concurrent/ConcurrentMap;
-Ljava/lang/reflect/WeakCache$LookupValue;-><init>(Ljava/lang/Object;)V
-Ljava/lang/reflect/WeakCache$LookupValue;->value:Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache;-><init>(Ljava/util/function/BiFunction;Ljava/util/function/BiFunction;)V
-Ljava/lang/reflect/WeakCache;->containsValue(Ljava/lang/Object;)Z
-Ljava/lang/reflect/WeakCache;->expungeStaleEntries()V
-Ljava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache;->map:Ljava/util/concurrent/ConcurrentMap;
-Ljava/lang/reflect/WeakCache;->refQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/reflect/WeakCache;->reverseMap:Ljava/util/concurrent/ConcurrentMap;
-Ljava/lang/reflect/WeakCache;->size()I
-Ljava/lang/reflect/WeakCache;->subKeyFactory:Ljava/util/function/BiFunction;
-Ljava/lang/reflect/WeakCache;->valueFactory:Ljava/util/function/BiFunction;
-Ljava/lang/Runtime;->checkTargetSdkVersionForLoad(Ljava/lang/String;)V
-Ljava/lang/Runtime;->currentRuntime:Ljava/lang/Runtime;
-Ljava/lang/Runtime;->finalizeOnExit:Z
-Ljava/lang/Runtime;->getLibPaths()[Ljava/lang/String;
-Ljava/lang/Runtime;->initLibPaths()[Ljava/lang/String;
-Ljava/lang/Runtime;->load0(Ljava/lang/Class;Ljava/lang/String;)V
-Ljava/lang/Runtime;->nativeExit(I)V
-Ljava/lang/Runtime;->runFinalization0()V
-Ljava/lang/Runtime;->shutdownHooks:Ljava/util/List;
-Ljava/lang/Runtime;->shuttingDown:Z
-Ljava/lang/Runtime;->tracingMethods:Z
-Ljava/lang/Short$ShortCache;-><init>()V
-Ljava/lang/Short$ShortCache;->cache:[Ljava/lang/Short;
-Ljava/lang/StrictMath$RandomNumberGeneratorHolder;-><init>()V
-Ljava/lang/StrictMath$RandomNumberGeneratorHolder;->randomNumberGenerator:Ljava/util/Random;
-Ljava/lang/StrictMath;-><init>()V
-Ljava/lang/StrictMath;->floorOrCeil(DDDD)D
-Ljava/lang/String$CaseInsensitiveComparator;-><init>()V
-Ljava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
-Ljava/lang/String;->doReplace(CC)Ljava/lang/String;
-Ljava/lang/String;->fastSubstring(II)Ljava/lang/String;
-Ljava/lang/String;->getChars([CI)V
-Ljava/lang/String;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I
-Ljava/lang/String;->indexOfSupplementary(II)I
-Ljava/lang/String;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I
-Ljava/lang/String;->lastIndexOfSupplementary(II)I
-Ljava/lang/String;->nonSyncContentEquals(Ljava/lang/AbstractStringBuilder;)Z
-Ljava/lang/StringBuffer;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/StringBuffer;
-Ljava/lang/StringBuffer;->toStringCache:[C
-Ljava/lang/StringIndexOutOfBoundsException;-><init>(II)V
-Ljava/lang/StringIndexOutOfBoundsException;-><init>(III)V
-Ljava/lang/StringIndexOutOfBoundsException;-><init>(Ljava/lang/String;I)V
-Ljava/lang/StringIndexOutOfBoundsException;-><init>(Ljava/lang/String;II)V
-Ljava/lang/System$PropertiesWithNonOverrideableDefaults;-><init>(Ljava/util/Properties;)V
-Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/System;->addLegacyLocaleSystemProperties()V
-Ljava/lang/System;->arraycopy([DI[DII)V
-Ljava/lang/System;->arraycopyBooleanUnchecked([ZI[ZII)V
-Ljava/lang/System;->arraycopyByteUnchecked([BI[BII)V
-Ljava/lang/System;->arraycopyCharUnchecked([CI[CII)V
-Ljava/lang/System;->arraycopyDoubleUnchecked([DI[DII)V
-Ljava/lang/System;->arraycopyFloatUnchecked([FI[FII)V
-Ljava/lang/System;->arraycopyIntUnchecked([II[III)V
-Ljava/lang/System;->arraycopyLongUnchecked([JI[JII)V
-Ljava/lang/System;->arraycopyShortUnchecked([SI[SII)V
-Ljava/lang/System;->ARRAYCOPY_SHORT_BOOLEAN_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_BYTE_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_CHAR_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_DOUBLE_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_FLOAT_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_INT_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_LONG_ARRAY_THRESHOLD:I
-Ljava/lang/System;->ARRAYCOPY_SHORT_SHORT_ARRAY_THRESHOLD:I
-Ljava/lang/System;->checkKey(Ljava/lang/String;)V
-Ljava/lang/System;->cons:Ljava/io/Console;
-Ljava/lang/System;->initProperties()Ljava/util/Properties;
-Ljava/lang/System;->initUnchangeableSystemProperties()Ljava/util/Properties;
-Ljava/lang/System;->justRanFinalization:Z
-Ljava/lang/System;->lineSeparator:Ljava/lang/String;
-Ljava/lang/System;->LOCK:Ljava/lang/Object;
-Ljava/lang/System;->logI(Ljava/lang/String;)V
-Ljava/lang/System;->logI(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/lang/System;->logW(Ljava/lang/String;)V
-Ljava/lang/System;->newPrintStream(Ljava/io/FileOutputStream;Ljava/lang/String;)Ljava/io/PrintStream;
-Ljava/lang/System;->parsePropertyAssignments(Ljava/util/Properties;[Ljava/lang/String;)V
-Ljava/lang/System;->props:Ljava/util/Properties;
-Ljava/lang/System;->runGC:Z
-Ljava/lang/System;->setDefaultChangeableProperties(Ljava/util/Properties;)Ljava/util/Properties;
-Ljava/lang/System;->setErr0(Ljava/io/PrintStream;)V
-Ljava/lang/System;->setIn0(Ljava/io/InputStream;)V
-Ljava/lang/System;->setOut0(Ljava/io/PrintStream;)V
-Ljava/lang/System;->setUnchangeableSystemProperty(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/lang/System;->specialProperties()[Ljava/lang/String;
-Ljava/lang/System;->unchangeableProps:Ljava/util/Properties;
-Ljava/lang/Thread$Caches;-><init>()V
-Ljava/lang/Thread$Caches;->subclassAudits:Ljava/util/concurrent/ConcurrentMap;
-Ljava/lang/Thread$Caches;->subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/Thread$ParkState;-><init>()V
-Ljava/lang/Thread$ParkState;->PARKED:I
-Ljava/lang/Thread$ParkState;->PREEMPTIVELY_UNPARKED:I
-Ljava/lang/Thread$ParkState;->UNPARKED:I
-Ljava/lang/Thread$WeakClassKey;-><init>(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/lang/Thread$WeakClassKey;->hash:I
-Ljava/lang/Thread;->auditSubclass(Ljava/lang/Class;)Z
-Ljava/lang/Thread;->blockedOn(Lsun/nio/ch/Interruptible;)V
-Ljava/lang/Thread;->blocker:Lsun/nio/ch/Interruptible;
-Ljava/lang/Thread;->blockerLock:Ljava/lang/Object;
-Ljava/lang/Thread;->defaultUncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
-Ljava/lang/Thread;->eetop:J
-Ljava/lang/Thread;->EMPTY_STACK_TRACE:[Ljava/lang/StackTraceElement;
-Ljava/lang/Thread;->exit()V
-Ljava/lang/Thread;->init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
-Ljava/lang/Thread;->init2(Ljava/lang/Thread;)V
-Ljava/lang/Thread;->isCCLOverridden(Ljava/lang/Class;)Z
-Ljava/lang/Thread;->NANOS_PER_MILLI:I
-Ljava/lang/Thread;->nativeCreate(Ljava/lang/Thread;JZ)V
-Ljava/lang/Thread;->nativeGetStatus(Z)I
-Ljava/lang/Thread;->nativeHoldsLock(Ljava/lang/Object;)Z
-Ljava/lang/Thread;->nativeInterrupt()V
-Ljava/lang/Thread;->nativeParkEventPointer:J
-Ljava/lang/Thread;->nativeSetName(Ljava/lang/String;)V
-Ljava/lang/Thread;->nativeSetPriority(I)V
-Ljava/lang/Thread;->nextThreadID()J
-Ljava/lang/Thread;->nextThreadNum()I
-Ljava/lang/Thread;->parkFor$(J)V
-Ljava/lang/Thread;->parkState:I
-Ljava/lang/Thread;->parkUntil$(J)V
-Ljava/lang/Thread;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
-Ljava/lang/Thread;->setUncaughtExceptionPreHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
-Ljava/lang/Thread;->single_step:Z
-Ljava/lang/Thread;->sleep(Ljava/lang/Object;JI)V
-Ljava/lang/Thread;->stackSize:J
-Ljava/lang/Thread;->started:Z
-Ljava/lang/Thread;->stillborn:Z
-Ljava/lang/Thread;->SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/lang/RuntimePermission;
-Ljava/lang/Thread;->threadInitNumber:I
-Ljava/lang/Thread;->threadLocalRandomProbe:I
-Ljava/lang/Thread;->threadLocalRandomSecondarySeed:I
-Ljava/lang/Thread;->threadLocalRandomSeed:J
-Ljava/lang/Thread;->threadQ:Ljava/lang/Thread;
-Ljava/lang/Thread;->threadStatus:I
-Ljava/lang/Thread;->tid:J
-Ljava/lang/Thread;->uncaughtExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
-Ljava/lang/Thread;->uncaughtExceptionPreHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
-Ljava/lang/Thread;->unpark$()V
-Ljava/lang/ThreadGroup;-><init>()V
-Ljava/lang/ThreadGroup;-><init>(Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V
-Ljava/lang/ThreadGroup;->add(Ljava/lang/ThreadGroup;)V
-Ljava/lang/ThreadGroup;->addUnstarted()V
-Ljava/lang/ThreadGroup;->checkParentAccess(Ljava/lang/ThreadGroup;)Ljava/lang/Void;
-Ljava/lang/ThreadGroup;->daemon:Z
-Ljava/lang/ThreadGroup;->destroyed:Z
-Ljava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;IZ)I
-Ljava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;IZ)I
-Ljava/lang/ThreadGroup;->list(Ljava/io/PrintStream;I)V
-Ljava/lang/ThreadGroup;->maxPriority:I
-Ljava/lang/ThreadGroup;->nthreads:I
-Ljava/lang/ThreadGroup;->nUnstartedThreads:I
-Ljava/lang/ThreadGroup;->remove(Ljava/lang/Thread;)V
-Ljava/lang/ThreadGroup;->remove(Ljava/lang/ThreadGroup;)V
-Ljava/lang/ThreadGroup;->stopOrSuspend(Z)Z
-Ljava/lang/ThreadGroup;->threads:[Ljava/lang/Thread;
-Ljava/lang/ThreadGroup;->threadStartFailed(Ljava/lang/Thread;)V
-Ljava/lang/ThreadGroup;->vmAllowSuspension:Z
-Ljava/lang/ThreadLocal$SuppliedThreadLocal;-><init>(Ljava/util/function/Supplier;)V
-Ljava/lang/ThreadLocal$SuppliedThreadLocal;->supplier:Ljava/util/function/Supplier;
-Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
-Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;->value:Ljava/lang/Object;
-Ljava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;)V
-Ljava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->cleanSomeSlots(II)Z
-Ljava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntries()V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntry(I)I
-Ljava/lang/ThreadLocal$ThreadLocalMap;->getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
-Ljava/lang/ThreadLocal$ThreadLocalMap;->getEntryAfterMiss(Ljava/lang/ThreadLocal;ILjava/lang/ThreadLocal$ThreadLocalMap$Entry;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
-Ljava/lang/ThreadLocal$ThreadLocalMap;->INITIAL_CAPACITY:I
-Ljava/lang/ThreadLocal$ThreadLocalMap;->nextIndex(II)I
-Ljava/lang/ThreadLocal$ThreadLocalMap;->prevIndex(II)I
-Ljava/lang/ThreadLocal$ThreadLocalMap;->rehash()V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->remove(Ljava/lang/ThreadLocal;)V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->replaceStaleEntry(Ljava/lang/ThreadLocal;Ljava/lang/Object;I)V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->resize()V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->set(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->setThreshold(I)V
-Ljava/lang/ThreadLocal$ThreadLocalMap;->size:I
-Ljava/lang/ThreadLocal$ThreadLocalMap;->table:[Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
-Ljava/lang/ThreadLocal$ThreadLocalMap;->threshold:I
-Ljava/lang/ThreadLocal;->childValue(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/lang/ThreadLocal;->createInheritedMap(Ljava/lang/ThreadLocal$ThreadLocalMap;)Ljava/lang/ThreadLocal$ThreadLocalMap;
-Ljava/lang/ThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
-Ljava/lang/ThreadLocal;->HASH_INCREMENT:I
-Ljava/lang/ThreadLocal;->nextHashCode()I
-Ljava/lang/ThreadLocal;->nextHashCode:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/lang/ThreadLocal;->setInitialValue()Ljava/lang/Object;
-Ljava/lang/ThreadLocal;->threadLocalHashCode:I
-Ljava/lang/Throwable$PrintStreamOrWriter;-><init>()V
-Ljava/lang/Throwable$PrintStreamOrWriter;->lock()Ljava/lang/Object;
-Ljava/lang/Throwable$PrintStreamOrWriter;->println(Ljava/lang/Object;)V
-Ljava/lang/Throwable$SentinelHolder;-><init>()V
-Ljava/lang/Throwable$SentinelHolder;->STACK_TRACE_ELEMENT_SENTINEL:Ljava/lang/StackTraceElement;
-Ljava/lang/Throwable$SentinelHolder;->STACK_TRACE_SENTINEL:[Ljava/lang/StackTraceElement;
-Ljava/lang/Throwable$WrappedPrintStream;-><init>(Ljava/io/PrintStream;)V
-Ljava/lang/Throwable$WrappedPrintStream;->lock()Ljava/lang/Object;
-Ljava/lang/Throwable$WrappedPrintStream;->println(Ljava/lang/Object;)V
-Ljava/lang/Throwable$WrappedPrintStream;->printStream:Ljava/io/PrintStream;
-Ljava/lang/Throwable$WrappedPrintWriter;-><init>(Ljava/io/PrintWriter;)V
-Ljava/lang/Throwable$WrappedPrintWriter;->lock()Ljava/lang/Object;
-Ljava/lang/Throwable$WrappedPrintWriter;->println(Ljava/lang/Object;)V
-Ljava/lang/Throwable$WrappedPrintWriter;->printWriter:Ljava/io/PrintWriter;
-Ljava/lang/Throwable;->CAUSE_CAPTION:Ljava/lang/String;
-Ljava/lang/Throwable;->EMPTY_THROWABLE_ARRAY:[Ljava/lang/Throwable;
-Ljava/lang/Throwable;->nativeGetStackTrace(Ljava/lang/Object;)[Ljava/lang/StackTraceElement;
-Ljava/lang/Throwable;->NULL_CAUSE_MESSAGE:Ljava/lang/String;
-Ljava/lang/Throwable;->printEnclosedStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;[Ljava/lang/StackTraceElement;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-Ljava/lang/Throwable;->SELF_SUPPRESSION_MESSAGE:Ljava/lang/String;
-Ljava/lang/Throwable;->SUPPRESSED_CAPTION:Ljava/lang/String;
-Ljava/lang/TypeNotPresentException;->typeName:Ljava/lang/String;
-Ljava/math/BigDecimal;-><init>(II)V
-Ljava/math/BigDecimal;-><init>(JI)V
-Ljava/math/BigDecimal;->addAndMult10(Ljava/math/BigDecimal;Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;
-Ljava/math/BigDecimal;->approxPrecision()I
-Ljava/math/BigDecimal;->bitLength(I)I
-Ljava/math/BigDecimal;->bitLength(J)I
-Ljava/math/BigDecimal;->bitLength:I
-Ljava/math/BigDecimal;->BI_SCALED_BY_ZERO:[Ljava/math/BigDecimal;
-Ljava/math/BigDecimal;->BI_SCALED_BY_ZERO_LENGTH:I
-Ljava/math/BigDecimal;->CH_ZEROS:[C
-Ljava/math/BigDecimal;->compareAbsoluteValues(JJ)I
-Ljava/math/BigDecimal;->compareForRounding(JJ)I
-Ljava/math/BigDecimal;->decimalDigitsInLong(J)I
-Ljava/math/BigDecimal;->divideBigIntegers(Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
-Ljava/math/BigDecimal;->dividePrimitiveLongs(JJILjava/math/RoundingMode;)Ljava/math/BigDecimal;
-Ljava/math/BigDecimal;->FIVE_POW:[Ljava/math/BigInteger;
-Ljava/math/BigDecimal;->getUnscaledValue()Ljava/math/BigInteger;
-Ljava/math/BigDecimal;->hashCode:I
-Ljava/math/BigDecimal;->inplaceRound(Ljava/math/MathContext;)V
-Ljava/math/BigDecimal;->intVal:Ljava/math/BigInteger;
-Ljava/math/BigDecimal;->isZero()Z
-Ljava/math/BigDecimal;->LOG10_2:D
-Ljava/math/BigDecimal;->LONG_FIVE_POW:[J
-Ljava/math/BigDecimal;->LONG_FIVE_POW_BIT_LENGTH:[I
-Ljava/math/BigDecimal;->LONG_POWERS_OF_TEN_BIT_LENGTH:[I
-Ljava/math/BigDecimal;->movePoint(J)Ljava/math/BigDecimal;
-Ljava/math/BigDecimal;->precision:I
-Ljava/math/BigDecimal;->roundingBehavior(IILjava/math/RoundingMode;)I
-Ljava/math/BigDecimal;->safeLongToInt(J)I
-Ljava/math/BigDecimal;->scale:I
-Ljava/math/BigDecimal;->setUnscaledValue(Ljava/math/BigInteger;)V
-Ljava/math/BigDecimal;->smallRound(Ljava/math/MathContext;I)V
-Ljava/math/BigDecimal;->smallValue:J
-Ljava/math/BigDecimal;->TEN_POW:[Ljava/math/BigInteger;
-Ljava/math/BigDecimal;->toStringImage:Ljava/lang/String;
-Ljava/math/BigDecimal;->valueExact(I)J
-Ljava/math/BigDecimal;->zeroScaledBy(J)Ljava/math/BigDecimal;
-Ljava/math/BigDecimal;->ZERO_SCALED_BY:[Ljava/math/BigDecimal;
-Ljava/math/BigInt;-><init>()V
-Ljava/math/BigInt;->add(Ljava/math/BigInt;)V
-Ljava/math/BigInt;->addition(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->addPositiveInt(I)V
-Ljava/math/BigInt;->bigEndianMagnitude()[B
-Ljava/math/BigInt;->bigExp(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->bignum:J
-Ljava/math/BigInt;->bitLength()I
-Ljava/math/BigInt;->checkString(Ljava/lang/String;I)Ljava/lang/String;
-Ljava/math/BigInt;->cmp(Ljava/math/BigInt;Ljava/math/BigInt;)I
-Ljava/math/BigInt;->copy()Ljava/math/BigInt;
-Ljava/math/BigInt;->decString()Ljava/lang/String;
-Ljava/math/BigInt;->division(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)V
-Ljava/math/BigInt;->exp(Ljava/math/BigInt;I)Ljava/math/BigInt;
-Ljava/math/BigInt;->gcd(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->generatePrimeDefault(I)Ljava/math/BigInt;
-Ljava/math/BigInt;->hasNativeBignum()Z
-Ljava/math/BigInt;->hexString()Ljava/lang/String;
-Ljava/math/BigInt;->invalidBigInteger(Ljava/lang/String;)Ljava/lang/NumberFormatException;
-Ljava/math/BigInt;->isBitSet(I)Z
-Ljava/math/BigInt;->isPrime(I)Z
-Ljava/math/BigInt;->littleEndianIntsMagnitude()[I
-Ljava/math/BigInt;->longInt()J
-Ljava/math/BigInt;->makeValid()V
-Ljava/math/BigInt;->modExp(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->modInverse(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->modulus(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->multiplyByPositiveInt(I)V
-Ljava/math/BigInt;->newBigInt()Ljava/math/BigInt;
-Ljava/math/BigInt;->product(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->putBigEndian([BZ)V
-Ljava/math/BigInt;->putBigEndianTwosComplement([B)V
-Ljava/math/BigInt;->putCopy(Ljava/math/BigInt;)V
-Ljava/math/BigInt;->putDecString(Ljava/lang/String;)V
-Ljava/math/BigInt;->putHexString(Ljava/lang/String;)V
-Ljava/math/BigInt;->putLittleEndianInts([IZ)V
-Ljava/math/BigInt;->putLongInt(J)V
-Ljava/math/BigInt;->putULongInt(JZ)V
-Ljava/math/BigInt;->registry:Llibcore/util/NativeAllocationRegistry;
-Ljava/math/BigInt;->remainderByPositiveInt(Ljava/math/BigInt;I)I
-Ljava/math/BigInt;->setSign(I)V
-Ljava/math/BigInt;->shift(I)V
-Ljava/math/BigInt;->shift(Ljava/math/BigInt;I)Ljava/math/BigInt;
-Ljava/math/BigInt;->sign()I
-Ljava/math/BigInt;->subtraction(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
-Ljava/math/BigInt;->toAscii(Ljava/lang/String;I)Ljava/lang/String;
-Ljava/math/BigInt;->twosCompFitsIntoBytes(I)Z
-Ljava/math/BigInteger;-><init>(II[I)V
-Ljava/math/BigInteger;-><init>(IJ)V
-Ljava/math/BigInteger;-><init>(Ljava/math/BigInt;)V
-Ljava/math/BigInteger;->bigInt:Ljava/math/BigInt;
-Ljava/math/BigInteger;->copy()Ljava/math/BigInteger;
-Ljava/math/BigInteger;->digits:[I
-Ljava/math/BigInteger;->firstNonzeroDigit:I
-Ljava/math/BigInteger;->getBigInt()Ljava/math/BigInt;
-Ljava/math/BigInteger;->getFirstNonzeroDigit()I
-Ljava/math/BigInteger;->hashCode:I
-Ljava/math/BigInteger;->inplaceAdd([III)I
-Ljava/math/BigInteger;->isSmallPrime(I)Z
-Ljava/math/BigInteger;->javaIsValid:Z
-Ljava/math/BigInteger;->magnitude:[B
-Ljava/math/BigInteger;->MINUS_ONE:Ljava/math/BigInteger;
-Ljava/math/BigInteger;->multiplyByInt([I[III)I
-Ljava/math/BigInteger;->nativeIsValid:Z
-Ljava/math/BigInteger;->numberLength:I
-Ljava/math/BigInteger;->parseFromString(Ljava/math/BigInteger;Ljava/lang/String;I)V
-Ljava/math/BigInteger;->prepareJavaRepresentation()V
-Ljava/math/BigInteger;->setBigInt(Ljava/math/BigInt;)V
-Ljava/math/BigInteger;->setJavaRepresentation(II[I)V
-Ljava/math/BigInteger;->shiftLeftOneBit()Ljava/math/BigInteger;
-Ljava/math/BigInteger;->sign:I
-Ljava/math/BigInteger;->signum:I
-Ljava/math/BigInteger;->SMALL_VALUES:[Ljava/math/BigInteger;
-Ljava/math/BigInteger;->twosComplement()[B
-Ljava/math/MathContext;->checkValid()V
-Ljava/math/MathContext;->invalidMathContext(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
-Ljava/math/MathContext;->precision:I
-Ljava/math/MathContext;->roundingMode:Ljava/math/RoundingMode;
-Ljava/math/RoundingMode;->bigDecimalRM:I
-Ljava/net/Authenticator;->requestingAuthType:Ljava/net/Authenticator$RequestorType;
-Ljava/net/Authenticator;->requestingHost:Ljava/lang/String;
-Ljava/net/Authenticator;->requestingPort:I
-Ljava/net/Authenticator;->requestingPrompt:Ljava/lang/String;
-Ljava/net/Authenticator;->requestingProtocol:Ljava/lang/String;
-Ljava/net/Authenticator;->requestingScheme:Ljava/lang/String;
-Ljava/net/Authenticator;->requestingSite:Ljava/net/InetAddress;
-Ljava/net/Authenticator;->requestingURL:Ljava/net/URL;
-Ljava/net/Authenticator;->reset()V
-Ljava/net/BindException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/net/ConnectException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/net/CookieHandler;->cookieHandler:Ljava/net/CookieHandler;
-Ljava/net/CookieManager$CookiePathComparator;-><init>()V
-Ljava/net/CookieManager$CookiePathComparator;->compare(Ljava/net/HttpCookie;Ljava/net/HttpCookie;)I
-Ljava/net/CookieManager;->cookieJar:Ljava/net/CookieStore;
-Ljava/net/CookieManager;->isInPortList(Ljava/lang/String;I)Z
-Ljava/net/CookieManager;->normalizePath(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/CookieManager;->pathMatches(Ljava/net/URI;Ljava/net/HttpCookie;)Z
-Ljava/net/CookieManager;->policyCallback:Ljava/net/CookiePolicy;
-Ljava/net/CookieManager;->shouldAcceptInternal(Ljava/net/URI;Ljava/net/HttpCookie;)Z
-Ljava/net/CookieManager;->sortByPath(Ljava/util/List;)Ljava/util/List;
-Ljava/net/DatagramPacket;->address:Ljava/net/InetAddress;
-Ljava/net/DatagramPacket;->buf:[B
-Ljava/net/DatagramPacket;->bufLength:I
-Ljava/net/DatagramPacket;->length:I
-Ljava/net/DatagramPacket;->offset:I
-Ljava/net/DatagramPacket;->port:I
-Ljava/net/DatagramPacket;->setReceivedLength(I)V
-Ljava/net/DatagramSocket;->bound:Z
-Ljava/net/DatagramSocket;->bytesLeftToFilter:I
-Ljava/net/DatagramSocket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
-Ljava/net/DatagramSocket;->checkFiltering(Ljava/net/DatagramPacket;)Z
-Ljava/net/DatagramSocket;->checkOldImpl()V
-Ljava/net/DatagramSocket;->closed:Z
-Ljava/net/DatagramSocket;->closeLock:Ljava/lang/Object;
-Ljava/net/DatagramSocket;->connectedAddress:Ljava/net/InetAddress;
-Ljava/net/DatagramSocket;->connectedPort:I
-Ljava/net/DatagramSocket;->connectInternal(Ljava/net/InetAddress;I)V
-Ljava/net/DatagramSocket;->connectState:I
-Ljava/net/DatagramSocket;->created:Z
-Ljava/net/DatagramSocket;->createImpl()V
-Ljava/net/DatagramSocket;->explicitFilter:Z
-Ljava/net/DatagramSocket;->factory:Ljava/net/DatagramSocketImplFactory;
-Ljava/net/DatagramSocket;->getImpl()Ljava/net/DatagramSocketImpl;
-Ljava/net/DatagramSocket;->implClass:Ljava/lang/Class;
-Ljava/net/DatagramSocket;->oldImpl:Z
-Ljava/net/DatagramSocket;->pendingConnectException:Ljava/net/SocketException;
-Ljava/net/DatagramSocket;->ST_CONNECTED:I
-Ljava/net/DatagramSocket;->ST_CONNECTED_NO_IMPL:I
-Ljava/net/DatagramSocket;->ST_NOT_CONNECTED:I
-Ljava/net/DatagramSocketImpl;->dataAvailable()I
-Ljava/net/DatagramSocketImpl;->getDatagramSocket()Ljava/net/DatagramSocket;
-Ljava/net/DatagramSocketImpl;->getOption(Ljava/net/SocketOption;)Ljava/lang/Object;
-Ljava/net/DatagramSocketImpl;->setDatagramSocket(Ljava/net/DatagramSocket;)V
-Ljava/net/DatagramSocketImpl;->setOption(Ljava/net/SocketOption;Ljava/lang/Object;)V
-Ljava/net/DatagramSocketImpl;->socket:Ljava/net/DatagramSocket;
-Ljava/net/HttpCookie$CookieAttributeAssignor;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
-Ljava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Ljava/net/HttpCookie;->assignAttribute(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
-Ljava/net/HttpCookie;->equalsIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/net/HttpCookie;->GMT:Ljava/util/TimeZone;
-Ljava/net/HttpCookie;->guessCookieVersion(Ljava/lang/String;)I
-Ljava/net/HttpCookie;->header()Ljava/lang/String;
-Ljava/net/HttpCookie;->isFullyQualifiedDomainName(Ljava/lang/String;I)Z
-Ljava/net/HttpCookie;->isToken(Ljava/lang/String;)Z
-Ljava/net/HttpCookie;->MAX_AGE_UNSPECIFIED:J
-Ljava/net/HttpCookie;->parse(Ljava/lang/String;Z)Ljava/util/List;
-Ljava/net/HttpCookie;->parseInternal(Ljava/lang/String;Z)Ljava/net/HttpCookie;
-Ljava/net/HttpCookie;->RESERVED_NAMES:Ljava/util/Set;
-Ljava/net/HttpCookie;->SET_COOKIE2:Ljava/lang/String;
-Ljava/net/HttpCookie;->SET_COOKIE:Ljava/lang/String;
-Ljava/net/HttpCookie;->splitMultiCookies(Ljava/lang/String;)Ljava/util/List;
-Ljava/net/HttpCookie;->startsWithIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/net/HttpCookie;->stripOffSurroundingQuote(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/HttpCookie;->toNetscapeHeaderString()Ljava/lang/String;
-Ljava/net/HttpCookie;->toRFC2965HeaderString()Ljava/lang/String;
-Ljava/net/HttpRetryException;->location:Ljava/lang/String;
-Ljava/net/HttpRetryException;->responseCode:I
-Ljava/net/HttpURLConnection;->DEFAULT_CHUNK_SIZE:I
-Ljava/net/HttpURLConnection;->followRedirects:Z
-Ljava/net/HttpURLConnection;->methods:[Ljava/lang/String;
-Ljava/net/IDN;-><init>()V
-Ljava/net/IDN;->convertFullStop(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
-Ljava/net/IDN;->isLabelSeperator(C)Z
-Ljava/net/Inet4Address;-><init>(Ljava/lang/String;I)V
-Ljava/net/Inet4Address;-><init>(Ljava/lang/String;[B)V
-Ljava/net/Inet4Address;->INADDRSZ:I
-Ljava/net/Inet4Address;->LOOPBACK:Ljava/net/InetAddress;
-Ljava/net/Inet4Address;->numericToTextFormat([B)Ljava/lang/String;
-Ljava/net/Inet6Address$Inet6AddressHolder;->init([BI)V
-Ljava/net/Inet6Address$Inet6AddressHolder;->init([BLjava/net/NetworkInterface;)V
-Ljava/net/Inet6Address$Inet6AddressHolder;->isAnyLocalAddress()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isIPv4CompatibleAddress()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isLoopbackAddress()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isMCGlobal()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isMCLinkLocal()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isMCNodeLocal()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isMCOrgLocal()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isMCSiteLocal()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isMulticastAddress()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->isSiteLocalAddress()Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->scope_ifname_set:Z
-Ljava/net/Inet6Address$Inet6AddressHolder;->setAddr([B)V
-Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[B)V
-Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[BI)V
-Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[BLjava/lang/String;)V
-Ljava/net/Inet6Address;-><init>(Ljava/lang/String;[BLjava/net/NetworkInterface;)V
-Ljava/net/Inet6Address;->deriveNumericScope(Ljava/lang/String;)I
-Ljava/net/Inet6Address;->deriveNumericScope([BLjava/net/NetworkInterface;)I
-Ljava/net/Inet6Address;->FIELDS_OFFSET:J
-Ljava/net/Inet6Address;->INADDRSZ:I
-Ljava/net/Inet6Address;->initif(Ljava/lang/String;[BLjava/net/NetworkInterface;)V
-Ljava/net/Inet6Address;->initstr(Ljava/lang/String;[BLjava/lang/String;)V
-Ljava/net/Inet6Address;->INT16SZ:I
-Ljava/net/Inet6Address;->isDifferentLocalAddressType([B[B)Z
-Ljava/net/Inet6Address;->isLinkLocalAddress([B)Z
-Ljava/net/Inet6Address;->isSiteLocalAddress([B)Z
-Ljava/net/Inet6Address;->LOOPBACK:Ljava/net/InetAddress;
-Ljava/net/Inet6Address;->numericToTextFormat([B)Ljava/lang/String;
-Ljava/net/Inet6Address;->UNSAFE:Lsun/misc/Unsafe;
-Ljava/net/InetAddress$InetAddressHolder;-><init>()V
-Ljava/net/InetAddress$InetAddressHolder;-><init>(Ljava/lang/String;II)V
-Ljava/net/InetAddress$InetAddressHolder;->getAddress()I
-Ljava/net/InetAddress$InetAddressHolder;->getFamily()I
-Ljava/net/InetAddress$InetAddressHolder;->getHostName()Ljava/lang/String;
-Ljava/net/InetAddress$InetAddressHolder;->getOriginalHostName()Ljava/lang/String;
-Ljava/net/InetAddress$InetAddressHolder;->init(Ljava/lang/String;I)V
-Ljava/net/InetAddress;-><init>()V
-Ljava/net/InetAddress;->anyLocalAddress()Ljava/net/InetAddress;
-Ljava/net/InetAddress;->BOOT_CLASSLOADER:Ljava/lang/ClassLoader;
-Ljava/net/InetAddress;->canonicalHostName:Ljava/lang/String;
-Ljava/net/InetAddress;->disallowDeprecatedFormats(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/net/InetAddress;
-Ljava/net/InetAddress;->getAllByName0(Ljava/lang/String;Z)[Ljava/net/InetAddress;
-Ljava/net/InetAddress;->getByAddress(Ljava/lang/String;[BI)Ljava/net/InetAddress;
-Ljava/net/InetAddress;->getByNameOnNet(Ljava/lang/String;I)Ljava/net/InetAddress;
-Ljava/net/InetAddress;->getHostFromNameService(Ljava/net/InetAddress;)Ljava/lang/String;
-Ljava/net/InetAddress;->getHostName(Z)Ljava/lang/String;
-Ljava/net/InetAddress;->impl:Ljava/net/InetAddressImpl;
-Ljava/net/InetAddress;->isReachableByICMP(I)Z
-Ljava/net/InetAddress;->nameService:Lsun/net/spi/nameservice/NameService;
-Ljava/net/InetAddress;->NETID_UNSET:I
-Ljava/net/InetAddress;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress;
-Ljava/net/InetAddress;->readObjectNoData(Ljava/io/ObjectInputStream;)V
-Ljava/net/InetAddressImpl;->anyLocalAddress()Ljava/net/InetAddress;
-Ljava/net/InetAddressImpl;->clearAddressCache()V
-Ljava/net/InetAddressImpl;->getHostByAddr([B)Ljava/lang/String;
-Ljava/net/InetAddressImpl;->isReachable(Ljava/net/InetAddress;ILjava/net/NetworkInterface;I)Z
-Ljava/net/InetAddressImpl;->lookupAllHostAddr(Ljava/lang/String;I)[Ljava/net/InetAddress;
-Ljava/net/InetAddressImpl;->loopbackAddresses()[Ljava/net/InetAddress;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;I)V
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->addr:Ljava/net/InetAddress;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getAddress()Ljava/net/InetAddress;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getHostName()Ljava/lang/String;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getHostString()Ljava/lang/String;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getPort()I
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->hostname:Ljava/lang/String;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->isUnresolved()Z
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;->port:I
-Ljava/net/InetSocketAddress;-><init>()V
-Ljava/net/InetSocketAddress;-><init>(ILjava/lang/String;)V
-Ljava/net/InetSocketAddress;->checkHost(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/InetSocketAddress;->checkPort(I)I
-Ljava/net/InetSocketAddress;->FIELDS_OFFSET:J
-Ljava/net/InetSocketAddress;->UNSAFE:Lsun/misc/Unsafe;
-Ljava/net/InMemoryCookieStore;-><init>()V
-Ljava/net/InMemoryCookieStore;-><init>(I)V
-Ljava/net/InMemoryCookieStore;->addIndex(Ljava/util/Map;Ljava/lang/Object;Ljava/net/HttpCookie;)V
-Ljava/net/InMemoryCookieStore;->applyMCompatibility:Z
-Ljava/net/InMemoryCookieStore;->getEffectiveURI(Ljava/net/URI;)Ljava/net/URI;
-Ljava/net/InMemoryCookieStore;->getInternal1(Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
-Ljava/net/InMemoryCookieStore;->getInternal2(Ljava/util/List;Ljava/util/Map;Ljava/lang/Comparable;)V
-Ljava/net/InMemoryCookieStore;->lock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/net/InMemoryCookieStore;->netscapeDomainMatches(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/net/InMemoryCookieStore;->uriIndex:Ljava/util/Map;
-Ljava/net/InterfaceAddress;-><init>(Ljava/net/InetAddress;Ljava/net/Inet4Address;Ljava/net/InetAddress;)V
-Ljava/net/InterfaceAddress;->address:Ljava/net/InetAddress;
-Ljava/net/InterfaceAddress;->broadcast:Ljava/net/Inet4Address;
-Ljava/net/InterfaceAddress;->countPrefixLength(Ljava/net/InetAddress;)S
-Ljava/net/InterfaceAddress;->maskLength:S
-Ljava/net/JarURLConnection;->entryName:Ljava/lang/String;
-Ljava/net/JarURLConnection;->jarFileURL:Ljava/net/URL;
-Ljava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V
-Ljava/net/MulticastSocket;->infAddress:Ljava/net/InetAddress;
-Ljava/net/MulticastSocket;->infLock:Ljava/lang/Object;
-Ljava/net/MulticastSocket;->interfaceSet:Z
-Ljava/net/MulticastSocket;->ttlLock:Ljava/lang/Object;
-Ljava/net/NetworkInterface;-><init>()V
-Ljava/net/NetworkInterface;-><init>(Ljava/lang/String;I[Ljava/net/InetAddress;)V
-Ljava/net/NetworkInterface;->addrs:[Ljava/net/InetAddress;
-Ljava/net/NetworkInterface;->bindings:[Ljava/net/InterfaceAddress;
-Ljava/net/NetworkInterface;->childs:Ljava/util/List;
-Ljava/net/NetworkInterface;->defaultIndex:I
-Ljava/net/NetworkInterface;->defaultInterface:Ljava/net/NetworkInterface;
-Ljava/net/NetworkInterface;->displayName:Ljava/lang/String;
-Ljava/net/NetworkInterface;->getAll()[Ljava/net/NetworkInterface;
-Ljava/net/NetworkInterface;->getDefault()Ljava/net/NetworkInterface;
-Ljava/net/NetworkInterface;->getFlags()I
-Ljava/net/NetworkInterface;->hardwareAddr:[B
-Ljava/net/NetworkInterface;->index:I
-Ljava/net/NetworkInterface;->name:Ljava/lang/String;
-Ljava/net/NetworkInterface;->parent:Ljava/net/NetworkInterface;
-Ljava/net/NetworkInterface;->virtual:Z
-Ljava/net/PasswordAuthentication;->password:[C
-Ljava/net/PasswordAuthentication;->userName:Ljava/lang/String;
-Ljava/net/PortUnreachableException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/net/ProtocolException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/net/Proxy;->sa:Ljava/net/SocketAddress;
-Ljava/net/Proxy;->type:Ljava/net/Proxy$Type;
-Ljava/net/ProxySelector;->theProxySelector:Ljava/net/ProxySelector;
-Ljava/net/ResponseCache;->theResponseCache:Ljava/net/ResponseCache;
-Ljava/net/ServerSocket;-><init>(Ljava/net/SocketImpl;)V
-Ljava/net/ServerSocket;->bound:Z
-Ljava/net/ServerSocket;->checkOldImpl()V
-Ljava/net/ServerSocket;->closed:Z
-Ljava/net/ServerSocket;->closeLock:Ljava/lang/Object;
-Ljava/net/ServerSocket;->created:Z
-Ljava/net/ServerSocket;->createImpl()V
-Ljava/net/ServerSocket;->getFileDescriptor$()Ljava/io/FileDescriptor;
-Ljava/net/ServerSocket;->getImpl()Ljava/net/SocketImpl;
-Ljava/net/ServerSocket;->impl:Ljava/net/SocketImpl;
-Ljava/net/ServerSocket;->oldImpl:Z
-Ljava/net/ServerSocket;->setBound()V
-Ljava/net/ServerSocket;->setCreated()V
-Ljava/net/ServerSocket;->setImpl()V
-Ljava/net/Socket;-><init>([Ljava/net/InetAddress;ILjava/net/SocketAddress;Z)V
-Ljava/net/Socket;->bound:Z
-Ljava/net/Socket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
-Ljava/net/Socket;->checkOldImpl()V
-Ljava/net/Socket;->closed:Z
-Ljava/net/Socket;->closeLock:Ljava/lang/Object;
-Ljava/net/Socket;->connected:Z
-Ljava/net/Socket;->created:Z
-Ljava/net/Socket;->createImpl(Z)V
-Ljava/net/Socket;->getImpl()Ljava/net/SocketImpl;
-Ljava/net/Socket;->nonNullAddress(Ljava/net/InetAddress;)[Ljava/net/InetAddress;
-Ljava/net/Socket;->oldImpl:Z
-Ljava/net/Socket;->postAccept()V
-Ljava/net/Socket;->setBound()V
-Ljava/net/Socket;->setConnected()V
-Ljava/net/Socket;->setCreated()V
-Ljava/net/Socket;->setImpl()V
-Ljava/net/Socket;->shutIn:Z
-Ljava/net/Socket;->shutOut:Z
-Ljava/net/SocketException;-><init>(Ljava/lang/Throwable;)V
-Ljava/net/SocketImpl;->getFD$()Ljava/io/FileDescriptor;
-Ljava/net/SocketImpl;->getOption(Ljava/net/SocketOption;)Ljava/lang/Object;
-Ljava/net/SocketImpl;->getServerSocket()Ljava/net/ServerSocket;
-Ljava/net/SocketImpl;->getSocket()Ljava/net/Socket;
-Ljava/net/SocketImpl;->reset()V
-Ljava/net/SocketImpl;->setOption(Ljava/net/SocketOption;Ljava/lang/Object;)V
-Ljava/net/SocketImpl;->setServerSocket(Ljava/net/ServerSocket;)V
-Ljava/net/SocketImpl;->setSocket(Ljava/net/Socket;)V
-Ljava/net/SocketTimeoutException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/net/SocketTimeoutException;-><init>(Ljava/lang/Throwable;)V
-Ljava/net/StandardSocketOptions$StdSocketOption;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/net/StandardSocketOptions$StdSocketOption;->name:Ljava/lang/String;
-Ljava/net/StandardSocketOptions$StdSocketOption;->type:Ljava/lang/Class;
-Ljava/net/StandardSocketOptions;-><init>()V
-Ljava/net/URI$Parser;->at(IIC)Z
-Ljava/net/URI$Parser;->at(IILjava/lang/String;)Z
-Ljava/net/URI$Parser;->charAt(I)C
-Ljava/net/URI$Parser;->checkChar(IJJLjava/lang/String;)V
-Ljava/net/URI$Parser;->checkChars(IIJJLjava/lang/String;)V
-Ljava/net/URI$Parser;->fail(Ljava/lang/String;)V
-Ljava/net/URI$Parser;->fail(Ljava/lang/String;I)V
-Ljava/net/URI$Parser;->failExpecting(Ljava/lang/String;I)V
-Ljava/net/URI$Parser;->failExpecting(Ljava/lang/String;Ljava/lang/String;I)V
-Ljava/net/URI$Parser;->input:Ljava/lang/String;
-Ljava/net/URI$Parser;->ipv6byteCount:I
-Ljava/net/URI$Parser;->parse(Z)V
-Ljava/net/URI$Parser;->parseAuthority(II)I
-Ljava/net/URI$Parser;->parseHierarchical(II)I
-Ljava/net/URI$Parser;->parseHostname(II)I
-Ljava/net/URI$Parser;->parseIPv4Address(II)I
-Ljava/net/URI$Parser;->parseIPv6Reference(II)I
-Ljava/net/URI$Parser;->parseServer(II)I
-Ljava/net/URI$Parser;->requireServerAuthority:Z
-Ljava/net/URI$Parser;->scan(IIC)I
-Ljava/net/URI$Parser;->scan(IIJJ)I
-Ljava/net/URI$Parser;->scan(IILjava/lang/String;Ljava/lang/String;)I
-Ljava/net/URI$Parser;->scanByte(II)I
-Ljava/net/URI$Parser;->scanEscape(IIC)I
-Ljava/net/URI$Parser;->scanHexPost(II)I
-Ljava/net/URI$Parser;->scanHexSeq(II)I
-Ljava/net/URI$Parser;->scanIPv4Address(IIZ)I
-Ljava/net/URI$Parser;->substring(II)Ljava/lang/String;
-Ljava/net/URI$Parser;->takeIPv4Address(IILjava/lang/String;)I
-Ljava/net/URI;-><init>()V
-Ljava/net/URI;->appendAuthority(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-Ljava/net/URI;->appendEncoded(Ljava/lang/StringBuffer;C)V
-Ljava/net/URI;->appendEscape(Ljava/lang/StringBuffer;B)V
-Ljava/net/URI;->appendFragment(Ljava/lang/StringBuffer;Ljava/lang/String;)V
-Ljava/net/URI;->appendSchemeSpecificPart(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-Ljava/net/URI;->authority:Ljava/lang/String;
-Ljava/net/URI;->checkPath(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Ljava/net/URI;->compare(Ljava/lang/String;Ljava/lang/String;)I
-Ljava/net/URI;->compareIgnoringCase(Ljava/lang/String;Ljava/lang/String;)I
-Ljava/net/URI;->decode(C)I
-Ljava/net/URI;->decode(CC)B
-Ljava/net/URI;->decode(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/URI;->decodedAuthority:Ljava/lang/String;
-Ljava/net/URI;->decodedFragment:Ljava/lang/String;
-Ljava/net/URI;->decodedPath:Ljava/lang/String;
-Ljava/net/URI;->decodedQuery:Ljava/lang/String;
-Ljava/net/URI;->decodedSchemeSpecificPart:Ljava/lang/String;
-Ljava/net/URI;->decodedUserInfo:Ljava/lang/String;
-Ljava/net/URI;->defineSchemeSpecificPart()V
-Ljava/net/URI;->defineString()V
-Ljava/net/URI;->encode(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/URI;->equal(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/net/URI;->equalIgnoringCase(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/net/URI;->hash(ILjava/lang/String;)I
-Ljava/net/URI;->hash:I
-Ljava/net/URI;->hashIgnoringCase(ILjava/lang/String;)I
-Ljava/net/URI;->hexDigits:[C
-Ljava/net/URI;->highMask(CC)J
-Ljava/net/URI;->highMask(Ljava/lang/String;)J
-Ljava/net/URI;->H_ALPHA:J
-Ljava/net/URI;->H_ALPHANUM:J
-Ljava/net/URI;->H_DASH:J
-Ljava/net/URI;->H_DIGIT:J
-Ljava/net/URI;->H_DOT:J
-Ljava/net/URI;->H_ESCAPED:J
-Ljava/net/URI;->H_HEX:J
-Ljava/net/URI;->H_LEFT_BRACKET:J
-Ljava/net/URI;->H_LOWALPHA:J
-Ljava/net/URI;->H_MARK:J
-Ljava/net/URI;->H_PATH:J
-Ljava/net/URI;->H_PCHAR:J
-Ljava/net/URI;->H_REG_NAME:J
-Ljava/net/URI;->H_RESERVED:J
-Ljava/net/URI;->H_SCHEME:J
-Ljava/net/URI;->H_SERVER:J
-Ljava/net/URI;->H_SERVER_PERCENT:J
-Ljava/net/URI;->H_UNDERSCORE:J
-Ljava/net/URI;->H_UNRESERVED:J
-Ljava/net/URI;->H_UPALPHA:J
-Ljava/net/URI;->H_URIC:J
-Ljava/net/URI;->H_URIC_NO_SLASH:J
-Ljava/net/URI;->H_USERINFO:J
-Ljava/net/URI;->join([C[I)I
-Ljava/net/URI;->lowMask(CC)J
-Ljava/net/URI;->lowMask(Ljava/lang/String;)J
-Ljava/net/URI;->L_ALPHA:J
-Ljava/net/URI;->L_ALPHANUM:J
-Ljava/net/URI;->L_DASH:J
-Ljava/net/URI;->L_DIGIT:J
-Ljava/net/URI;->L_DOT:J
-Ljava/net/URI;->L_ESCAPED:J
-Ljava/net/URI;->L_HEX:J
-Ljava/net/URI;->L_LEFT_BRACKET:J
-Ljava/net/URI;->L_LOWALPHA:J
-Ljava/net/URI;->L_MARK:J
-Ljava/net/URI;->L_PATH:J
-Ljava/net/URI;->L_PCHAR:J
-Ljava/net/URI;->L_REG_NAME:J
-Ljava/net/URI;->L_RESERVED:J
-Ljava/net/URI;->L_SCHEME:J
-Ljava/net/URI;->L_SERVER:J
-Ljava/net/URI;->L_SERVER_PERCENT:J
-Ljava/net/URI;->L_UNDERSCORE:J
-Ljava/net/URI;->L_UNRESERVED:J
-Ljava/net/URI;->L_UPALPHA:J
-Ljava/net/URI;->L_URIC:J
-Ljava/net/URI;->L_URIC_NO_SLASH:J
-Ljava/net/URI;->L_USERINFO:J
-Ljava/net/URI;->match(CJJ)Z
-Ljava/net/URI;->maybeAddLeadingDot([C[I)V
-Ljava/net/URI;->needsNormalization(Ljava/lang/String;)I
-Ljava/net/URI;->normalize(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/URI;->normalize(Ljava/lang/String;Z)Ljava/lang/String;
-Ljava/net/URI;->normalize(Ljava/net/URI;)Ljava/net/URI;
-Ljava/net/URI;->normalizedHash(ILjava/lang/String;)I
-Ljava/net/URI;->path:Ljava/lang/String;
-Ljava/net/URI;->quote(Ljava/lang/String;JJ)Ljava/lang/String;
-Ljava/net/URI;->relativize(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;
-Ljava/net/URI;->removeDots([C[IZ)V
-Ljava/net/URI;->resolve(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;
-Ljava/net/URI;->resolvePath(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
-Ljava/net/URI;->scheme:Ljava/lang/String;
-Ljava/net/URI;->schemeSpecificPart:Ljava/lang/String;
-Ljava/net/URI;->split([C[I)V
-Ljava/net/URI;->toLower(C)I
-Ljava/net/URI;->toString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/URI;->toUpper(C)I
-Ljava/net/URI;->userInfo:Ljava/lang/String;
-Ljava/net/URISyntaxException;->index:I
-Ljava/net/URISyntaxException;->input:Ljava/lang/String;
-Ljava/net/URL;->authority:Ljava/lang/String;
-Ljava/net/URL;->BUILTIN_HANDLER_CLASS_NAMES:Ljava/util/Set;
-Ljava/net/URL;->checkSpecifyHandler(Ljava/lang/SecurityManager;)V
-Ljava/net/URL;->createBuiltinHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
-Ljava/net/URL;->createBuiltinHandlerClassNames()Ljava/util/Set;
-Ljava/net/URL;->fabricateNewURL()Ljava/net/URL;
-Ljava/net/URL;->file:Ljava/lang/String;
-Ljava/net/URL;->getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
-Ljava/net/URL;->hashCode:I
-Ljava/net/URL;->host:Ljava/lang/String;
-Ljava/net/URL;->hostAddress:Ljava/net/InetAddress;
-Ljava/net/URL;->isBuiltinStreamHandler(Ljava/lang/String;)Z
-Ljava/net/URL;->isValidProtocol(Ljava/lang/String;)Z
-Ljava/net/URL;->path:Ljava/lang/String;
-Ljava/net/URL;->port:I
-Ljava/net/URL;->protocolPathProp:Ljava/lang/String;
-Ljava/net/URL;->query:Ljava/lang/String;
-Ljava/net/URL;->ref:Ljava/lang/String;
-Ljava/net/URL;->resetState()V
-Ljava/net/URL;->set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-Ljava/net/URL;->set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Ljava/net/URL;->setDeserializedFields(Ljava/net/URLStreamHandler;)Ljava/net/URL;
-Ljava/net/URL;->setSerializedHashCode(I)V
-Ljava/net/URL;->streamHandlerLock:Ljava/lang/Object;
-Ljava/net/URL;->tempState:Ljava/net/UrlDeserializedState;
-Ljava/net/URL;->userInfo:Ljava/lang/String;
-Ljava/net/URLClassLoader;-><init>([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/security/AccessControlContext;)V
-Ljava/net/URLClassLoader;-><init>([Ljava/net/URL;Ljava/security/AccessControlContext;)V
-Ljava/net/URLClassLoader;->closeables:Ljava/util/WeakHashMap;
-Ljava/net/URLClassLoader;->defineClass(Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;
-Ljava/net/URLClassLoader;->definePackageInternal(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)V
-Ljava/net/URLClassLoader;->getAndVerifyPackage(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
-Ljava/net/URLClassLoader;->isSealed(Ljava/lang/String;Ljava/util/jar/Manifest;)Z
-Ljava/net/URLConnection;->checkfpx(Ljava/io/InputStream;)Z
-Ljava/net/URLConnection;->connectTimeout:I
-Ljava/net/URLConnection;->contentClassPrefix:Ljava/lang/String;
-Ljava/net/URLConnection;->contentPathProp:Ljava/lang/String;
-Ljava/net/URLConnection;->defaultAllowUserInteraction:Z
-Ljava/net/URLConnection;->defaultUseCaches:Z
-Ljava/net/URLConnection;->factory:Ljava/net/ContentHandlerFactory;
-Ljava/net/URLConnection;->fileNameMap:Ljava/net/FileNameMap;
-Ljava/net/URLConnection;->getContentHandler()Ljava/net/ContentHandler;
-Ljava/net/URLConnection;->getContentHandlerPkgPrefixes()Ljava/lang/String;
-Ljava/net/URLConnection;->handlers:Ljava/util/Hashtable;
-Ljava/net/URLConnection;->lookupContentHandlerClassFor(Ljava/lang/String;)Ljava/net/ContentHandler;
-Ljava/net/URLConnection;->readBytes([IILjava/io/InputStream;)I
-Ljava/net/URLConnection;->readTimeout:I
-Ljava/net/URLConnection;->requests:Lsun/net/www/MessageHeader;
-Ljava/net/URLConnection;->skipForward(Ljava/io/InputStream;J)J
-Ljava/net/URLConnection;->stripOffParameters(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/URLConnection;->typeToPackageName(Ljava/lang/String;)Ljava/lang/String;
-Ljava/net/URLDecoder;->dfltEncName:Ljava/lang/String;
-Ljava/net/URLDecoder;->isValidHexChar(C)Z
-Ljava/net/UrlDeserializedState;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-Ljava/net/UrlDeserializedState;->authority:Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->file:Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->getAuthority()Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->getFile()Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->getHashCode()I
-Ljava/net/UrlDeserializedState;->getHost()Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->getPort()I
-Ljava/net/UrlDeserializedState;->getProtocol()Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->getRef()Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->hashCode:I
-Ljava/net/UrlDeserializedState;->host:Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->port:I
-Ljava/net/UrlDeserializedState;->protocol:Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->reconstituteUrlString()Ljava/lang/String;
-Ljava/net/UrlDeserializedState;->ref:Ljava/lang/String;
-Ljava/net/URLEncoder;-><init>()V
-Ljava/net/URLEncoder;->caseDiff:I
-Ljava/net/URLEncoder;->dfltEncName:Ljava/lang/String;
-Ljava/net/URLEncoder;->dontNeedEncoding:Ljava/util/BitSet;
-Ljava/nio/Buffer;-><init>(IIIII)V
-Ljava/nio/Buffer;->checkBounds(III)V
-Ljava/nio/Buffer;->checkIndex(I)I
-Ljava/nio/Buffer;->checkIndex(II)I
-Ljava/nio/Buffer;->discardMark()V
-Ljava/nio/Buffer;->getElementSizeShift()I
-Ljava/nio/Buffer;->mark:I
-Ljava/nio/Buffer;->markValue()I
-Ljava/nio/Buffer;->nextGetIndex()I
-Ljava/nio/Buffer;->nextGetIndex(I)I
-Ljava/nio/Buffer;->nextPutIndex()I
-Ljava/nio/Buffer;->nextPutIndex(I)I
-Ljava/nio/Buffer;->SPLITERATOR_CHARACTERISTICS:I
-Ljava/nio/Buffer;->truncate()V
-Ljava/nio/ByteBuffer;-><init>(IIII)V
-Ljava/nio/ByteBuffer;-><init>(IIII[BI)V
-Ljava/nio/ByteBuffer;->bigEndian:Z
-Ljava/nio/ByteBuffer;->compare(BB)I
-Ljava/nio/ByteBuffer;->equals(BB)Z
-Ljava/nio/ByteBuffer;->getCharUnchecked(I)C
-Ljava/nio/ByteBuffer;->getDoubleUnchecked(I)D
-Ljava/nio/ByteBuffer;->getFloatUnchecked(I)F
-Ljava/nio/ByteBuffer;->getIntUnchecked(I)I
-Ljava/nio/ByteBuffer;->getLongUnchecked(I)J
-Ljava/nio/ByteBuffer;->getShortUnchecked(I)S
-Ljava/nio/ByteBuffer;->getUnchecked(I[CII)V
-Ljava/nio/ByteBuffer;->getUnchecked(I[DII)V
-Ljava/nio/ByteBuffer;->getUnchecked(I[FII)V
-Ljava/nio/ByteBuffer;->getUnchecked(I[III)V
-Ljava/nio/ByteBuffer;->getUnchecked(I[JII)V
-Ljava/nio/ByteBuffer;->getUnchecked(I[SII)V
-Ljava/nio/ByteBuffer;->isAccessible()Z
-Ljava/nio/ByteBuffer;->nativeByteOrder:Z
-Ljava/nio/ByteBuffer;->putCharUnchecked(IC)V
-Ljava/nio/ByteBuffer;->putDoubleUnchecked(ID)V
-Ljava/nio/ByteBuffer;->putFloatUnchecked(IF)V
-Ljava/nio/ByteBuffer;->putIntUnchecked(II)V
-Ljava/nio/ByteBuffer;->putLongUnchecked(IJ)V
-Ljava/nio/ByteBuffer;->putShortUnchecked(IS)V
-Ljava/nio/ByteBuffer;->putUnchecked(I[CII)V
-Ljava/nio/ByteBuffer;->putUnchecked(I[DII)V
-Ljava/nio/ByteBuffer;->putUnchecked(I[FII)V
-Ljava/nio/ByteBuffer;->putUnchecked(I[III)V
-Ljava/nio/ByteBuffer;->putUnchecked(I[JII)V
-Ljava/nio/ByteBuffer;->putUnchecked(I[SII)V
-Ljava/nio/ByteBuffer;->setAccessible(Z)V
-Ljava/nio/ByteBuffer;->_get(I)B
-Ljava/nio/ByteBuffer;->_put(IB)V
-Ljava/nio/ByteOrder;-><init>(Ljava/lang/String;)V
-Ljava/nio/ByteOrder;->name:Ljava/lang/String;
-Ljava/nio/channels/AsynchronousChannelGroup;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/AsynchronousFileChannel;->NO_ATTRIBUTES:[Ljava/nio/file/attribute/FileAttribute;
-Ljava/nio/channels/AsynchronousServerSocketChannel;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/AsynchronousSocketChannel;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;-><init>(Ljava/io/InputStream;)V
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;->buf:[B
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;->in:Ljava/io/InputStream;
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;->open:Z
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;->readLock:Ljava/lang/Object;
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;->TRANSFER_SIZE:I
-Ljava/nio/channels/Channels$WritableByteChannelImpl;-><init>(Ljava/io/OutputStream;)V
-Ljava/nio/channels/Channels$WritableByteChannelImpl;->buf:[B
-Ljava/nio/channels/Channels$WritableByteChannelImpl;->open:Z
-Ljava/nio/channels/Channels$WritableByteChannelImpl;->out:Ljava/io/OutputStream;
-Ljava/nio/channels/Channels$WritableByteChannelImpl;->TRANSFER_SIZE:I
-Ljava/nio/channels/Channels$WritableByteChannelImpl;->writeLock:Ljava/lang/Object;
-Ljava/nio/channels/Channels;-><init>()V
-Ljava/nio/channels/Channels;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
-Ljava/nio/channels/Channels;->writeFully(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
-Ljava/nio/channels/Channels;->writeFullyImpl(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
-Ljava/nio/channels/FileChannel$MapMode;-><init>(Ljava/lang/String;)V
-Ljava/nio/channels/FileChannel$MapMode;->name:Ljava/lang/String;
-Ljava/nio/channels/FileChannel;->NO_ATTRIBUTES:[Ljava/nio/file/attribute/FileAttribute;
-Ljava/nio/channels/FileLock;->channel:Ljava/nio/channels/Channel;
-Ljava/nio/channels/FileLock;->position:J
-Ljava/nio/channels/FileLock;->shared:Z
-Ljava/nio/channels/FileLock;->size:J
-Ljava/nio/channels/SelectionKey;->attachment:Ljava/lang/Object;
-Ljava/nio/channels/SelectionKey;->attachmentUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
-Ljava/nio/channels/spi/AbstractInterruptibleChannel;->blockedOn(Lsun/nio/ch/Interruptible;)V
-Ljava/nio/channels/spi/AbstractInterruptibleChannel;->closeLock:Ljava/lang/Object;
-Ljava/nio/channels/spi/AbstractInterruptibleChannel;->interrupted:Ljava/lang/Thread;
-Ljava/nio/channels/spi/AbstractInterruptibleChannel;->interruptor:Lsun/nio/ch/Interruptible;
-Ljava/nio/channels/spi/AbstractInterruptibleChannel;->open:Z
-Ljava/nio/channels/spi/AbstractSelectableChannel;->addKey(Ljava/nio/channels/SelectionKey;)V
-Ljava/nio/channels/spi/AbstractSelectableChannel;->blocking:Z
-Ljava/nio/channels/spi/AbstractSelectableChannel;->findKey(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
-Ljava/nio/channels/spi/AbstractSelectableChannel;->haveValidKeys()Z
-Ljava/nio/channels/spi/AbstractSelectableChannel;->keyCount:I
-Ljava/nio/channels/spi/AbstractSelectableChannel;->keyLock:Ljava/lang/Object;
-Ljava/nio/channels/spi/AbstractSelectableChannel;->keys:[Ljava/nio/channels/SelectionKey;
-Ljava/nio/channels/spi/AbstractSelectableChannel;->provider:Ljava/nio/channels/spi/SelectorProvider;
-Ljava/nio/channels/spi/AbstractSelectableChannel;->regLock:Ljava/lang/Object;
-Ljava/nio/channels/spi/AbstractSelectableChannel;->removeKey(Ljava/nio/channels/SelectionKey;)V
-Ljava/nio/channels/spi/AbstractSelectionKey;->invalidate()V
-Ljava/nio/channels/spi/AbstractSelectionKey;->valid:Z
-Ljava/nio/channels/spi/AbstractSelector;->cancel(Ljava/nio/channels/SelectionKey;)V
-Ljava/nio/channels/spi/AbstractSelector;->cancelledKeys:Ljava/util/Set;
-Ljava/nio/channels/spi/AbstractSelector;->interruptor:Lsun/nio/ch/Interruptible;
-Ljava/nio/channels/spi/AbstractSelector;->provider:Ljava/nio/channels/spi/SelectorProvider;
-Ljava/nio/channels/spi/AbstractSelector;->selectorOpen:Ljava/util/concurrent/atomic/AtomicBoolean;
-Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;-><init>()V
-Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->load()Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->loadProviderAsService()Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->loadProviderFromProperty()Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/spi/AsynchronousChannelProvider;-><init>(Ljava/lang/Void;)V
-Ljava/nio/channels/spi/AsynchronousChannelProvider;->checkPermission()Ljava/lang/Void;
-Ljava/nio/channels/spi/SelectorProvider;->loadProviderAsService()Z
-Ljava/nio/channels/spi/SelectorProvider;->loadProviderFromProperty()Z
-Ljava/nio/channels/spi/SelectorProvider;->lock:Ljava/lang/Object;
-Ljava/nio/channels/spi/SelectorProvider;->provider:Ljava/nio/channels/spi/SelectorProvider;
-Ljava/nio/CharBuffer;-><init>(IIII)V
-Ljava/nio/CharBuffer;-><init>(IIII[CI)V
-Ljava/nio/CharBuffer;->compare(CC)I
-Ljava/nio/CharBuffer;->equals(CC)Z
-Ljava/nio/CharBuffer;->getUnchecked(I)C
-Ljava/nio/CharBuffer;->hb:[C
-Ljava/nio/CharBuffer;->isReadOnly:Z
-Ljava/nio/CharBuffer;->offset:I
-Ljava/nio/charset/Charset;->aliases:[Ljava/lang/String;
-Ljava/nio/charset/Charset;->aliasSet:Ljava/util/Set;
-Ljava/nio/charset/Charset;->atBugLevel(Ljava/lang/String;)Z
-Ljava/nio/charset/Charset;->bugLevel:Ljava/lang/String;
-Ljava/nio/charset/Charset;->cache(Ljava/lang/String;Ljava/nio/charset/Charset;)V
-Ljava/nio/charset/Charset;->cache1:Ljava/util/Map$Entry;
-Ljava/nio/charset/Charset;->cache2:Ljava/util/HashMap;
-Ljava/nio/charset/Charset;->checkName(Ljava/lang/String;)V
-Ljava/nio/charset/Charset;->forNameUEE(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/nio/charset/Charset;->gate:Ljava/lang/ThreadLocal;
-Ljava/nio/charset/Charset;->lookup(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/nio/charset/Charset;->lookup2(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/nio/charset/Charset;->lookupViaProviders(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/nio/charset/Charset;->name:Ljava/lang/String;
-Ljava/nio/charset/Charset;->providers()Ljava/util/Iterator;
-Ljava/nio/charset/Charset;->put(Ljava/util/Iterator;Ljava/util/Map;)V
-Ljava/nio/charset/CharsetDecoder;-><init>(Ljava/nio/charset/Charset;FFLjava/lang/String;)V
-Ljava/nio/charset/CharsetDecoder;->averageCharsPerByte:F
-Ljava/nio/charset/CharsetDecoder;->charset:Ljava/nio/charset/Charset;
-Ljava/nio/charset/CharsetDecoder;->malformedInputAction:Ljava/nio/charset/CodingErrorAction;
-Ljava/nio/charset/CharsetDecoder;->maxCharsPerByte:F
-Ljava/nio/charset/CharsetDecoder;->replacement:Ljava/lang/String;
-Ljava/nio/charset/CharsetDecoder;->state:I
-Ljava/nio/charset/CharsetDecoder;->stateNames:[Ljava/lang/String;
-Ljava/nio/charset/CharsetDecoder;->ST_CODING:I
-Ljava/nio/charset/CharsetDecoder;->ST_END:I
-Ljava/nio/charset/CharsetDecoder;->ST_FLUSHED:I
-Ljava/nio/charset/CharsetDecoder;->ST_RESET:I
-Ljava/nio/charset/CharsetDecoder;->throwIllegalStateException(II)V
-Ljava/nio/charset/CharsetDecoder;->unmappableCharacterAction:Ljava/nio/charset/CodingErrorAction;
-Ljava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[BZ)V
-Ljava/nio/charset/CharsetEncoder;->averageBytesPerChar:F
-Ljava/nio/charset/CharsetEncoder;->cachedDecoder:Ljava/lang/ref/WeakReference;
-Ljava/nio/charset/CharsetEncoder;->charset:Ljava/nio/charset/Charset;
-Ljava/nio/charset/CharsetEncoder;->malformedInputAction:Ljava/nio/charset/CodingErrorAction;
-Ljava/nio/charset/CharsetEncoder;->maxBytesPerChar:F
-Ljava/nio/charset/CharsetEncoder;->replacement:[B
-Ljava/nio/charset/CharsetEncoder;->state:I
-Ljava/nio/charset/CharsetEncoder;->stateNames:[Ljava/lang/String;
-Ljava/nio/charset/CharsetEncoder;->ST_CODING:I
-Ljava/nio/charset/CharsetEncoder;->ST_END:I
-Ljava/nio/charset/CharsetEncoder;->ST_FLUSHED:I
-Ljava/nio/charset/CharsetEncoder;->ST_RESET:I
-Ljava/nio/charset/CharsetEncoder;->throwIllegalStateException(II)V
-Ljava/nio/charset/CharsetEncoder;->unmappableCharacterAction:Ljava/nio/charset/CodingErrorAction;
-Ljava/nio/charset/CoderResult$Cache;-><init>()V
-Ljava/nio/charset/CoderResult$Cache;->cache:Ljava/util/Map;
-Ljava/nio/charset/CoderResult$Cache;->create(I)Ljava/nio/charset/CoderResult;
-Ljava/nio/charset/CoderResult$Cache;->get(I)Ljava/nio/charset/CoderResult;
-Ljava/nio/charset/CoderResult;-><init>(II)V
-Ljava/nio/charset/CoderResult;->CR_ERROR_MIN:I
-Ljava/nio/charset/CoderResult;->CR_MALFORMED:I
-Ljava/nio/charset/CoderResult;->CR_OVERFLOW:I
-Ljava/nio/charset/CoderResult;->CR_UNDERFLOW:I
-Ljava/nio/charset/CoderResult;->CR_UNMAPPABLE:I
-Ljava/nio/charset/CoderResult;->length:I
-Ljava/nio/charset/CoderResult;->malformedCache:Ljava/nio/charset/CoderResult$Cache;
-Ljava/nio/charset/CoderResult;->names:[Ljava/lang/String;
-Ljava/nio/charset/CoderResult;->type:I
-Ljava/nio/charset/CoderResult;->unmappableCache:Ljava/nio/charset/CoderResult$Cache;
-Ljava/nio/charset/CodingErrorAction;-><init>(Ljava/lang/String;)V
-Ljava/nio/charset/CodingErrorAction;->name:Ljava/lang/String;
-Ljava/nio/charset/IllegalCharsetNameException;->charsetName:Ljava/lang/String;
-Ljava/nio/charset/MalformedInputException;->inputLength:I
-Ljava/nio/charset/ModifiedUtf8;-><init>()V
-Ljava/nio/charset/ModifiedUtf8;->countBytes(Ljava/lang/String;Z)J
-Ljava/nio/charset/ModifiedUtf8;->decode([B[CII)Ljava/lang/String;
-Ljava/nio/charset/ModifiedUtf8;->encode(Ljava/lang/String;)[B
-Ljava/nio/charset/ModifiedUtf8;->encode([BILjava/lang/String;)V
-Ljava/nio/charset/StandardCharsets;-><init>()V
-Ljava/nio/charset/UnmappableCharacterException;->inputLength:I
-Ljava/nio/charset/UnsupportedCharsetException;->charsetName:Ljava/lang/String;
-Ljava/nio/DirectByteBuffer$MemoryRef;-><init>(I)V
-Ljava/nio/DirectByteBuffer$MemoryRef;-><init>(JLjava/lang/Object;)V
-Ljava/nio/DirectByteBuffer$MemoryRef;->allocatedAddress:J
-Ljava/nio/DirectByteBuffer$MemoryRef;->buffer:[B
-Ljava/nio/DirectByteBuffer$MemoryRef;->free()V
-Ljava/nio/DirectByteBuffer$MemoryRef;->isAccessible:Z
-Ljava/nio/DirectByteBuffer$MemoryRef;->isFreed:Z
-Ljava/nio/DirectByteBuffer$MemoryRef;->offset:I
-Ljava/nio/DirectByteBuffer$MemoryRef;->originalBufferObject:Ljava/lang/Object;
-Ljava/nio/DirectByteBuffer;-><init>(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)V
-Ljava/nio/DirectByteBuffer;-><init>(ILjava/nio/DirectByteBuffer$MemoryRef;)V
-Ljava/nio/DirectByteBuffer;-><init>(Ljava/nio/DirectByteBuffer$MemoryRef;IIIII)V
-Ljava/nio/DirectByteBuffer;-><init>(Ljava/nio/DirectByteBuffer$MemoryRef;IIIIIZ)V
-Ljava/nio/DirectByteBuffer;->cleaner:Lsun/misc/Cleaner;
-Ljava/nio/DirectByteBuffer;->get(J)B
-Ljava/nio/DirectByteBuffer;->getCharUnchecked(I)C
-Ljava/nio/DirectByteBuffer;->getDouble(J)D
-Ljava/nio/DirectByteBuffer;->getDoubleUnchecked(I)D
-Ljava/nio/DirectByteBuffer;->getFloat(J)F
-Ljava/nio/DirectByteBuffer;->getFloatUnchecked(I)F
-Ljava/nio/DirectByteBuffer;->getInt(J)I
-Ljava/nio/DirectByteBuffer;->getIntUnchecked(I)I
-Ljava/nio/DirectByteBuffer;->getLong(J)J
-Ljava/nio/DirectByteBuffer;->getLongUnchecked(I)J
-Ljava/nio/DirectByteBuffer;->getShort(J)S
-Ljava/nio/DirectByteBuffer;->getShortUnchecked(I)S
-Ljava/nio/DirectByteBuffer;->getUnchecked(I[CII)V
-Ljava/nio/DirectByteBuffer;->getUnchecked(I[DII)V
-Ljava/nio/DirectByteBuffer;->getUnchecked(I[FII)V
-Ljava/nio/DirectByteBuffer;->getUnchecked(I[III)V
-Ljava/nio/DirectByteBuffer;->getUnchecked(I[JII)V
-Ljava/nio/DirectByteBuffer;->getUnchecked(I[SII)V
-Ljava/nio/DirectByteBuffer;->isAccessible()Z
-Ljava/nio/DirectByteBuffer;->ix(I)J
-Ljava/nio/DirectByteBuffer;->memoryRef:Ljava/nio/DirectByteBuffer$MemoryRef;
-Ljava/nio/DirectByteBuffer;->put(JB)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putChar(JC)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putCharUnchecked(IC)V
-Ljava/nio/DirectByteBuffer;->putDouble(JD)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putDoubleUnchecked(ID)V
-Ljava/nio/DirectByteBuffer;->putFloat(JF)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putFloatUnchecked(IF)V
-Ljava/nio/DirectByteBuffer;->putInt(JI)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putIntUnchecked(II)V
-Ljava/nio/DirectByteBuffer;->putLong(JJ)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putLongUnchecked(IJ)V
-Ljava/nio/DirectByteBuffer;->putShort(JS)Ljava/nio/ByteBuffer;
-Ljava/nio/DirectByteBuffer;->putShortUnchecked(IS)V
-Ljava/nio/DirectByteBuffer;->putUnchecked(I[CII)V
-Ljava/nio/DirectByteBuffer;->putUnchecked(I[DII)V
-Ljava/nio/DirectByteBuffer;->putUnchecked(I[FII)V
-Ljava/nio/DirectByteBuffer;->putUnchecked(I[III)V
-Ljava/nio/DirectByteBuffer;->putUnchecked(I[JII)V
-Ljava/nio/DirectByteBuffer;->putUnchecked(I[SII)V
-Ljava/nio/DirectByteBuffer;->setAccessible(Z)V
-Ljava/nio/DirectByteBuffer;->_get(I)B
-Ljava/nio/DirectByteBuffer;->_put(IB)V
-Ljava/nio/DoubleBuffer;-><init>(IIII)V
-Ljava/nio/DoubleBuffer;-><init>(IIII[DI)V
-Ljava/nio/DoubleBuffer;->compare(DD)I
-Ljava/nio/DoubleBuffer;->equals(DD)Z
-Ljava/nio/DoubleBuffer;->hb:[D
-Ljava/nio/DoubleBuffer;->isReadOnly:Z
-Ljava/nio/DoubleBuffer;->offset:I
-Ljava/nio/file/attribute/AclEntry$Builder;-><init>(Ljava/nio/file/attribute/AclEntryType;Ljava/nio/file/attribute/UserPrincipal;Ljava/util/Set;Ljava/util/Set;)V
-Ljava/nio/file/attribute/AclEntry$Builder;->checkSet(Ljava/util/Set;Ljava/lang/Class;)V
-Ljava/nio/file/attribute/AclEntry$Builder;->flags:Ljava/util/Set;
-Ljava/nio/file/attribute/AclEntry$Builder;->perms:Ljava/util/Set;
-Ljava/nio/file/attribute/AclEntry$Builder;->type:Ljava/nio/file/attribute/AclEntryType;
-Ljava/nio/file/attribute/AclEntry$Builder;->who:Ljava/nio/file/attribute/UserPrincipal;
-Ljava/nio/file/attribute/AclEntry;-><init>(Ljava/nio/file/attribute/AclEntryType;Ljava/nio/file/attribute/UserPrincipal;Ljava/util/Set;Ljava/util/Set;)V
-Ljava/nio/file/attribute/AclEntry;->flags:Ljava/util/Set;
-Ljava/nio/file/attribute/AclEntry;->hash(ILjava/lang/Object;)I
-Ljava/nio/file/attribute/AclEntry;->hash:I
-Ljava/nio/file/attribute/AclEntry;->perms:Ljava/util/Set;
-Ljava/nio/file/attribute/AclEntry;->type:Ljava/nio/file/attribute/AclEntryType;
-Ljava/nio/file/attribute/AclEntry;->who:Ljava/nio/file/attribute/UserPrincipal;
-Ljava/nio/file/attribute/FileTime;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/time/Instant;)V
-Ljava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
-Ljava/nio/file/attribute/FileTime;->DAYS_PER_10000_YEARS:J
-Ljava/nio/file/attribute/FileTime;->HOURS_PER_DAY:J
-Ljava/nio/file/attribute/FileTime;->instant:Ljava/time/Instant;
-Ljava/nio/file/attribute/FileTime;->MAX_SECOND:J
-Ljava/nio/file/attribute/FileTime;->MICROS_PER_SECOND:J
-Ljava/nio/file/attribute/FileTime;->MILLIS_PER_SECOND:J
-Ljava/nio/file/attribute/FileTime;->MINUTES_PER_HOUR:J
-Ljava/nio/file/attribute/FileTime;->MIN_SECOND:J
-Ljava/nio/file/attribute/FileTime;->NANOS_PER_MICRO:I
-Ljava/nio/file/attribute/FileTime;->NANOS_PER_MILLI:I
-Ljava/nio/file/attribute/FileTime;->NANOS_PER_SECOND:J
-Ljava/nio/file/attribute/FileTime;->scale(JJJ)J
-Ljava/nio/file/attribute/FileTime;->SECONDS_0000_TO_1970:J
-Ljava/nio/file/attribute/FileTime;->SECONDS_PER_10000_YEARS:J
-Ljava/nio/file/attribute/FileTime;->SECONDS_PER_DAY:J
-Ljava/nio/file/attribute/FileTime;->SECONDS_PER_HOUR:J
-Ljava/nio/file/attribute/FileTime;->SECONDS_PER_MINUTE:J
-Ljava/nio/file/attribute/FileTime;->toDays()J
-Ljava/nio/file/attribute/FileTime;->toExcessNanos(J)J
-Ljava/nio/file/attribute/FileTime;->unit:Ljava/util/concurrent/TimeUnit;
-Ljava/nio/file/attribute/FileTime;->value:J
-Ljava/nio/file/attribute/FileTime;->valueAsString:Ljava/lang/String;
-Ljava/nio/file/attribute/PosixFilePermissions;-><init>()V
-Ljava/nio/file/attribute/PosixFilePermissions;->isR(C)Z
-Ljava/nio/file/attribute/PosixFilePermissions;->isSet(CC)Z
-Ljava/nio/file/attribute/PosixFilePermissions;->isW(C)Z
-Ljava/nio/file/attribute/PosixFilePermissions;->isX(C)Z
-Ljava/nio/file/attribute/PosixFilePermissions;->writeBits(Ljava/lang/StringBuilder;ZZZ)V
-Ljava/nio/file/attribute/UserPrincipalNotFoundException;->name:Ljava/lang/String;
-Ljava/nio/file/Files$AcceptAllFilter;-><init>()V
-Ljava/nio/file/Files$AcceptAllFilter;->accept(Ljava/nio/file/Path;)Z
-Ljava/nio/file/Files$AcceptAllFilter;->FILTER:Ljava/nio/file/Files$AcceptAllFilter;
-Ljava/nio/file/Files$FileTypeDetectors;-><init>()V
-Ljava/nio/file/Files$FileTypeDetectors;->createDefaultFileTypeDetector()Ljava/nio/file/spi/FileTypeDetector;
-Ljava/nio/file/Files$FileTypeDetectors;->defaultFileTypeDetector:Ljava/nio/file/spi/FileTypeDetector;
-Ljava/nio/file/Files$FileTypeDetectors;->installeDetectors:Ljava/util/List;
-Ljava/nio/file/Files$FileTypeDetectors;->loadInstalledDetectors()Ljava/util/List;
-Ljava/nio/file/Files;-><init>()V
-Ljava/nio/file/Files;->asUncheckedRunnable(Ljava/io/Closeable;)Ljava/lang/Runnable;
-Ljava/nio/file/Files;->BUFFER_SIZE:I
-Ljava/nio/file/Files;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J
-Ljava/nio/file/Files;->MAX_BUFFER_SIZE:I
-Ljava/nio/file/Files;->provider(Ljava/nio/file/Path;)Ljava/nio/file/spi/FileSystemProvider;
-Ljava/nio/file/Files;->read(Ljava/io/InputStream;I)[B
-Ljava/nio/file/FileSystemException;->file:Ljava/lang/String;
-Ljava/nio/file/FileSystemException;->other:Ljava/lang/String;
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder;-><init>()V
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder;->defaultFileSystem()Ljava/nio/file/FileSystem;
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder;->defaultFileSystem:Ljava/nio/file/FileSystem;
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder;->getDefaultProvider()Ljava/nio/file/spi/FileSystemProvider;
-Ljava/nio/file/FileSystems;-><init>()V
-Ljava/nio/file/InvalidPathException;->index:I
-Ljava/nio/file/InvalidPathException;->input:Ljava/lang/String;
-Ljava/nio/file/LinkPermission;->checkName(Ljava/lang/String;)V
-Ljava/nio/file/Paths;-><init>()V
-Ljava/nio/file/spi/FileSystemProvider;-><init>(Ljava/lang/Void;)V
-Ljava/nio/file/spi/FileSystemProvider;->checkPermission()Ljava/lang/Void;
-Ljava/nio/file/spi/FileSystemProvider;->installedProviders:Ljava/util/List;
-Ljava/nio/file/spi/FileSystemProvider;->loadingProviders:Z
-Ljava/nio/file/spi/FileSystemProvider;->loadInstalledProviders()Ljava/util/List;
-Ljava/nio/file/spi/FileSystemProvider;->lock:Ljava/lang/Object;
-Ljava/nio/file/spi/FileTypeDetector;-><init>(Ljava/lang/Void;)V
-Ljava/nio/file/spi/FileTypeDetector;->checkPermission()Ljava/lang/Void;
-Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;->name:Ljava/lang/String;
-Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;->type:Ljava/lang/Class;
-Ljava/nio/file/StandardWatchEventKinds;-><init>()V
-Ljava/nio/FloatBuffer;-><init>(IIII)V
-Ljava/nio/FloatBuffer;-><init>(IIII[FI)V
-Ljava/nio/FloatBuffer;->compare(FF)I
-Ljava/nio/FloatBuffer;->equals(FF)Z
-Ljava/nio/FloatBuffer;->hb:[F
-Ljava/nio/FloatBuffer;->isReadOnly:Z
-Ljava/nio/FloatBuffer;->offset:I
-Ljava/nio/IntBuffer;-><init>(IIII)V
-Ljava/nio/IntBuffer;-><init>(IIII[II)V
-Ljava/nio/IntBuffer;->compare(II)I
-Ljava/nio/IntBuffer;->equals(II)Z
-Ljava/nio/IntBuffer;->hb:[I
-Ljava/nio/IntBuffer;->isReadOnly:Z
-Ljava/nio/IntBuffer;->offset:I
-Ljava/nio/LongBuffer;-><init>(IIII)V
-Ljava/nio/LongBuffer;-><init>(IIII[JI)V
-Ljava/nio/LongBuffer;->compare(JJ)I
-Ljava/nio/LongBuffer;->equals(JJ)Z
-Ljava/nio/LongBuffer;->hb:[J
-Ljava/nio/LongBuffer;->isReadOnly:Z
-Ljava/nio/LongBuffer;->offset:I
-Ljava/nio/MappedByteBuffer;-><init>(IIII)V
-Ljava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;)V
-Ljava/nio/MappedByteBuffer;-><init>(IIII[BI)V
-Ljava/nio/MappedByteBuffer;->checkMapped()V
-Ljava/nio/MappedByteBuffer;->fd:Ljava/io/FileDescriptor;
-Ljava/nio/MappedByteBuffer;->force0(Ljava/io/FileDescriptor;JJ)V
-Ljava/nio/MappedByteBuffer;->isLoaded0(JJI)Z
-Ljava/nio/MappedByteBuffer;->load0(JJ)V
-Ljava/nio/MappedByteBuffer;->mappingAddress(J)J
-Ljava/nio/MappedByteBuffer;->mappingLength(J)J
-Ljava/nio/MappedByteBuffer;->mappingOffset()J
-Ljava/nio/MappedByteBuffer;->unused:B
-Ljava/nio/NIOAccess;-><init>()V
-Ljava/nio/NioUtils;-><init>()V
-Ljava/nio/NioUtils;->getFD(Ljava/nio/channels/FileChannel;)Ljava/io/FileDescriptor;
-Ljava/nio/NioUtils;->newFileChannel(Ljava/io/Closeable;Ljava/io/FileDescriptor;I)Ljava/nio/channels/FileChannel;
-Ljava/nio/ShortBuffer;-><init>(IIII)V
-Ljava/nio/ShortBuffer;-><init>(IIII[SI)V
-Ljava/nio/ShortBuffer;->compare(SS)I
-Ljava/nio/ShortBuffer;->equals(SS)Z
-Ljava/nio/ShortBuffer;->hb:[S
-Ljava/nio/ShortBuffer;->isReadOnly:Z
-Ljava/nio/ShortBuffer;->offset:I
-Ljava/security/AccessControlException;->perm:Ljava/security/Permission;
-Ljava/security/AccessController;-><init>()V
-Ljava/security/AlgorithmParameterGenerator;->algorithm:Ljava/lang/String;
-Ljava/security/AlgorithmParameterGenerator;->paramGenSpi:Ljava/security/AlgorithmParameterGeneratorSpi;
-Ljava/security/AlgorithmParameterGenerator;->provider:Ljava/security/Provider;
-Ljava/security/AlgorithmParameters;->algorithm:Ljava/lang/String;
-Ljava/security/AlgorithmParameters;->initialized:Z
-Ljava/security/AlgorithmParameters;->paramSpi:Ljava/security/AlgorithmParametersSpi;
-Ljava/security/AlgorithmParameters;->provider:Ljava/security/Provider;
-Ljava/security/cert/Certificate$CertificateRep;->data:[B
-Ljava/security/cert/Certificate$CertificateRep;->type:Ljava/lang/String;
-Ljava/security/cert/Certificate;->hash:I
-Ljava/security/cert/Certificate;->type:Ljava/lang/String;
-Ljava/security/cert/CertificateFactory;->certFacSpi:Ljava/security/cert/CertificateFactorySpi;
-Ljava/security/cert/CertificateFactory;->provider:Ljava/security/Provider;
-Ljava/security/cert/CertificateFactory;->type:Ljava/lang/String;
-Ljava/security/cert/CertificateRevokedException;->authority:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/CertificateRevokedException;->extensions:Ljava/util/Map;
-Ljava/security/cert/CertificateRevokedException;->reason:Ljava/security/cert/CRLReason;
-Ljava/security/cert/CertificateRevokedException;->revocationDate:Ljava/util/Date;
-Ljava/security/cert/CertPath$CertPathRep;->data:[B
-Ljava/security/cert/CertPath$CertPathRep;->type:Ljava/lang/String;
-Ljava/security/cert/CertPath;->type:Ljava/lang/String;
-Ljava/security/cert/CertPathBuilder;->algorithm:Ljava/lang/String;
-Ljava/security/cert/CertPathBuilder;->builderSpi:Ljava/security/cert/CertPathBuilderSpi;
-Ljava/security/cert/CertPathBuilder;->CPB_TYPE:Ljava/lang/String;
-Ljava/security/cert/CertPathBuilder;->provider:Ljava/security/Provider;
-Ljava/security/cert/CertPathValidator;->algorithm:Ljava/lang/String;
-Ljava/security/cert/CertPathValidator;->CPV_TYPE:Ljava/lang/String;
-Ljava/security/cert/CertPathValidator;->provider:Ljava/security/Provider;
-Ljava/security/cert/CertPathValidator;->validatorSpi:Ljava/security/cert/CertPathValidatorSpi;
-Ljava/security/cert/CertPathValidatorException;->certPath:Ljava/security/cert/CertPath;
-Ljava/security/cert/CertPathValidatorException;->index:I
-Ljava/security/cert/CertPathValidatorException;->reason:Ljava/security/cert/CertPathValidatorException$Reason;
-Ljava/security/cert/CertStore;->CERTSTORE_TYPE:Ljava/lang/String;
-Ljava/security/cert/CertStore;->handleException(Ljava/security/NoSuchAlgorithmException;)Ljava/security/cert/CertStore;
-Ljava/security/cert/CertStore;->params:Ljava/security/cert/CertStoreParameters;
-Ljava/security/cert/CertStore;->provider:Ljava/security/Provider;
-Ljava/security/cert/CertStore;->storeSpi:Ljava/security/cert/CertStoreSpi;
-Ljava/security/cert/CertStore;->type:Ljava/lang/String;
-Ljava/security/cert/CollectionCertStoreParameters;->coll:Ljava/util/Collection;
-Ljava/security/cert/CRL;->type:Ljava/lang/String;
-Ljava/security/cert/LDAPCertStoreParameters;->LDAP_DEFAULT_PORT:I
-Ljava/security/cert/LDAPCertStoreParameters;->port:I
-Ljava/security/cert/LDAPCertStoreParameters;->serverName:Ljava/lang/String;
-Ljava/security/cert/PKIXBuilderParameters;->maxPathLength:I
-Ljava/security/cert/PKIXCertPathBuilderResult;->certPath:Ljava/security/cert/CertPath;
-Ljava/security/cert/PKIXCertPathValidatorResult;->policyTree:Ljava/security/cert/PolicyNode;
-Ljava/security/cert/PKIXCertPathValidatorResult;->subjectPublicKey:Ljava/security/PublicKey;
-Ljava/security/cert/PKIXCertPathValidatorResult;->trustAnchor:Ljava/security/cert/TrustAnchor;
-Ljava/security/cert/PKIXParameters;->anyPolicyInhibited:Z
-Ljava/security/cert/PKIXParameters;->certPathCheckers:Ljava/util/List;
-Ljava/security/cert/PKIXParameters;->certSelector:Ljava/security/cert/CertSelector;
-Ljava/security/cert/PKIXParameters;->certStores:Ljava/util/List;
-Ljava/security/cert/PKIXParameters;->date:Ljava/util/Date;
-Ljava/security/cert/PKIXParameters;->explicitPolicyRequired:Z
-Ljava/security/cert/PKIXParameters;->policyMappingInhibited:Z
-Ljava/security/cert/PKIXParameters;->policyQualifiersRejected:Z
-Ljava/security/cert/PKIXParameters;->revocationEnabled:Z
-Ljava/security/cert/PKIXParameters;->sigProvider:Ljava/lang/String;
-Ljava/security/cert/PKIXParameters;->unmodInitialPolicies:Ljava/util/Set;
-Ljava/security/cert/PKIXParameters;->unmodTrustAnchors:Ljava/util/Set;
-Ljava/security/cert/PKIXRevocationChecker;->ocspExtensions:Ljava/util/List;
-Ljava/security/cert/PKIXRevocationChecker;->ocspResponder:Ljava/net/URI;
-Ljava/security/cert/PKIXRevocationChecker;->ocspResponderCert:Ljava/security/cert/X509Certificate;
-Ljava/security/cert/PKIXRevocationChecker;->ocspResponses:Ljava/util/Map;
-Ljava/security/cert/PKIXRevocationChecker;->options:Ljava/util/Set;
-Ljava/security/cert/PolicyQualifierInfo;->mData:[B
-Ljava/security/cert/PolicyQualifierInfo;->mEncoded:[B
-Ljava/security/cert/PolicyQualifierInfo;->mId:Ljava/lang/String;
-Ljava/security/cert/PolicyQualifierInfo;->pqiString:Ljava/lang/String;
-Ljava/security/cert/TrustAnchor;->caName:Ljava/lang/String;
-Ljava/security/cert/TrustAnchor;->caPrincipal:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/TrustAnchor;->nc:Lsun/security/x509/NameConstraintsExtension;
-Ljava/security/cert/TrustAnchor;->ncBytes:[B
-Ljava/security/cert/TrustAnchor;->pubKey:Ljava/security/PublicKey;
-Ljava/security/cert/TrustAnchor;->setNameConstraints([B)V
-Ljava/security/cert/TrustAnchor;->trustedCert:Ljava/security/cert/X509Certificate;
-Ljava/security/cert/X509Certificate;->issuerX500Principal:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/X509Certificate;->subjectX500Principal:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/X509CertSelector;->addPathToNameInternal(ILjava/lang/Object;)V
-Ljava/security/cert/X509CertSelector;->addSubjectAlternativeNameInternal(ILjava/lang/Object;)V
-Ljava/security/cert/X509CertSelector;->ANY_EXTENDED_KEY_USAGE:Lsun/security/util/ObjectIdentifier;
-Ljava/security/cert/X509CertSelector;->authorityKeyID:[B
-Ljava/security/cert/X509CertSelector;->basicConstraints:I
-Ljava/security/cert/X509CertSelector;->certificateValid:Ljava/util/Date;
-Ljava/security/cert/X509CertSelector;->CERT_POLICIES_ID:I
-Ljava/security/cert/X509CertSelector;->cloneAndCheckNames(Ljava/util/Collection;)Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->cloneNames(Ljava/util/Collection;)Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->cloneSet(Ljava/util/Set;)Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->debug:Lsun/security/util/Debug;
-Ljava/security/cert/X509CertSelector;->equalNames(Ljava/util/Collection;Ljava/util/Collection;)Z
-Ljava/security/cert/X509CertSelector;->EXTENDED_KEY_USAGE_ID:I
-Ljava/security/cert/X509CertSelector;->EXTENSION_OIDS:[Ljava/lang/String;
-Ljava/security/cert/X509CertSelector;->FALSE:Ljava/lang/Boolean;
-Ljava/security/cert/X509CertSelector;->getExtensionObject(Ljava/security/cert/X509Certificate;I)Ljava/security/cert/Extension;
-Ljava/security/cert/X509CertSelector;->issuer:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/X509CertSelector;->keyPurposeOIDSet:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->keyPurposeSet:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->keyUsage:[Z
-Ljava/security/cert/X509CertSelector;->keyUsageToString([Z)Ljava/lang/String;
-Ljava/security/cert/X509CertSelector;->makeGeneralNameInterface(ILjava/lang/Object;)Lsun/security/x509/GeneralNameInterface;
-Ljava/security/cert/X509CertSelector;->matchAllSubjectAltNames:Z
-Ljava/security/cert/X509CertSelector;->matchAuthorityKeyID(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchBasicConstraints(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchExcluded(Lsun/security/x509/GeneralSubtrees;)Z
-Ljava/security/cert/X509CertSelector;->matchExtendedKeyUsage(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchKeyUsage(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchNameConstraints(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchPathToNames(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchPermitted(Lsun/security/x509/GeneralSubtrees;)Z
-Ljava/security/cert/X509CertSelector;->matchPolicy(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchPrivateKeyValid(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchSubjectAlternativeNames(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->matchSubjectPublicKeyAlgID(Ljava/security/cert/X509Certificate;)Z
-Ljava/security/cert/X509CertSelector;->NAME_ANY:I
-Ljava/security/cert/X509CertSelector;->NAME_CONSTRAINTS_ID:I
-Ljava/security/cert/X509CertSelector;->NAME_DIRECTORY:I
-Ljava/security/cert/X509CertSelector;->NAME_DNS:I
-Ljava/security/cert/X509CertSelector;->NAME_EDI:I
-Ljava/security/cert/X509CertSelector;->NAME_IP:I
-Ljava/security/cert/X509CertSelector;->NAME_OID:I
-Ljava/security/cert/X509CertSelector;->NAME_RFC822:I
-Ljava/security/cert/X509CertSelector;->NAME_URI:I
-Ljava/security/cert/X509CertSelector;->NAME_X400:I
-Ljava/security/cert/X509CertSelector;->nc:Lsun/security/x509/NameConstraintsExtension;
-Ljava/security/cert/X509CertSelector;->ncBytes:[B
-Ljava/security/cert/X509CertSelector;->NUM_OF_EXTENSIONS:I
-Ljava/security/cert/X509CertSelector;->parseNames(Ljava/util/Collection;)Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->pathToGeneralNames:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->pathToNames:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->policy:Lsun/security/x509/CertificatePolicySet;
-Ljava/security/cert/X509CertSelector;->policySet:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->privateKeyValid:Ljava/util/Date;
-Ljava/security/cert/X509CertSelector;->PRIVATE_KEY_USAGE_ID:I
-Ljava/security/cert/X509CertSelector;->serialNumber:Ljava/math/BigInteger;
-Ljava/security/cert/X509CertSelector;->setPathToNamesInternal(Ljava/util/Set;)V
-Ljava/security/cert/X509CertSelector;->subject:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/X509CertSelector;->subjectAlternativeGeneralNames:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->subjectAlternativeNames:Ljava/util/Set;
-Ljava/security/cert/X509CertSelector;->subjectKeyID:[B
-Ljava/security/cert/X509CertSelector;->subjectPublicKey:Ljava/security/PublicKey;
-Ljava/security/cert/X509CertSelector;->subjectPublicKeyAlgID:Lsun/security/util/ObjectIdentifier;
-Ljava/security/cert/X509CertSelector;->subjectPublicKeyBytes:[B
-Ljava/security/cert/X509CertSelector;->SUBJECT_ALT_NAME_ID:I
-Ljava/security/cert/X509CertSelector;->x509Cert:Ljava/security/cert/X509Certificate;
-Ljava/security/cert/X509CRL;->issuerPrincipal:Ljavax/security/auth/x500/X500Principal;
-Ljava/security/cert/X509CRLSelector;->addIssuerNameInternal(Ljava/lang/Object;Ljavax/security/auth/x500/X500Principal;)V
-Ljava/security/cert/X509CRLSelector;->certChecking:Ljava/security/cert/X509Certificate;
-Ljava/security/cert/X509CRLSelector;->cloneAndCheckIssuerNames(Ljava/util/Collection;)Ljava/util/HashSet;
-Ljava/security/cert/X509CRLSelector;->cloneIssuerNames(Ljava/util/Collection;)Ljava/util/HashSet;
-Ljava/security/cert/X509CRLSelector;->dateAndTime:Ljava/util/Date;
-Ljava/security/cert/X509CRLSelector;->debug:Lsun/security/util/Debug;
-Ljava/security/cert/X509CRLSelector;->issuerNames:Ljava/util/HashSet;
-Ljava/security/cert/X509CRLSelector;->issuerX500Principals:Ljava/util/HashSet;
-Ljava/security/cert/X509CRLSelector;->maxCRL:Ljava/math/BigInteger;
-Ljava/security/cert/X509CRLSelector;->minCRL:Ljava/math/BigInteger;
-Ljava/security/cert/X509CRLSelector;->parseIssuerNames(Ljava/util/Collection;)Ljava/util/HashSet;
-Ljava/security/cert/X509CRLSelector;->setDateAndTime(Ljava/util/Date;J)V
-Ljava/security/cert/X509CRLSelector;->skew:J
-Ljava/security/CodeSigner;->myhash:I
-Ljava/security/CodeSigner;->signerCertPath:Ljava/security/cert/CertPath;
-Ljava/security/CodeSigner;->timestamp:Ljava/security/Timestamp;
-Ljava/security/CodeSource;->location:Ljava/net/URL;
-Ljava/security/DigestInputStream;->on:Z
-Ljava/security/DigestOutputStream;->on:Z
-Ljava/security/DomainLoadStoreParameter;->configuration:Ljava/net/URI;
-Ljava/security/DomainLoadStoreParameter;->protectionParams:Ljava/util/Map;
-Ljava/security/GuardedObject;->guard:Ljava/security/Guard;
-Ljava/security/GuardedObject;->object:Ljava/lang/Object;
-Ljava/security/Identity;->certificates:Ljava/util/Vector;
-Ljava/security/Identity;->check(Ljava/lang/String;)V
-Ljava/security/Identity;->fullName()Ljava/lang/String;
-Ljava/security/Identity;->info:Ljava/lang/String;
-Ljava/security/Identity;->keyEquals(Ljava/security/PublicKey;Ljava/security/PublicKey;)Z
-Ljava/security/Identity;->name:Ljava/lang/String;
-Ljava/security/Identity;->printCertificates()Ljava/lang/String;
-Ljava/security/Identity;->printKeys()Ljava/lang/String;
-Ljava/security/Identity;->publicKey:Ljava/security/PublicKey;
-Ljava/security/Identity;->scope:Ljava/security/IdentityScope;
-Ljava/security/IdentityScope;->check(Ljava/lang/String;)V
-Ljava/security/IdentityScope;->initializeSystemScope()V
-Ljava/security/IdentityScope;->scope:Ljava/security/IdentityScope;
-Ljava/security/KeyFactory;-><init>(Ljava/lang/String;)V
-Ljava/security/KeyFactory;->algorithm:Ljava/lang/String;
-Ljava/security/KeyFactory;->debug:Lsun/security/util/Debug;
-Ljava/security/KeyFactory;->lock:Ljava/lang/Object;
-Ljava/security/KeyFactory;->nextSpi(Ljava/security/KeyFactorySpi;)Ljava/security/KeyFactorySpi;
-Ljava/security/KeyFactory;->provider:Ljava/security/Provider;
-Ljava/security/KeyFactory;->serviceIterator:Ljava/util/Iterator;
-Ljava/security/KeyFactory;->spi:Ljava/security/KeyFactorySpi;
-Ljava/security/KeyPair;->privateKey:Ljava/security/PrivateKey;
-Ljava/security/KeyPair;->publicKey:Ljava/security/PublicKey;
-Ljava/security/KeyPairGenerator$Delegate;-><init>(Ljava/security/KeyPairGeneratorSpi;Ljava/lang/String;)V
-Ljava/security/KeyPairGenerator$Delegate;-><init>(Lsun/security/jca/GetInstance$Instance;Ljava/util/Iterator;Ljava/lang/String;)V
-Ljava/security/KeyPairGenerator$Delegate;->disableFailover()V
-Ljava/security/KeyPairGenerator$Delegate;->initKeySize:I
-Ljava/security/KeyPairGenerator$Delegate;->initParams:Ljava/security/spec/AlgorithmParameterSpec;
-Ljava/security/KeyPairGenerator$Delegate;->initRandom:Ljava/security/SecureRandom;
-Ljava/security/KeyPairGenerator$Delegate;->initType:I
-Ljava/security/KeyPairGenerator$Delegate;->I_NONE:I
-Ljava/security/KeyPairGenerator$Delegate;->I_PARAMS:I
-Ljava/security/KeyPairGenerator$Delegate;->I_SIZE:I
-Ljava/security/KeyPairGenerator$Delegate;->lock:Ljava/lang/Object;
-Ljava/security/KeyPairGenerator$Delegate;->nextSpi(Ljava/security/KeyPairGeneratorSpi;Z)Ljava/security/KeyPairGeneratorSpi;
-Ljava/security/KeyPairGenerator$Delegate;->serviceIterator:Ljava/util/Iterator;
-Ljava/security/KeyPairGenerator$Delegate;->spi:Ljava/security/KeyPairGeneratorSpi;
-Ljava/security/KeyPairGenerator;->algorithm:Ljava/lang/String;
-Ljava/security/KeyPairGenerator;->disableFailover()V
-Ljava/security/KeyPairGenerator;->provider:Ljava/security/Provider;
-Ljava/security/KeyRep;->algorithm:Ljava/lang/String;
-Ljava/security/KeyRep;->encoded:[B
-Ljava/security/KeyRep;->format:Ljava/lang/String;
-Ljava/security/KeyRep;->PKCS8:Ljava/lang/String;
-Ljava/security/KeyRep;->RAW:Ljava/lang/String;
-Ljava/security/KeyRep;->type:Ljava/security/KeyRep$Type;
-Ljava/security/KeyRep;->X509:Ljava/lang/String;
-Ljava/security/KeyStore$Builder$FileBuilder;-><init>(Ljava/lang/String;Ljava/security/Provider;Ljava/io/File;Ljava/security/KeyStore$ProtectionParameter;Ljava/security/AccessControlContext;)V
-Ljava/security/KeyStore$Builder$FileBuilder;->context:Ljava/security/AccessControlContext;
-Ljava/security/KeyStore$Builder$FileBuilder;->file:Ljava/io/File;
-Ljava/security/KeyStore$Builder$FileBuilder;->keyProtection:Ljava/security/KeyStore$ProtectionParameter;
-Ljava/security/KeyStore$Builder$FileBuilder;->keyStore:Ljava/security/KeyStore;
-Ljava/security/KeyStore$Builder$FileBuilder;->oldException:Ljava/lang/Throwable;
-Ljava/security/KeyStore$Builder$FileBuilder;->protection:Ljava/security/KeyStore$ProtectionParameter;
-Ljava/security/KeyStore$Builder$FileBuilder;->provider:Ljava/security/Provider;
-Ljava/security/KeyStore$Builder$FileBuilder;->type:Ljava/lang/String;
-Ljava/security/KeyStore$Builder;->MAX_CALLBACK_TRIES:I
-Ljava/security/KeyStore$CallbackHandlerProtection;->handler:Ljavax/security/auth/callback/CallbackHandler;
-Ljava/security/KeyStore$PasswordProtection;->destroyed:Z
-Ljava/security/KeyStore$PasswordProtection;->password:[C
-Ljava/security/KeyStore$PasswordProtection;->protectionAlgorithm:Ljava/lang/String;
-Ljava/security/KeyStore$PasswordProtection;->protectionParameters:Ljava/security/spec/AlgorithmParameterSpec;
-Ljava/security/KeyStore$PrivateKeyEntry;->attributes:Ljava/util/Set;
-Ljava/security/KeyStore$PrivateKeyEntry;->chain:[Ljava/security/cert/Certificate;
-Ljava/security/KeyStore$PrivateKeyEntry;->privKey:Ljava/security/PrivateKey;
-Ljava/security/KeyStore$SecretKeyEntry;->attributes:Ljava/util/Set;
-Ljava/security/KeyStore$SecretKeyEntry;->sKey:Ljavax/crypto/SecretKey;
-Ljava/security/KeyStore$SimpleLoadStoreParameter;-><init>(Ljava/security/KeyStore$ProtectionParameter;)V
-Ljava/security/KeyStore$SimpleLoadStoreParameter;->protection:Ljava/security/KeyStore$ProtectionParameter;
-Ljava/security/KeyStore$TrustedCertificateEntry;->attributes:Ljava/util/Set;
-Ljava/security/KeyStore$TrustedCertificateEntry;->cert:Ljava/security/cert/Certificate;
-Ljava/security/KeyStore;->initialized:Z
-Ljava/security/KeyStore;->KEYSTORE_TYPE:Ljava/lang/String;
-Ljava/security/KeyStore;->provider:Ljava/security/Provider;
-Ljava/security/KeyStore;->type:Ljava/lang/String;
-Ljava/security/MessageDigest$Delegate;-><init>(Ljava/security/MessageDigestSpi;Ljava/lang/String;)V
-Ljava/security/MessageDigest$Delegate;->digestSpi:Ljava/security/MessageDigestSpi;
-Ljava/security/MessageDigest;->algorithm:Ljava/lang/String;
-Ljava/security/MessageDigest;->INITIAL:I
-Ljava/security/MessageDigest;->IN_PROGRESS:I
-Ljava/security/MessageDigest;->provider:Ljava/security/Provider;
-Ljava/security/MessageDigest;->state:I
-Ljava/security/MessageDigestSpi;->tempArray:[B
-Ljava/security/Permission;->name:Ljava/lang/String;
-Ljava/security/PKCS12Attribute;->COLON_SEPARATED_HEX_PAIRS:Ljava/util/regex/Pattern;
-Ljava/security/PKCS12Attribute;->encode(Lsun/security/util/ObjectIdentifier;[Ljava/lang/String;)[B
-Ljava/security/PKCS12Attribute;->encoded:[B
-Ljava/security/PKCS12Attribute;->hashValue:I
-Ljava/security/PKCS12Attribute;->name:Ljava/lang/String;
-Ljava/security/PKCS12Attribute;->parse([B)V
-Ljava/security/PKCS12Attribute;->value:Ljava/lang/String;
-Ljava/security/Policy$UnsupportedEmptyCollection;-><init>()V
-Ljava/security/PrivilegedActionException;->exception:Ljava/lang/Exception;
-Ljava/security/Provider$EngineDescription;-><init>(Ljava/lang/String;ZLjava/lang/String;)V
-Ljava/security/Provider$EngineDescription;->constructorParameterClass:Ljava/lang/Class;
-Ljava/security/Provider$EngineDescription;->constructorParameterClassName:Ljava/lang/String;
-Ljava/security/Provider$EngineDescription;->getConstructorParameterClass()Ljava/lang/Class;
-Ljava/security/Provider$EngineDescription;->name:Ljava/lang/String;
-Ljava/security/Provider$EngineDescription;->supportsParameter:Z
-Ljava/security/Provider$Service;-><init>(Ljava/security/Provider;)V
-Ljava/security/Provider$Service;->addAlias(Ljava/lang/String;)V
-Ljava/security/Provider$Service;->addAttribute(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/security/Provider$Service;->algorithm:Ljava/lang/String;
-Ljava/security/Provider$Service;->aliases:Ljava/util/List;
-Ljava/security/Provider$Service;->attributes:Ljava/util/Map;
-Ljava/security/Provider$Service;->CLASS0:[Ljava/lang/Class;
-Ljava/security/Provider$Service;->className:Ljava/lang/String;
-Ljava/security/Provider$Service;->classRef:Ljava/lang/ref/Reference;
-Ljava/security/Provider$Service;->getAliases()Ljava/util/List;
-Ljava/security/Provider$Service;->getImplClass()Ljava/lang/Class;
-Ljava/security/Provider$Service;->getKeyClass(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/security/Provider$Service;->hasKeyAttributes()Z
-Ljava/security/Provider$Service;->hasKeyAttributes:Ljava/lang/Boolean;
-Ljava/security/Provider$Service;->isValid()Z
-Ljava/security/Provider$Service;->newInstanceGeneric(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/security/Provider$Service;->provider:Ljava/security/Provider;
-Ljava/security/Provider$Service;->registered:Z
-Ljava/security/Provider$Service;->supportedClasses:[Ljava/lang/Class;
-Ljava/security/Provider$Service;->supportedFormats:[Ljava/lang/String;
-Ljava/security/Provider$Service;->supportsKeyClass(Ljava/security/Key;)Z
-Ljava/security/Provider$Service;->supportsKeyFormat(Ljava/security/Key;)Z
-Ljava/security/Provider$Service;->type:Ljava/lang/String;
-Ljava/security/Provider$ServiceKey;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
-Ljava/security/Provider$ServiceKey;->algorithm:Ljava/lang/String;
-Ljava/security/Provider$ServiceKey;->matches(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/security/Provider$ServiceKey;->originalAlgorithm:Ljava/lang/String;
-Ljava/security/Provider$ServiceKey;->type:Ljava/lang/String;
-Ljava/security/Provider$UString;-><init>(Ljava/lang/String;)V
-Ljava/security/Provider$UString;->lowerString:Ljava/lang/String;
-Ljava/security/Provider$UString;->string:Ljava/lang/String;
-Ljava/security/Provider;->addEngine(Ljava/lang/String;ZLjava/lang/String;)V
-Ljava/security/Provider;->ALIAS_LENGTH:I
-Ljava/security/Provider;->ALIAS_PREFIX:Ljava/lang/String;
-Ljava/security/Provider;->ALIAS_PREFIX_LOWER:Ljava/lang/String;
-Ljava/security/Provider;->check(Ljava/lang/String;)V
-Ljava/security/Provider;->checkInitialized()V
-Ljava/security/Provider;->checkLegacy(Ljava/lang/Object;)Z
-Ljava/security/Provider;->debug:Lsun/security/util/Debug;
-Ljava/security/Provider;->ensureLegacyParsed()V
-Ljava/security/Provider;->entrySet:Ljava/util/Set;
-Ljava/security/Provider;->entrySetCallCount:I
-Ljava/security/Provider;->getEngineName(Ljava/lang/String;)Ljava/lang/String;
-Ljava/security/Provider;->getTypeAndAlgorithm(Ljava/lang/String;)[Ljava/lang/String;
-Ljava/security/Provider;->implClear()V
-Ljava/security/Provider;->implCompute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-Ljava/security/Provider;->implComputeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
-Ljava/security/Provider;->implComputeIfPresent(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-Ljava/security/Provider;->implMerge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-Ljava/security/Provider;->implPut(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/security/Provider;->implPutAll(Ljava/util/Map;)V
-Ljava/security/Provider;->implPutIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/security/Provider;->implRemove(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/security/Provider;->implRemove(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/security/Provider;->implRemoveService(Ljava/security/Provider$Service;)V
-Ljava/security/Provider;->implReplace(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/security/Provider;->implReplace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/security/Provider;->implReplaceAll(Ljava/util/function/BiFunction;)V
-Ljava/security/Provider;->info:Ljava/lang/String;
-Ljava/security/Provider;->initialized:Z
-Ljava/security/Provider;->isRegistered()Z
-Ljava/security/Provider;->knownEngines:Ljava/util/Map;
-Ljava/security/Provider;->legacyChanged:Z
-Ljava/security/Provider;->legacyMap:Ljava/util/Map;
-Ljava/security/Provider;->legacyStrings:Ljava/util/Map;
-Ljava/security/Provider;->name:Ljava/lang/String;
-Ljava/security/Provider;->parseLegacyPut(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/security/Provider;->previousKey:Ljava/security/Provider$ServiceKey;
-Ljava/security/Provider;->putId()V
-Ljava/security/Provider;->putPropertyStrings(Ljava/security/Provider$Service;)V
-Ljava/security/Provider;->registered:Z
-Ljava/security/Provider;->removeInvalidServices(Ljava/util/Map;)V
-Ljava/security/Provider;->removePropertyStrings(Ljava/security/Provider$Service;)V
-Ljava/security/Provider;->serviceMap:Ljava/util/Map;
-Ljava/security/Provider;->servicesChanged:Z
-Ljava/security/Provider;->serviceSet:Ljava/util/Set;
-Ljava/security/Provider;->setRegistered()V
-Ljava/security/Provider;->setUnregistered()V
-Ljava/security/Provider;->version:D
-Ljava/security/Provider;->warmUpServiceProvision()V
-Ljava/security/SecureClassLoader;->check()V
-Ljava/security/SecureClassLoader;->debug:Lsun/security/util/Debug;
-Ljava/security/SecureClassLoader;->getProtectionDomain(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;
-Ljava/security/SecureClassLoader;->initialized:Z
-Ljava/security/SecureClassLoader;->pdcache:Ljava/util/HashMap;
-Ljava/security/SecureRandom$StrongPatternHolder;-><init>()V
-Ljava/security/SecureRandom$StrongPatternHolder;->pattern:Ljava/util/regex/Pattern;
-Ljava/security/SecureRandom;-><init>(Ljava/security/SecureRandomSpi;Ljava/security/Provider;Ljava/lang/String;)V
-Ljava/security/SecureRandom;->algorithm:Ljava/lang/String;
-Ljava/security/SecureRandom;->counter:J
-Ljava/security/SecureRandom;->digest:Ljava/security/MessageDigest;
-Ljava/security/SecureRandom;->getDefaultPRNG(Z[B)V
-Ljava/security/SecureRandom;->getPrngAlgorithm()Ljava/lang/String;
-Ljava/security/SecureRandom;->getSecureRandomSpi()Ljava/security/SecureRandomSpi;
-Ljava/security/SecureRandom;->longToByteArray(J)[B
-Ljava/security/SecureRandom;->provider:Ljava/security/Provider;
-Ljava/security/SecureRandom;->randomBytes:[B
-Ljava/security/SecureRandom;->randomBytesUsed:I
-Ljava/security/SecureRandom;->secureRandomSpi:Ljava/security/SecureRandomSpi;
-Ljava/security/SecureRandom;->seedGenerator:Ljava/security/SecureRandom;
-Ljava/security/SecureRandom;->state:[B
-Ljava/security/Security$ProviderProperty;-><init>()V
-Ljava/security/Security$ProviderProperty;->className:Ljava/lang/String;
-Ljava/security/Security$ProviderProperty;->provider:Ljava/security/Provider;
-Ljava/security/Security;-><init>()V
-Ljava/security/Security;->getAllQualifyingCandidates(Ljava/lang/String;Ljava/lang/String;[Ljava/security/Provider;)Ljava/util/LinkedHashSet;
-Ljava/security/Security;->getFilterComponents(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
-Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
-Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)[Ljava/lang/Object;
-Ljava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/security/Security;->getProviderProperty(Ljava/lang/String;)Ljava/security/Security$ProviderProperty;
-Ljava/security/Security;->getProviderProperty(Ljava/lang/String;Ljava/security/Provider;)Ljava/lang/String;
-Ljava/security/Security;->getProvidersNotUsingCache(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/Provider;)Ljava/util/LinkedHashSet;
-Ljava/security/Security;->getSpiClass(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/security/Security;->getVersion()I
-Ljava/security/Security;->increaseVersion()V
-Ljava/security/Security;->initializeStatic()V
-Ljava/security/Security;->invalidateSMCache(Ljava/lang/String;)V
-Ljava/security/Security;->isConstraintSatisfied(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/security/Security;->isCriterionSatisfied(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/security/Security;->isStandardAttr(Ljava/lang/String;)Z
-Ljava/security/Security;->props:Ljava/util/Properties;
-Ljava/security/Security;->spiMap:Ljava/util/Map;
-Ljava/security/Security;->version:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/security/Signature$CipherAdapter;-><init>(Ljavax/crypto/Cipher;)V
-Ljava/security/Signature$CipherAdapter;->cipher:Ljavax/crypto/Cipher;
-Ljava/security/Signature$CipherAdapter;->data:Ljava/io/ByteArrayOutputStream;
-Ljava/security/Signature$Delegate;-><init>(Ljava/lang/String;)V
-Ljava/security/Signature$Delegate;-><init>(Ljava/security/SignatureSpi;Ljava/lang/String;)V
-Ljava/security/Signature$Delegate;->chooseFirstProvider()V
-Ljava/security/Signature$Delegate;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V
-Ljava/security/Signature$Delegate;->getCurrentSpi()Ljava/security/SignatureSpi;
-Ljava/security/Signature$Delegate;->init(Ljava/security/SignatureSpi;ILjava/security/Key;Ljava/security/SecureRandom;)V
-Ljava/security/Signature$Delegate;->I_PRIV:I
-Ljava/security/Signature$Delegate;->I_PRIV_SR:I
-Ljava/security/Signature$Delegate;->I_PUB:I
-Ljava/security/Signature$Delegate;->lock:Ljava/lang/Object;
-Ljava/security/Signature$Delegate;->newInstance(Ljava/security/Provider$Service;)Ljava/security/SignatureSpi;
-Ljava/security/Signature$Delegate;->sigSpi:Ljava/security/SignatureSpi;
-Ljava/security/Signature$Delegate;->warnCount:I
-Ljava/security/Signature;->algorithm:Ljava/lang/String;
-Ljava/security/Signature;->chooseFirstProvider()V
-Ljava/security/Signature;->getCurrentSpi()Ljava/security/SignatureSpi;
-Ljava/security/Signature;->getInstanceRSA(Ljava/security/Provider;)Ljava/security/Signature;
-Ljava/security/Signature;->isSpi(Ljava/security/Provider$Service;)Z
-Ljava/security/Signature;->provider:Ljava/security/Provider;
-Ljava/security/Signature;->rsaIds:Ljava/util/List;
-Ljava/security/Signature;->RSA_CIPHER:Ljava/lang/String;
-Ljava/security/Signature;->RSA_SIGNATURE:Ljava/lang/String;
-Ljava/security/Signature;->signatureInfo:Ljava/util/Map;
-Ljava/security/SignedObject;->content:[B
-Ljava/security/SignedObject;->sign(Ljava/security/PrivateKey;Ljava/security/Signature;)V
-Ljava/security/SignedObject;->signature:[B
-Ljava/security/SignedObject;->thealgorithm:Ljava/lang/String;
-Ljava/security/Signer;->check(Ljava/lang/String;)V
-Ljava/security/Signer;->printKeys()Ljava/lang/String;
-Ljava/security/Signer;->privateKey:Ljava/security/PrivateKey;
-Ljava/security/spec/DSAParameterSpec;->g:Ljava/math/BigInteger;
-Ljava/security/spec/DSAParameterSpec;->p:Ljava/math/BigInteger;
-Ljava/security/spec/DSAParameterSpec;->q:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPrivateKeySpec;->g:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPrivateKeySpec;->p:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPrivateKeySpec;->q:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPrivateKeySpec;->x:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPublicKeySpec;->g:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPublicKeySpec;->p:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPublicKeySpec;->q:Ljava/math/BigInteger;
-Ljava/security/spec/DSAPublicKeySpec;->y:Ljava/math/BigInteger;
-Ljava/security/spec/ECFieldF2m;->ks:[I
-Ljava/security/spec/ECFieldF2m;->m:I
-Ljava/security/spec/ECFieldF2m;->rp:Ljava/math/BigInteger;
-Ljava/security/spec/ECFieldFp;->p:Ljava/math/BigInteger;
-Ljava/security/spec/ECGenParameterSpec;->name:Ljava/lang/String;
-Ljava/security/spec/ECParameterSpec;->curve:Ljava/security/spec/EllipticCurve;
-Ljava/security/spec/ECParameterSpec;->curveName:Ljava/lang/String;
-Ljava/security/spec/ECParameterSpec;->g:Ljava/security/spec/ECPoint;
-Ljava/security/spec/ECParameterSpec;->h:I
-Ljava/security/spec/ECParameterSpec;->n:Ljava/math/BigInteger;
-Ljava/security/spec/ECPoint;-><init>()V
-Ljava/security/spec/ECPoint;->x:Ljava/math/BigInteger;
-Ljava/security/spec/ECPoint;->y:Ljava/math/BigInteger;
-Ljava/security/spec/ECPrivateKeySpec;->params:Ljava/security/spec/ECParameterSpec;
-Ljava/security/spec/ECPrivateKeySpec;->s:Ljava/math/BigInteger;
-Ljava/security/spec/ECPublicKeySpec;->params:Ljava/security/spec/ECParameterSpec;
-Ljava/security/spec/ECPublicKeySpec;->w:Ljava/security/spec/ECPoint;
-Ljava/security/spec/EllipticCurve;->a:Ljava/math/BigInteger;
-Ljava/security/spec/EllipticCurve;->b:Ljava/math/BigInteger;
-Ljava/security/spec/EllipticCurve;->checkValidity(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/lang/String;)V
-Ljava/security/spec/EllipticCurve;->field:Ljava/security/spec/ECField;
-Ljava/security/spec/EllipticCurve;->seed:[B
-Ljava/security/spec/EncodedKeySpec;->encodedKey:[B
-Ljava/security/spec/MGF1ParameterSpec;->mdName:Ljava/lang/String;
-Ljava/security/spec/PSSParameterSpec;-><init>()V
-Ljava/security/spec/PSSParameterSpec;->mdName:Ljava/lang/String;
-Ljava/security/spec/PSSParameterSpec;->mgfName:Ljava/lang/String;
-Ljava/security/spec/PSSParameterSpec;->mgfSpec:Ljava/security/spec/AlgorithmParameterSpec;
-Ljava/security/spec/PSSParameterSpec;->saltLen:I
-Ljava/security/spec/PSSParameterSpec;->trailerField:I
-Ljava/security/spec/RSAKeyGenParameterSpec;->keysize:I
-Ljava/security/spec/RSAKeyGenParameterSpec;->publicExponent:Ljava/math/BigInteger;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->crtCoefficient:Ljava/math/BigInteger;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->otherPrimeInfo:[Ljava/security/spec/RSAOtherPrimeInfo;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeExponentP:Ljava/math/BigInteger;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeExponentQ:Ljava/math/BigInteger;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeP:Ljava/math/BigInteger;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->primeQ:Ljava/math/BigInteger;
-Ljava/security/spec/RSAMultiPrimePrivateCrtKeySpec;->publicExponent:Ljava/math/BigInteger;
-Ljava/security/spec/RSAOtherPrimeInfo;->crtCoefficient:Ljava/math/BigInteger;
-Ljava/security/spec/RSAOtherPrimeInfo;->prime:Ljava/math/BigInteger;
-Ljava/security/spec/RSAOtherPrimeInfo;->primeExponent:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateCrtKeySpec;->crtCoefficient:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateCrtKeySpec;->primeExponentP:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateCrtKeySpec;->primeExponentQ:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateCrtKeySpec;->primeP:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateCrtKeySpec;->primeQ:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateCrtKeySpec;->publicExponent:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateKeySpec;->modulus:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPrivateKeySpec;->privateExponent:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPublicKeySpec;->modulus:Ljava/math/BigInteger;
-Ljava/security/spec/RSAPublicKeySpec;->publicExponent:Ljava/math/BigInteger;
-Ljava/security/Timestamp;->myhash:I
-Ljava/security/Timestamp;->signerCertPath:Ljava/security/cert/CertPath;
-Ljava/security/Timestamp;->timestamp:Ljava/util/Date;
-Ljava/sql/BatchUpdateException;->updateCounts:[I
-Ljava/sql/DataTruncation;->dataSize:I
-Ljava/sql/DataTruncation;->index:I
-Ljava/sql/DataTruncation;->parameter:Z
-Ljava/sql/DataTruncation;->read:Z
-Ljava/sql/DataTruncation;->transferSize:I
-Ljava/sql/DriverInfo;-><init>(Ljava/sql/Driver;)V
-Ljava/sql/DriverInfo;->driver:Ljava/sql/Driver;
-Ljava/sql/DriverManager;-><init>()V
-Ljava/sql/DriverManager;->getConnection(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/ClassLoader;)Ljava/sql/Connection;
-Ljava/sql/DriverManager;->isDriverAllowed(Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
-Ljava/sql/DriverManager;->loadInitialDrivers()V
-Ljava/sql/DriverManager;->loginTimeout:I
-Ljava/sql/DriverManager;->logStream:Ljava/io/PrintStream;
-Ljava/sql/DriverManager;->logSync:Ljava/lang/Object;
-Ljava/sql/DriverManager;->logWriter:Ljava/io/PrintWriter;
-Ljava/sql/DriverManager;->registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
-Ljava/sql/DriverManager;->SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
-Ljava/sql/SQLClientInfoException;->failedProperties:Ljava/util/Map;
-Ljava/sql/SQLException;->next:Ljava/sql/SQLException;
-Ljava/sql/SQLException;->nextUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
-Ljava/sql/SQLException;->SQLState:Ljava/lang/String;
-Ljava/sql/SQLException;->vendorCode:I
-Ljava/sql/Timestamp;->nanos:I
-Ljava/sql/Types;-><init>()V
-Ljava/text/Annotation;->value:Ljava/lang/Object;
-Ljava/text/AttributedCharacterIterator$Attribute;->instanceMap:Ljava/util/Map;
-Ljava/text/AttributedCharacterIterator$Attribute;->name:Ljava/lang/String;
-Ljava/text/AttributedString$AttributedStringIterator;->beginIndex:I
-Ljava/text/AttributedString$AttributedStringIterator;->currentIndex:I
-Ljava/text/AttributedString$AttributedStringIterator;->currentRunIndex:I
-Ljava/text/AttributedString$AttributedStringIterator;->currentRunLimit:I
-Ljava/text/AttributedString$AttributedStringIterator;->currentRunStart:I
-Ljava/text/AttributedString$AttributedStringIterator;->endIndex:I
-Ljava/text/AttributedString$AttributedStringIterator;->getString()Ljava/text/AttributedString;
-Ljava/text/AttributedString$AttributedStringIterator;->internalSetIndex(I)C
-Ljava/text/AttributedString$AttributedStringIterator;->relevantAttributes:[Ljava/text/AttributedCharacterIterator$Attribute;
-Ljava/text/AttributedString$AttributedStringIterator;->updateRunInfo()V
-Ljava/text/AttributedString$AttributeMap;->beginIndex:I
-Ljava/text/AttributedString$AttributeMap;->endIndex:I
-Ljava/text/AttributedString$AttributeMap;->runIndex:I
-Ljava/text/AttributedString;-><init>([Ljava/text/AttributedCharacterIterator;)V
-Ljava/text/AttributedString;->addAttributeImpl(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
-Ljava/text/AttributedString;->addAttributeRunData(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
-Ljava/text/AttributedString;->appendContents(Ljava/lang/StringBuffer;Ljava/text/CharacterIterator;)V
-Ljava/text/AttributedString;->ARRAY_SIZE_INCREMENT:I
-Ljava/text/AttributedString;->attributeValuesMatch(Ljava/util/Set;II)Z
-Ljava/text/AttributedString;->charAt(I)C
-Ljava/text/AttributedString;->createRunAttributeDataVectors()V
-Ljava/text/AttributedString;->ensureRunBreak(I)I
-Ljava/text/AttributedString;->ensureRunBreak(IZ)I
-Ljava/text/AttributedString;->getAttribute(Ljava/text/AttributedCharacterIterator$Attribute;I)Ljava/lang/Object;
-Ljava/text/AttributedString;->getAttributeCheckRange(Ljava/text/AttributedCharacterIterator$Attribute;III)Ljava/lang/Object;
-Ljava/text/AttributedString;->length()I
-Ljava/text/AttributedString;->mapsDiffer(Ljava/util/Map;Ljava/util/Map;)Z
-Ljava/text/AttributedString;->runArraySize:I
-Ljava/text/AttributedString;->runAttributes:[Ljava/util/Vector;
-Ljava/text/AttributedString;->runAttributeValues:[Ljava/util/Vector;
-Ljava/text/AttributedString;->runCount:I
-Ljava/text/AttributedString;->runStarts:[I
-Ljava/text/AttributedString;->setAttributes(Ljava/util/Map;I)V
-Ljava/text/AttributedString;->text:Ljava/lang/String;
-Ljava/text/AttributedString;->valuesMatch(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/text/Bidi;-><init>(Landroid/icu/text/Bidi;)V
-Ljava/text/Bidi;->bidiBase:Landroid/icu/text/Bidi;
-Ljava/text/Bidi;->translateConstToIcu(I)I
-Ljava/text/CalendarBuilder;-><init>()V
-Ljava/text/CalendarBuilder;->addYear(I)Ljava/text/CalendarBuilder;
-Ljava/text/CalendarBuilder;->clear(I)Ljava/text/CalendarBuilder;
-Ljava/text/CalendarBuilder;->COMPUTED:I
-Ljava/text/CalendarBuilder;->establish(Ljava/util/Calendar;)Ljava/util/Calendar;
-Ljava/text/CalendarBuilder;->field:[I
-Ljava/text/CalendarBuilder;->ISO_DAY_OF_WEEK:I
-Ljava/text/CalendarBuilder;->isSet(I)Z
-Ljava/text/CalendarBuilder;->isValidDayOfWeek(I)Z
-Ljava/text/CalendarBuilder;->maxFieldIndex:I
-Ljava/text/CalendarBuilder;->MAX_FIELD:I
-Ljava/text/CalendarBuilder;->MINIMUM_USER_STAMP:I
-Ljava/text/CalendarBuilder;->nextStamp:I
-Ljava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder;
-Ljava/text/CalendarBuilder;->toCalendarDayOfWeek(I)I
-Ljava/text/CalendarBuilder;->toISODayOfWeek(I)I
-Ljava/text/CalendarBuilder;->UNSET:I
-Ljava/text/CalendarBuilder;->WEEK_YEAR:I
-Ljava/text/ChoiceFormat;->choiceFormats:[Ljava/lang/String;
-Ljava/text/ChoiceFormat;->choiceLimits:[D
-Ljava/text/ChoiceFormat;->doubleArraySize([D)[D
-Ljava/text/ChoiceFormat;->doubleArraySize([Ljava/lang/String;)[Ljava/lang/String;
-Ljava/text/ChoiceFormat;->EXPONENT:J
-Ljava/text/ChoiceFormat;->POSITIVEINFINITY:J
-Ljava/text/ChoiceFormat;->SIGN:J
-Ljava/text/CollationElementIterator;-><init>(Landroid/icu/text/CollationElementIterator;)V
-Ljava/text/CollationElementIterator;->icuIterator:Landroid/icu/text/CollationElementIterator;
-Ljava/text/CollationKey;->source:Ljava/lang/String;
-Ljava/text/Collator;-><init>(Landroid/icu/text/Collator;)V
-Ljava/text/Collator;->decompositionMode_ICU_Java(I)I
-Ljava/text/Collator;->decompositionMode_Java_ICU(I)I
-Ljava/text/DateFormat$Field;->calendarField:I
-Ljava/text/DateFormat$Field;->calendarToFieldMapping:[Ljava/text/DateFormat$Field;
-Ljava/text/DateFormat$Field;->instanceMap:Ljava/util/Map;
-Ljava/text/DateFormat;->get(IIILjava/util/Locale;)Ljava/text/DateFormat;
-Ljava/text/DateFormat;->set24HourTimePref(Ljava/lang/Boolean;)V
-Ljava/text/DateFormatSymbols;->ampms:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->cachedHashCode:I
-Ljava/text/DateFormatSymbols;->cachedInstances:Ljava/util/concurrent/ConcurrentMap;
-Ljava/text/DateFormatSymbols;->copyMembers(Ljava/text/DateFormatSymbols;Ljava/text/DateFormatSymbols;)V
-Ljava/text/DateFormatSymbols;->currentSerialVersion:I
-Ljava/text/DateFormatSymbols;->eras:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getCachedInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
-Ljava/text/DateFormatSymbols;->getInstanceRef(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
-Ljava/text/DateFormatSymbols;->getShortStandAloneMonths()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getShortStandAloneWeekdays()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getStandAloneMonths()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getStandAloneWeekdays()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getTinyMonths()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getTinyStandAloneMonths()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getTinyStandAloneWeekdays()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getTinyWeekdays()[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getZoneIndex(Ljava/lang/String;)I
-Ljava/text/DateFormatSymbols;->getZoneStringsImpl(Z)[[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->getZoneStringsWrapper()[[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->initializeData(Ljava/util/Locale;)V
-Ljava/text/DateFormatSymbols;->initializeSupplementaryData(Llibcore/icu/LocaleData;)V
-Ljava/text/DateFormatSymbols;->internalZoneStrings()[[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->isSubclassObject()Z
-Ljava/text/DateFormatSymbols;->isZoneStringsSet:Z
-Ljava/text/DateFormatSymbols;->lastZoneIndex:I
-Ljava/text/DateFormatSymbols;->locale:Ljava/util/Locale;
-Ljava/text/DateFormatSymbols;->localPatternChars:Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->millisPerHour:I
-Ljava/text/DateFormatSymbols;->months:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->patternChars:Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->PATTERN_AM_PM:I
-Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_MONTH:I
-Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_WEEK:I
-Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_WEEK_IN_MONTH:I
-Ljava/text/DateFormatSymbols;->PATTERN_DAY_OF_YEAR:I
-Ljava/text/DateFormatSymbols;->PATTERN_DAY_PERIOD:I
-Ljava/text/DateFormatSymbols;->PATTERN_ERA:I
-Ljava/text/DateFormatSymbols;->PATTERN_FLEXIBLE_DAY_PERIOD:I
-Ljava/text/DateFormatSymbols;->PATTERN_HOUR0:I
-Ljava/text/DateFormatSymbols;->PATTERN_HOUR1:I
-Ljava/text/DateFormatSymbols;->PATTERN_HOUR_OF_DAY0:I
-Ljava/text/DateFormatSymbols;->PATTERN_HOUR_OF_DAY1:I
-Ljava/text/DateFormatSymbols;->PATTERN_ISO_DAY_OF_WEEK:I
-Ljava/text/DateFormatSymbols;->PATTERN_ISO_ZONE:I
-Ljava/text/DateFormatSymbols;->PATTERN_MILLISECOND:I
-Ljava/text/DateFormatSymbols;->PATTERN_MINUTE:I
-Ljava/text/DateFormatSymbols;->PATTERN_MONTH:I
-Ljava/text/DateFormatSymbols;->PATTERN_MONTH_STANDALONE:I
-Ljava/text/DateFormatSymbols;->PATTERN_SECOND:I
-Ljava/text/DateFormatSymbols;->PATTERN_STANDALONE_DAY_OF_WEEK:I
-Ljava/text/DateFormatSymbols;->PATTERN_WEEK_OF_MONTH:I
-Ljava/text/DateFormatSymbols;->PATTERN_WEEK_OF_YEAR:I
-Ljava/text/DateFormatSymbols;->PATTERN_WEEK_YEAR:I
-Ljava/text/DateFormatSymbols;->PATTERN_YEAR:I
-Ljava/text/DateFormatSymbols;->PATTERN_ZONE_NAME:I
-Ljava/text/DateFormatSymbols;->PATTERN_ZONE_VALUE:I
-Ljava/text/DateFormatSymbols;->serialVersionOnStream:I
-Ljava/text/DateFormatSymbols;->shortMonths:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->shortStandAloneMonths:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->shortStandAloneWeekdays:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->shortWeekdays:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->standAloneMonths:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->standAloneWeekdays:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->tinyMonths:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->tinyStandAloneMonths:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->tinyStandAloneWeekdays:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->tinyWeekdays:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->weekdays:[Ljava/lang/String;
-Ljava/text/DateFormatSymbols;->zoneStrings:[[Ljava/lang/String;
-Ljava/text/DecimalFormat;->adjustForCurrencyDefaultFractionDigits()V
-Ljava/text/DecimalFormat;->compareIcuRoundingIncrement(Landroid/icu/text/DecimalFormat_ICU58_Android;)Z
-Ljava/text/DecimalFormat;->convertRoundingMode(Ljava/math/RoundingMode;)I
-Ljava/text/DecimalFormat;->currentSerialVersion:I
-Ljava/text/DecimalFormat;->DOUBLE_FRACTION_DIGITS:I
-Ljava/text/DecimalFormat;->DOUBLE_INTEGER_DIGITS:I
-Ljava/text/DecimalFormat;->format(Ljava/math/BigDecimal;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-Ljava/text/DecimalFormat;->format(Ljava/math/BigInteger;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-Ljava/text/DecimalFormat;->getIcuFieldPosition(Ljava/text/FieldPosition;)Ljava/text/FieldPosition;
-Ljava/text/DecimalFormat;->icuDecimalFormat:Landroid/icu/text/DecimalFormat_ICU58_Android;
-Ljava/text/DecimalFormat;->initPattern(Ljava/lang/String;)V
-Ljava/text/DecimalFormat;->maximumFractionDigits:I
-Ljava/text/DecimalFormat;->maximumIntegerDigits:I
-Ljava/text/DecimalFormat;->MAXIMUM_FRACTION_DIGITS:I
-Ljava/text/DecimalFormat;->MAXIMUM_INTEGER_DIGITS:I
-Ljava/text/DecimalFormat;->minimumFractionDigits:I
-Ljava/text/DecimalFormat;->minimumIntegerDigits:I
-Ljava/text/DecimalFormat;->roundingMode:Ljava/math/RoundingMode;
-Ljava/text/DecimalFormat;->symbols:Ljava/text/DecimalFormatSymbols;
-Ljava/text/DecimalFormat;->toJavaFieldAttribute(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/text/NumberFormat$Field;
-Ljava/text/DecimalFormat;->updateFieldsFromIcu()V
-Ljava/text/DecimalFormatSymbols;->cachedIcuDFS:Landroid/icu/text/DecimalFormatSymbols;
-Ljava/text/DecimalFormatSymbols;->currency:Ljava/util/Currency;
-Ljava/text/DecimalFormatSymbols;->currencySymbol:Ljava/lang/String;
-Ljava/text/DecimalFormatSymbols;->currentSerialVersion:I
-Ljava/text/DecimalFormatSymbols;->decimalSeparator:C
-Ljava/text/DecimalFormatSymbols;->digit:C
-Ljava/text/DecimalFormatSymbols;->exponential:C
-Ljava/text/DecimalFormatSymbols;->exponentialSeparator:Ljava/lang/String;
-Ljava/text/DecimalFormatSymbols;->fromIcuInstance(Landroid/icu/text/DecimalFormatSymbols;)Ljava/text/DecimalFormatSymbols;
-Ljava/text/DecimalFormatSymbols;->getExponentialSymbol()C
-Ljava/text/DecimalFormatSymbols;->getIcuDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
-Ljava/text/DecimalFormatSymbols;->getMinusSignString()Ljava/lang/String;
-Ljava/text/DecimalFormatSymbols;->groupingSeparator:C
-Ljava/text/DecimalFormatSymbols;->infinity:Ljava/lang/String;
-Ljava/text/DecimalFormatSymbols;->initialize(Ljava/util/Locale;)V
-Ljava/text/DecimalFormatSymbols;->intlCurrencySymbol:Ljava/lang/String;
-Ljava/text/DecimalFormatSymbols;->locale:Ljava/util/Locale;
-Ljava/text/DecimalFormatSymbols;->maybeStripMarkers(Ljava/lang/String;C)C
-Ljava/text/DecimalFormatSymbols;->minusSign:C
-Ljava/text/DecimalFormatSymbols;->monetarySeparator:C
-Ljava/text/DecimalFormatSymbols;->NaN:Ljava/lang/String;
-Ljava/text/DecimalFormatSymbols;->patternSeparator:C
-Ljava/text/DecimalFormatSymbols;->percent:C
-Ljava/text/DecimalFormatSymbols;->perMill:C
-Ljava/text/DecimalFormatSymbols;->serialVersionOnStream:I
-Ljava/text/DecimalFormatSymbols;->setExponentialSymbol(C)V
-Ljava/text/DecimalFormatSymbols;->zeroDigit:C
-Ljava/text/FieldPosition$Delegate;->encounteredField:Z
-Ljava/text/FieldPosition$Delegate;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
-Ljava/text/FieldPosition$Delegate;->formatted(Ljava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
-Ljava/text/FieldPosition;->attribute:Ljava/text/Format$Field;
-Ljava/text/FieldPosition;->beginIndex:I
-Ljava/text/FieldPosition;->endIndex:I
-Ljava/text/FieldPosition;->field:I
-Ljava/text/FieldPosition;->getFieldDelegate()Ljava/text/Format$FieldDelegate;
-Ljava/text/FieldPosition;->matchesField(Ljava/text/Format$Field;)Z
-Ljava/text/FieldPosition;->matchesField(Ljava/text/Format$Field;I)Z
-Ljava/text/Format$FieldDelegate;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
-Ljava/text/Format$FieldDelegate;->formatted(Ljava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
-Ljava/text/Format;->createAttributedCharacterIterator(Ljava/lang/String;)Ljava/text/AttributedCharacterIterator;
-Ljava/text/Format;->createAttributedCharacterIterator(Ljava/lang/String;Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)Ljava/text/AttributedCharacterIterator;
-Ljava/text/Format;->createAttributedCharacterIterator(Ljava/text/AttributedCharacterIterator;Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)Ljava/text/AttributedCharacterIterator;
-Ljava/text/Format;->createAttributedCharacterIterator([Ljava/text/AttributedCharacterIterator;)Ljava/text/AttributedCharacterIterator;
-Ljava/text/MessageFormat;->append(Ljava/lang/StringBuffer;Ljava/text/CharacterIterator;)V
-Ljava/text/MessageFormat;->argumentNumbers:[I
-Ljava/text/MessageFormat;->copyAndFixQuotes(Ljava/lang/String;IILjava/lang/StringBuilder;)V
-Ljava/text/MessageFormat;->DATE_TIME_MODIFIERS:[I
-Ljava/text/MessageFormat;->DATE_TIME_MODIFIER_KEYWORDS:[Ljava/lang/String;
-Ljava/text/MessageFormat;->findKeyword(Ljava/lang/String;[Ljava/lang/String;)I
-Ljava/text/MessageFormat;->formats:[Ljava/text/Format;
-Ljava/text/MessageFormat;->INITIAL_FORMATS:I
-Ljava/text/MessageFormat;->locale:Ljava/util/Locale;
-Ljava/text/MessageFormat;->makeFormat(II[Ljava/lang/StringBuilder;)V
-Ljava/text/MessageFormat;->maxOffset:I
-Ljava/text/MessageFormat;->MODIFIER_CURRENCY:I
-Ljava/text/MessageFormat;->MODIFIER_DEFAULT:I
-Ljava/text/MessageFormat;->MODIFIER_FULL:I
-Ljava/text/MessageFormat;->MODIFIER_INTEGER:I
-Ljava/text/MessageFormat;->MODIFIER_LONG:I
-Ljava/text/MessageFormat;->MODIFIER_MEDIUM:I
-Ljava/text/MessageFormat;->MODIFIER_PERCENT:I
-Ljava/text/MessageFormat;->MODIFIER_SHORT:I
-Ljava/text/MessageFormat;->NUMBER_MODIFIER_KEYWORDS:[Ljava/lang/String;
-Ljava/text/MessageFormat;->offsets:[I
-Ljava/text/MessageFormat;->pattern:Ljava/lang/String;
-Ljava/text/MessageFormat;->SEG_INDEX:I
-Ljava/text/MessageFormat;->SEG_MODIFIER:I
-Ljava/text/MessageFormat;->SEG_RAW:I
-Ljava/text/MessageFormat;->SEG_TYPE:I
-Ljava/text/MessageFormat;->subformat([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
-Ljava/text/MessageFormat;->TYPE_CHOICE:I
-Ljava/text/MessageFormat;->TYPE_DATE:I
-Ljava/text/MessageFormat;->TYPE_KEYWORDS:[Ljava/lang/String;
-Ljava/text/MessageFormat;->TYPE_NULL:I
-Ljava/text/MessageFormat;->TYPE_NUMBER:I
-Ljava/text/MessageFormat;->TYPE_TIME:I
-Ljava/text/Normalizer$Form;->icuMode:Landroid/icu/text/Normalizer$Mode;
-Ljava/text/Normalizer;-><init>()V
-Ljava/text/NumberFormat$Field;->instanceMap:Ljava/util/Map;
-Ljava/text/NumberFormat;->CURRENCYSTYLE:I
-Ljava/text/NumberFormat;->currentSerialVersion:I
-Ljava/text/NumberFormat;->groupingUsed:Z
-Ljava/text/NumberFormat;->INTEGERSTYLE:I
-Ljava/text/NumberFormat;->maxFractionDigits:B
-Ljava/text/NumberFormat;->maximumFractionDigits:I
-Ljava/text/NumberFormat;->maximumIntegerDigits:I
-Ljava/text/NumberFormat;->maxIntegerDigits:B
-Ljava/text/NumberFormat;->minFractionDigits:B
-Ljava/text/NumberFormat;->minimumFractionDigits:I
-Ljava/text/NumberFormat;->minimumIntegerDigits:I
-Ljava/text/NumberFormat;->minIntegerDigits:B
-Ljava/text/NumberFormat;->NUMBERSTYLE:I
-Ljava/text/NumberFormat;->parseIntegerOnly:Z
-Ljava/text/NumberFormat;->PERCENTSTYLE:I
-Ljava/text/NumberFormat;->serialVersionOnStream:I
-Ljava/text/ParseException;->errorOffset:I
-Ljava/text/ParsePosition;->errorIndex:I
-Ljava/text/ParsePosition;->index:I
-Ljava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V
-Ljava/text/RuleBasedCollator;->collAsICU()Landroid/icu/text/RuleBasedCollator;
-Ljava/text/SimpleDateFormat;-><init>(IILjava/util/Locale;)V
-Ljava/text/SimpleDateFormat;->cachedNumberFormatData:Ljava/util/concurrent/ConcurrentMap;
-Ljava/text/SimpleDateFormat;->checkNegativeNumberExpression()V
-Ljava/text/SimpleDateFormat;->compile(Ljava/lang/String;)[C
-Ljava/text/SimpleDateFormat;->compiledPattern:[C
-Ljava/text/SimpleDateFormat;->currentSerialVersion:I
-Ljava/text/SimpleDateFormat;->defaultCenturyStart:Ljava/util/Date;
-Ljava/text/SimpleDateFormat;->defaultCenturyStartYear:I
-Ljava/text/SimpleDateFormat;->DST_NAME_TYPES:Ljava/util/Set;
-Ljava/text/SimpleDateFormat;->encode(IILjava/lang/StringBuilder;)V
-Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/Format$FieldDelegate;)Ljava/lang/StringBuffer;
-Ljava/text/SimpleDateFormat;->formatData:Ljava/text/DateFormatSymbols;
-Ljava/text/SimpleDateFormat;->formatMonth(IIILjava/lang/StringBuffer;ZZ)Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->formatWeekday(IIZZ)Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->getCalendarName()Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->getDateTimeFormat(IILjava/util/Locale;)Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames;
-Ljava/text/SimpleDateFormat;->GMT:Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->hasFollowingMinusSign:Z
-Ljava/text/SimpleDateFormat;->initialize(Ljava/util/Locale;)V
-Ljava/text/SimpleDateFormat;->initializeCalendar(Ljava/util/Locale;)V
-Ljava/text/SimpleDateFormat;->initializeDefaultCentury()V
-Ljava/text/SimpleDateFormat;->isDigit(C)Z
-Ljava/text/SimpleDateFormat;->isGregorianCalendar()Z
-Ljava/text/SimpleDateFormat;->locale:Ljava/util/Locale;
-Ljava/text/SimpleDateFormat;->matchString(Ljava/lang/String;IILjava/util/Map;Ljava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->matchZoneString(Ljava/lang/String;I[Ljava/lang/String;)I
-Ljava/text/SimpleDateFormat;->MILLIS_PER_MINUTE:I
-Ljava/text/SimpleDateFormat;->minusSign:C
-Ljava/text/SimpleDateFormat;->NAME_TYPES:Ljava/util/EnumSet;
-Ljava/text/SimpleDateFormat;->originalNumberFormat:Ljava/text/NumberFormat;
-Ljava/text/SimpleDateFormat;->originalNumberPattern:Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V
-Ljava/text/SimpleDateFormat;->parseInternal(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
-Ljava/text/SimpleDateFormat;->parseMonth(Ljava/lang/String;IIIILjava/text/ParsePosition;ZZLjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->parseWeekday(Ljava/lang/String;IIZZLjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->pattern:Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->PATTERN_INDEX_TO_CALENDAR_FIELD:[I
-Ljava/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_FIELD:[I
-Ljava/text/SimpleDateFormat;->PATTERN_INDEX_TO_DATE_FORMAT_FIELD_ID:[Ljava/text/DateFormat$Field;
-Ljava/text/SimpleDateFormat;->serialVersionOnStream:I
-Ljava/text/SimpleDateFormat;->subFormat(IILjava/text/Format$FieldDelegate;Ljava/lang/StringBuffer;Z)V
-Ljava/text/SimpleDateFormat;->subParse(Ljava/lang/String;IIIZ[ZLjava/text/ParsePosition;ZLjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->subParseNumericZone(Ljava/lang/String;IIIZLjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->subParseZoneString(Ljava/lang/String;ILjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->subParseZoneStringFromICU(Ljava/lang/String;ILjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->subParseZoneStringFromSymbols(Ljava/lang/String;ILjava/text/CalendarBuilder;)I
-Ljava/text/SimpleDateFormat;->TAG_QUOTE_ASCII_CHAR:I
-Ljava/text/SimpleDateFormat;->TAG_QUOTE_CHARS:I
-Ljava/text/SimpleDateFormat;->timeZoneNames:Landroid/icu/text/TimeZoneNames;
-Ljava/text/SimpleDateFormat;->translatePattern(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/text/SimpleDateFormat;->useDateFormatSymbols()Z
-Ljava/text/SimpleDateFormat;->useDateFormatSymbols:Z
-Ljava/text/SimpleDateFormat;->zeroDigit:C
-Ljava/text/SimpleDateFormat;->zeroPaddingNumber(IIILjava/lang/StringBuffer;)V
-Ljava/text/StringCharacterIterator;->begin:I
-Ljava/text/StringCharacterIterator;->end:I
-Ljava/text/StringCharacterIterator;->pos:I
-Ljava/text/StringCharacterIterator;->text:Ljava/lang/String;
-Ljava/time/chrono/AbstractChronology;->addFieldValue(Ljava/util/Map;Ljava/time/temporal/ChronoField;J)V
-Ljava/time/chrono/AbstractChronology;->CHRONOS_BY_ID:Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/time/chrono/AbstractChronology;->CHRONOS_BY_TYPE:Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/time/chrono/AbstractChronology;->DATE_ORDER:Ljava/util/Comparator;
-Ljava/time/chrono/AbstractChronology;->DATE_TIME_ORDER:Ljava/util/Comparator;
-Ljava/time/chrono/AbstractChronology;->getAvailableChronologies()Ljava/util/Set;
-Ljava/time/chrono/AbstractChronology;->initCache()Z
-Ljava/time/chrono/AbstractChronology;->INSTANT_ORDER:Ljava/util/Comparator;
-Ljava/time/chrono/AbstractChronology;->of(Ljava/lang/String;)Ljava/time/chrono/Chronology;
-Ljava/time/chrono/AbstractChronology;->of0(Ljava/lang/String;)Ljava/time/chrono/Chronology;
-Ljava/time/chrono/AbstractChronology;->ofLocale(Ljava/util/Locale;)Ljava/time/chrono/Chronology;
-Ljava/time/chrono/AbstractChronology;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/Chronology;
-Ljava/time/chrono/AbstractChronology;->registerChrono(Ljava/time/chrono/Chronology;)Ljava/time/chrono/Chronology;
-Ljava/time/chrono/AbstractChronology;->registerChrono(Ljava/time/chrono/Chronology;Ljava/lang/String;)Ljava/time/chrono/Chronology;
-Ljava/time/chrono/AbstractChronology;->resolveAligned(Ljava/time/chrono/ChronoLocalDate;JJJ)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V
-Ljava/time/chrono/AbstractChronology;->resolveYAA(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveYAD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveYD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveYMAA(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveYMAD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/AbstractChronology;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/ChronoLocalDateImpl;-><init>()V
-Ljava/time/chrono/ChronoLocalDateImpl;->daysUntil(Ljava/time/chrono/ChronoLocalDate;)J
-Ljava/time/chrono/ChronoLocalDateImpl;->ensureValid(Ljava/time/chrono/Chronology;Ljava/time/temporal/Temporal;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->minusDays(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->minusMonths(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->minusWeeks(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->minusYears(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->monthsUntil(Ljava/time/chrono/ChronoLocalDate;)J
-Ljava/time/chrono/ChronoLocalDateImpl;->plusDays(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->plusMonths(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->plusWeeks(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateImpl;->plusYears(J)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/HijrahChronology;-><init>(Ljava/lang/String;)V
-Ljava/time/chrono/HijrahChronology;->calendarProperties:Ljava/util/Properties;
-Ljava/time/chrono/HijrahChronology;->calendarType:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->checkCalendarInit()V
-Ljava/time/chrono/HijrahChronology;->checkValidDayOfYear(I)V
-Ljava/time/chrono/HijrahChronology;->checkValidMonth(I)V
-Ljava/time/chrono/HijrahChronology;->checkValidYear(J)I
-Ljava/time/chrono/HijrahChronology;->createEpochMonths(IIILjava/util/Map;)[I
-Ljava/time/chrono/HijrahChronology;->epochDayToEpochMonth(I)I
-Ljava/time/chrono/HijrahChronology;->epochMonthLength(I)I
-Ljava/time/chrono/HijrahChronology;->epochMonthToEpochDay(I)I
-Ljava/time/chrono/HijrahChronology;->epochMonthToMonth(I)I
-Ljava/time/chrono/HijrahChronology;->epochMonthToYear(I)I
-Ljava/time/chrono/HijrahChronology;->getDayOfYear(II)I
-Ljava/time/chrono/HijrahChronology;->getEpochDay(III)J
-Ljava/time/chrono/HijrahChronology;->getHijrahDateInfo(I)[I
-Ljava/time/chrono/HijrahChronology;->getMaximumDayOfYear()I
-Ljava/time/chrono/HijrahChronology;->getMaximumMonthLength()I
-Ljava/time/chrono/HijrahChronology;->getMaximumYear()I
-Ljava/time/chrono/HijrahChronology;->getMinimumMonthLength()I
-Ljava/time/chrono/HijrahChronology;->getMinimumYear()I
-Ljava/time/chrono/HijrahChronology;->getMonthLength(II)I
-Ljava/time/chrono/HijrahChronology;->getSmallestMaximumDayOfYear()I
-Ljava/time/chrono/HijrahChronology;->getYearLength(I)I
-Ljava/time/chrono/HijrahChronology;->hijrahEpochMonthStartDays:[I
-Ljava/time/chrono/HijrahChronology;->hijrahStartEpochMonth:I
-Ljava/time/chrono/HijrahChronology;->initComplete:Z
-Ljava/time/chrono/HijrahChronology;->KEY_ID:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->KEY_ISO_START:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->KEY_TYPE:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->KEY_VERSION:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->loadCalendarData()V
-Ljava/time/chrono/HijrahChronology;->maxEpochDay:I
-Ljava/time/chrono/HijrahChronology;->maxMonthLength:I
-Ljava/time/chrono/HijrahChronology;->maxYearLength:I
-Ljava/time/chrono/HijrahChronology;->minEpochDay:I
-Ljava/time/chrono/HijrahChronology;->minMonthLength:I
-Ljava/time/chrono/HijrahChronology;->minYearLength:I
-Ljava/time/chrono/HijrahChronology;->parseMonths(Ljava/lang/String;)[I
-Ljava/time/chrono/HijrahChronology;->parseYMD(Ljava/lang/String;)[I
-Ljava/time/chrono/HijrahChronology;->PROP_PREFIX:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->PROP_TYPE_SUFFIX:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->readConfigProperties(Ljava/lang/String;)Ljava/util/Properties;
-Ljava/time/chrono/HijrahChronology;->registerVariants()V
-Ljava/time/chrono/HijrahChronology;->typeId:Ljava/lang/String;
-Ljava/time/chrono/HijrahChronology;->yearMonthToDayOfYear(II)I
-Ljava/time/chrono/HijrahChronology;->yearToEpochMonth(I)I
-Ljava/time/chrono/HijrahDate;-><init>(Ljava/time/chrono/HijrahChronology;III)V
-Ljava/time/chrono/HijrahDate;-><init>(Ljava/time/chrono/HijrahChronology;J)V
-Ljava/time/chrono/HijrahDate;->chrono:Ljava/time/chrono/HijrahChronology;
-Ljava/time/chrono/HijrahDate;->dayOfMonth:I
-Ljava/time/chrono/HijrahDate;->getDayOfWeek()I
-Ljava/time/chrono/HijrahDate;->getDayOfYear()I
-Ljava/time/chrono/HijrahDate;->getEraValue()I
-Ljava/time/chrono/HijrahDate;->getProlepticMonth()J
-Ljava/time/chrono/HijrahDate;->minusDays(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->minusMonths(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->minusWeeks(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->minusYears(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->monthOfYear:I
-Ljava/time/chrono/HijrahDate;->of(Ljava/time/chrono/HijrahChronology;III)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->ofEpochDay(Ljava/time/chrono/HijrahChronology;J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->plusDays(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->plusMonths(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->plusWeeks(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->plusYears(J)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->prolepticYear:I
-Ljava/time/chrono/HijrahDate;->readExternal(Ljava/io/ObjectInput;)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->resolvePreviousValid(III)Ljava/time/chrono/HijrahDate;
-Ljava/time/chrono/HijrahDate;->writeExternal(Ljava/io/ObjectOutput;)V
-Ljava/time/chrono/IsoChronology;-><init>()V
-Ljava/time/chrono/IsoChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V
-Ljava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
-Ljava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
-Ljava/time/chrono/JapaneseChronology;-><init>()V
-Ljava/time/chrono/JapaneseChronology;->createCalendar()Ljava/util/Calendar;
-Ljava/time/chrono/JapaneseChronology;->getCurrentEra()Ljava/time/chrono/JapaneseEra;
-Ljava/time/chrono/JapaneseChronology;->JCAL:Lsun/util/calendar/LocalGregorianCalendar;
-Ljava/time/chrono/JapaneseChronology;->LOCALE:Ljava/util/Locale;
-Ljava/time/chrono/JapaneseChronology;->prolepticYearLenient(Ljava/time/chrono/JapaneseEra;I)I
-Ljava/time/chrono/JapaneseChronology;->resolveYD(Ljava/time/chrono/JapaneseEra;ILjava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/JapaneseChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/JapaneseChronology;->resolveYMD(Ljava/time/chrono/JapaneseEra;ILjava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/JapaneseDate;-><init>(Ljava/time/chrono/JapaneseEra;ILjava/time/LocalDate;)V
-Ljava/time/chrono/JapaneseDate;-><init>(Ljava/time/LocalDate;)V
-Ljava/time/chrono/JapaneseDate;->era:Ljava/time/chrono/JapaneseEra;
-Ljava/time/chrono/JapaneseDate;->isoDate:Ljava/time/LocalDate;
-Ljava/time/chrono/JapaneseDate;->MEIJI_6_ISODATE:Ljava/time/LocalDate;
-Ljava/time/chrono/JapaneseDate;->minusDays(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->minusMonths(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->minusWeeks(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->minusYears(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->ofYearDay(Ljava/time/chrono/JapaneseEra;II)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->plusDays(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->plusMonths(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->plusWeeks(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->plusYears(J)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->toPrivateJapaneseDate(Ljava/time/LocalDate;)Lsun/util/calendar/LocalGregorianCalendar$Date;
-Ljava/time/chrono/JapaneseDate;->with(Ljava/time/LocalDate;)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->withYear(I)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->withYear(Ljava/time/chrono/JapaneseEra;I)Ljava/time/chrono/JapaneseDate;
-Ljava/time/chrono/JapaneseDate;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/JapaneseDate;->yearOfEra:I
-Ljava/time/chrono/JapaneseEra;-><init>(ILjava/time/LocalDate;)V
-Ljava/time/chrono/JapaneseEra;->eraValue:I
-Ljava/time/chrono/JapaneseEra;->ERA_CONFIG:[Lsun/util/calendar/Era;
-Ljava/time/chrono/JapaneseEra;->ERA_OFFSET:I
-Ljava/time/chrono/JapaneseEra;->from(Ljava/time/LocalDate;)Ljava/time/chrono/JapaneseEra;
-Ljava/time/chrono/JapaneseEra;->getAbbreviation()Ljava/lang/String;
-Ljava/time/chrono/JapaneseEra;->getName()Ljava/lang/String;
-Ljava/time/chrono/JapaneseEra;->getPrivateEra()Lsun/util/calendar/Era;
-Ljava/time/chrono/JapaneseEra;->KNOWN_ERAS:[Ljava/time/chrono/JapaneseEra;
-Ljava/time/chrono/JapaneseEra;->N_ERA_CONSTANTS:I
-Ljava/time/chrono/JapaneseEra;->ordinal(I)I
-Ljava/time/chrono/JapaneseEra;->privateEraFrom(Ljava/time/LocalDate;)Lsun/util/calendar/Era;
-Ljava/time/chrono/JapaneseEra;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/JapaneseEra;
-Ljava/time/chrono/JapaneseEra;->since:Ljava/time/LocalDate;
-Ljava/time/chrono/JapaneseEra;->toJapaneseEra(Lsun/util/calendar/Era;)Ljava/time/chrono/JapaneseEra;
-Ljava/time/chrono/JapaneseEra;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/MinguoChronology;-><init>()V
-Ljava/time/chrono/MinguoChronology;->YEARS_DIFFERENCE:I
-Ljava/time/chrono/MinguoDate;-><init>(Ljava/time/LocalDate;)V
-Ljava/time/chrono/MinguoDate;->getProlepticMonth()J
-Ljava/time/chrono/MinguoDate;->getProlepticYear()I
-Ljava/time/chrono/MinguoDate;->isoDate:Ljava/time/LocalDate;
-Ljava/time/chrono/MinguoDate;->minusDays(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->minusMonths(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->minusWeeks(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->minusYears(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->plusDays(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->plusMonths(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->plusWeeks(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->plusYears(J)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->with(Ljava/time/LocalDate;)Ljava/time/chrono/MinguoDate;
-Ljava/time/chrono/MinguoDate;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/ThaiBuddhistChronology;-><init>()V
-Ljava/time/chrono/ThaiBuddhistChronology;->ERA_FULL_NAMES:Ljava/util/HashMap;
-Ljava/time/chrono/ThaiBuddhistChronology;->ERA_NARROW_NAMES:Ljava/util/HashMap;
-Ljava/time/chrono/ThaiBuddhistChronology;->ERA_SHORT_NAMES:Ljava/util/HashMap;
-Ljava/time/chrono/ThaiBuddhistChronology;->FALLBACK_LANGUAGE:Ljava/lang/String;
-Ljava/time/chrono/ThaiBuddhistChronology;->TARGET_LANGUAGE:Ljava/lang/String;
-Ljava/time/chrono/ThaiBuddhistChronology;->YEARS_DIFFERENCE:I
-Ljava/time/chrono/ThaiBuddhistDate;-><init>(Ljava/time/LocalDate;)V
-Ljava/time/chrono/ThaiBuddhistDate;->getProlepticMonth()J
-Ljava/time/chrono/ThaiBuddhistDate;->getProlepticYear()I
-Ljava/time/chrono/ThaiBuddhistDate;->isoDate:Ljava/time/LocalDate;
-Ljava/time/chrono/ThaiBuddhistDate;->minusDays(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->minusMonths(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->minusWeeks(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->minusYears(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->plusDays(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->plusMonths(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->plusWeeks(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->plusYears(J)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->with(Ljava/time/LocalDate;)Ljava/time/chrono/ThaiBuddhistDate;
-Ljava/time/chrono/ThaiBuddhistDate;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/Clock$FixedClock;-><init>(Ljava/time/Instant;Ljava/time/ZoneId;)V
-Ljava/time/Clock$FixedClock;->instant:Ljava/time/Instant;
-Ljava/time/Clock$FixedClock;->zone:Ljava/time/ZoneId;
-Ljava/time/Clock$OffsetClock;-><init>(Ljava/time/Clock;Ljava/time/Duration;)V
-Ljava/time/Clock$OffsetClock;->baseClock:Ljava/time/Clock;
-Ljava/time/Clock$OffsetClock;->offset:Ljava/time/Duration;
-Ljava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V
-Ljava/time/Clock$SystemClock;->zone:Ljava/time/ZoneId;
-Ljava/time/Clock$TickClock;-><init>(Ljava/time/Clock;J)V
-Ljava/time/Clock$TickClock;->baseClock:Ljava/time/Clock;
-Ljava/time/Clock$TickClock;->tickNanos:J
-Ljava/time/DayOfWeek;->ENUMS:[Ljava/time/DayOfWeek;
-Ljava/time/Duration$DurationUnits;-><init>()V
-Ljava/time/Duration$DurationUnits;->UNITS:Ljava/util/List;
-Ljava/time/Duration;-><init>(JI)V
-Ljava/time/Duration;->BI_NANOS_PER_SECOND:Ljava/math/BigInteger;
-Ljava/time/Duration;->create(JI)Ljava/time/Duration;
-Ljava/time/Duration;->create(Ljava/math/BigDecimal;)Ljava/time/Duration;
-Ljava/time/Duration;->create(ZJJJJI)Ljava/time/Duration;
-Ljava/time/Duration;->nanos:I
-Ljava/time/Duration;->parseFraction(Ljava/lang/CharSequence;Ljava/lang/String;I)I
-Ljava/time/Duration;->parseNumber(Ljava/lang/CharSequence;Ljava/lang/String;ILjava/lang/String;)J
-Ljava/time/Duration;->PATTERN:Ljava/util/regex/Pattern;
-Ljava/time/Duration;->plus(JJ)Ljava/time/Duration;
-Ljava/time/Duration;->readExternal(Ljava/io/DataInput;)Ljava/time/Duration;
-Ljava/time/Duration;->seconds:J
-Ljava/time/Duration;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/format/DateTimeFormatter$ClassicFormat;-><init>(Ljava/time/format/DateTimeFormatter;Ljava/time/temporal/TemporalQuery;)V
-Ljava/time/format/DateTimeFormatter$ClassicFormat;->formatter:Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimeFormatter$ClassicFormat;->parseType:Ljava/time/temporal/TemporalQuery;
-Ljava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V
-Ljava/time/format/DateTimeFormatter;->chrono:Ljava/time/chrono/Chronology;
-Ljava/time/format/DateTimeFormatter;->createError(Ljava/lang/CharSequence;Ljava/lang/RuntimeException;)Ljava/time/format/DateTimeParseException;
-Ljava/time/format/DateTimeFormatter;->decimalStyle:Ljava/time/format/DecimalStyle;
-Ljava/time/format/DateTimeFormatter;->locale:Ljava/util/Locale;
-Ljava/time/format/DateTimeFormatter;->PARSED_EXCESS_DAYS:Ljava/time/temporal/TemporalQuery;
-Ljava/time/format/DateTimeFormatter;->PARSED_LEAP_SECOND:Ljava/time/temporal/TemporalQuery;
-Ljava/time/format/DateTimeFormatter;->parseResolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/DateTimeFormatter;->parseUnresolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/format/DateTimeParseContext;
-Ljava/time/format/DateTimeFormatter;->printerParser:Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
-Ljava/time/format/DateTimeFormatter;->resolverFields:Ljava/util/Set;
-Ljava/time/format/DateTimeFormatter;->resolverStyle:Ljava/time/format/ResolverStyle;
-Ljava/time/format/DateTimeFormatter;->toPrinterParser(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
-Ljava/time/format/DateTimeFormatter;->zone:Ljava/time/ZoneId;
-Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V
-Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->literal:C
-Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;-><init>(Ljava/time/format/TextStyle;)V
-Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->getChronologyName(Ljava/time/chrono/Chronology;Ljava/util/Locale;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->textStyle:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>([Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;Z)V
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->optional:Z
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->printerParsers:[Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->withOptional(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;-><init>(Ljava/time/temporal/TemporalField;J)V
-Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->field:Ljava/time/temporal/TemporalField;
-Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->value:J
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIZ)V
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertFromFraction(Ljava/math/BigDecimal;)J
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertToFraction(J)Ljava/math/BigDecimal;
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->decimalPoint:Z
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->field:Ljava/time/temporal/TemporalField;
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->maxWidth:I
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->minWidth:I
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;-><init>(I)V
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->fractionalDigits:I
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->SECONDS_0000_TO_1970:J
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->SECONDS_PER_10000_YEARS:J
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;-><init>(Ljava/time/format/TextStyle;)V
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->appendHMS(Ljava/lang/StringBuilder;I)Ljava/lang/StringBuilder;
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->getDigit(Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->style:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;-><init>(Ljava/time/format/FormatStyle;Ljava/time/format/FormatStyle;)V
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->dateStyle:Ljava/time/format/FormatStyle;
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->formatter(Ljava/util/Locale;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->FORMATTER_CACHE:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->timeStyle:Ljava/time/format/FormatStyle;
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)V
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;I)V
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->EXCEED_POINTS:[J
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->field:Ljava/time/temporal/TemporalField;
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->isFixedWidth(Ljava/time/format/DateTimeParseContext;)Z
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->maxWidth:I
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->minWidth:I
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->signStyle:Ljava/time/format/SignStyle;
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->subsequentWidth:I
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->withFixedWidth()Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->withSubsequentWidth(I)Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->checkPattern(Ljava/lang/String;)I
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->INSTANCE_ID_Z:Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->INSTANCE_ID_ZERO:Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->noOffsetText:Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parseNumber([IILjava/lang/CharSequence;Z)Z
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->PATTERNS:[Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->type:I
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;-><init>(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;IC)V
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->padChar:C
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->padWidth:I
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->printerParser:Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;->isEqual(CC)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;->prefixOf(Ljava/lang/CharSequence;II)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->isLenientChar(C)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->match(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->toKey(Ljava/lang/String;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->add(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->add0(Ljava/lang/String;Ljava/lang/String;)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->c0:C
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->child:Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->copyTree()Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->isEqual(CC)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->key:Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->match(Ljava/lang/CharSequence;II)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->match(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/util/Set;Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->prefixLength(Ljava/lang/String;)I
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->prefixOf(Ljava/lang/CharSequence;II)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->sibling:Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->toKey(Ljava/lang/String;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->value:Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIILjava/time/chrono/ChronoLocalDate;)V
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIILjava/time/chrono/ChronoLocalDate;I)V
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->baseDate:Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->baseValue:I
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->BASE_DATE:Ljava/time/LocalDate;
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->isFixedWidth(Ljava/time/format/DateTimeParseContext;)Z
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->withFixedWidth()Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->withSubsequentWidth(I)Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->INSENSITIVE:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->LENIENT:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->SENSITIVE:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->STRICT:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->valueOf(Ljava/lang/String;)Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->values()[Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;-><init>(Ljava/lang/String;)V
-Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;->literal:Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;-><init>(Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/time/format/DateTimeTextProvider;)V
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->field:Ljava/time/temporal/TemporalField;
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->numberPrinterParser()Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->numberPrinterParser:Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->provider:Ljava/time/format/DateTimeTextProvider;
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->textStyle:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;-><init>(CI)V
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->chr:C
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->count:I
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->printerParser(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;-><init>(Ljava/time/temporal/TemporalQuery;Ljava/lang/String;)V
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->cachedPrefixTree:Ljava/util/Map$Entry;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->cachedPrefixTreeCI:Ljava/util/Map$Entry;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->description:Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parseOffsetBased(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;IILjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;)I
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->query:Ljava/time/temporal/TemporalQuery;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;-><init>(Ljava/time/format/TextStyle;Ljava/util/Set;)V
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->cache:Ljava/util/Map;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->cachedTree:Ljava/util/Map;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->cachedTreeCI:Ljava/util/Map;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->DST:I
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->FULL_TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->GENERIC:I
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->getDisplayName(Ljava/lang/String;ILjava/util/Locale;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->preferredZones:Ljava/util/Set;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->SHORT_TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->STD:I
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->textStyle:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
-Ljava/time/format/DateTimeFormatterBuilder;-><init>(Ljava/time/format/DateTimeFormatterBuilder;Z)V
-Ljava/time/format/DateTimeFormatterBuilder;->active:Ljava/time/format/DateTimeFormatterBuilder;
-Ljava/time/format/DateTimeFormatterBuilder;->appendInternal(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;)I
-Ljava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder;
-Ljava/time/format/DateTimeFormatterBuilder;->convertStyle(Ljava/time/format/FormatStyle;)I
-Ljava/time/format/DateTimeFormatterBuilder;->FIELD_MAP:Ljava/util/Map;
-Ljava/time/format/DateTimeFormatterBuilder;->LENGTH_SORT:Ljava/util/Comparator;
-Ljava/time/format/DateTimeFormatterBuilder;->optional:Z
-Ljava/time/format/DateTimeFormatterBuilder;->padNextChar:C
-Ljava/time/format/DateTimeFormatterBuilder;->padNextWidth:I
-Ljava/time/format/DateTimeFormatterBuilder;->parent:Ljava/time/format/DateTimeFormatterBuilder;
-Ljava/time/format/DateTimeFormatterBuilder;->parseField(CILjava/time/temporal/TemporalField;)V
-Ljava/time/format/DateTimeFormatterBuilder;->parsePattern(Ljava/lang/String;)V
-Ljava/time/format/DateTimeFormatterBuilder;->printerParsers:Ljava/util/List;
-Ljava/time/format/DateTimeFormatterBuilder;->QUERY_REGION_ONLY:Ljava/time/temporal/TemporalQuery;
-Ljava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimeFormatterBuilder;->valueParserIndex:I
-Ljava/time/format/DateTimeParseContext;-><init>(Ljava/time/format/DateTimeFormatter;)V
-Ljava/time/format/DateTimeParseContext;->addChronoChangedListener(Ljava/util/function/Consumer;)V
-Ljava/time/format/DateTimeParseContext;->caseSensitive:Z
-Ljava/time/format/DateTimeParseContext;->charEquals(CC)Z
-Ljava/time/format/DateTimeParseContext;->charEqualsIgnoreCase(CC)Z
-Ljava/time/format/DateTimeParseContext;->chronoListeners:Ljava/util/ArrayList;
-Ljava/time/format/DateTimeParseContext;->copy()Ljava/time/format/DateTimeParseContext;
-Ljava/time/format/DateTimeParseContext;->currentParsed()Ljava/time/format/Parsed;
-Ljava/time/format/DateTimeParseContext;->endOptional(Z)V
-Ljava/time/format/DateTimeParseContext;->formatter:Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimeParseContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
-Ljava/time/format/DateTimeParseContext;->getEffectiveChronology()Ljava/time/chrono/Chronology;
-Ljava/time/format/DateTimeParseContext;->getLocale()Ljava/util/Locale;
-Ljava/time/format/DateTimeParseContext;->getParsed(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
-Ljava/time/format/DateTimeParseContext;->isCaseSensitive()Z
-Ljava/time/format/DateTimeParseContext;->isStrict()Z
-Ljava/time/format/DateTimeParseContext;->parsed:Ljava/util/ArrayList;
-Ljava/time/format/DateTimeParseContext;->setCaseSensitive(Z)V
-Ljava/time/format/DateTimeParseContext;->setParsed(Ljava/time/chrono/Chronology;)V
-Ljava/time/format/DateTimeParseContext;->setParsed(Ljava/time/ZoneId;)V
-Ljava/time/format/DateTimeParseContext;->setParsedField(Ljava/time/temporal/TemporalField;JII)I
-Ljava/time/format/DateTimeParseContext;->setParsedLeapSecond()V
-Ljava/time/format/DateTimeParseContext;->setStrict(Z)V
-Ljava/time/format/DateTimeParseContext;->startOptional()V
-Ljava/time/format/DateTimeParseContext;->strict:Z
-Ljava/time/format/DateTimeParseContext;->subSequenceEquals(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z
-Ljava/time/format/DateTimeParseContext;->toResolved(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/DateTimeParseContext;->toUnresolved()Ljava/time/format/Parsed;
-Ljava/time/format/DateTimeParseException;->errorIndex:I
-Ljava/time/format/DateTimeParseException;->parsedString:Ljava/lang/String;
-Ljava/time/format/DateTimePrintContext;-><init>(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)V
-Ljava/time/format/DateTimePrintContext;->adjust(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/DateTimePrintContext;->endOptional()V
-Ljava/time/format/DateTimePrintContext;->formatter:Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimePrintContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
-Ljava/time/format/DateTimePrintContext;->getLocale()Ljava/util/Locale;
-Ljava/time/format/DateTimePrintContext;->getTemporal()Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
-Ljava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
-Ljava/time/format/DateTimePrintContext;->optional:I
-Ljava/time/format/DateTimePrintContext;->startOptional()V
-Ljava/time/format/DateTimePrintContext;->temporal:Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/DateTimeTextProvider$LocaleStore;-><init>(Ljava/util/Map;)V
-Ljava/time/format/DateTimeTextProvider$LocaleStore;->getText(JLjava/time/format/TextStyle;)Ljava/lang/String;
-Ljava/time/format/DateTimeTextProvider$LocaleStore;->getTextIterator(Ljava/time/format/TextStyle;)Ljava/util/Iterator;
-Ljava/time/format/DateTimeTextProvider$LocaleStore;->parsable:Ljava/util/Map;
-Ljava/time/format/DateTimeTextProvider$LocaleStore;->valueTextMap:Ljava/util/Map;
-Ljava/time/format/DateTimeTextProvider;-><init>()V
-Ljava/time/format/DateTimeTextProvider;->CACHE:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/format/DateTimeTextProvider;->COMPARATOR:Ljava/util/Comparator;
-Ljava/time/format/DateTimeTextProvider;->createEntry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
-Ljava/time/format/DateTimeTextProvider;->createStore(Ljava/time/temporal/TemporalField;Ljava/util/Locale;)Ljava/lang/Object;
-Ljava/time/format/DateTimeTextProvider;->extractQuarters(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)Ljava/util/Map;
-Ljava/time/format/DateTimeTextProvider;->findStore(Ljava/time/temporal/TemporalField;Ljava/util/Locale;)Ljava/lang/Object;
-Ljava/time/format/DateTimeTextProvider;->getInstance()Ljava/time/format/DateTimeTextProvider;
-Ljava/time/format/DateTimeTextProvider;->getText(Ljava/time/chrono/Chronology;Ljava/time/temporal/TemporalField;JLjava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String;
-Ljava/time/format/DateTimeTextProvider;->getText(Ljava/time/temporal/TemporalField;JLjava/time/format/TextStyle;Ljava/util/Locale;)Ljava/lang/String;
-Ljava/time/format/DateTimeTextProvider;->getTextIterator(Ljava/time/chrono/Chronology;Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/util/Iterator;
-Ljava/time/format/DateTimeTextProvider;->getTextIterator(Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/util/Locale;)Ljava/util/Iterator;
-Ljava/time/format/DateTimeTextProvider;->toWeekDay(I)I
-Ljava/time/format/DecimalStyle;-><init>(CCCC)V
-Ljava/time/format/DecimalStyle;->CACHE:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/format/DecimalStyle;->convertNumberToI18N(Ljava/lang/String;)Ljava/lang/String;
-Ljava/time/format/DecimalStyle;->convertToDigit(C)I
-Ljava/time/format/DecimalStyle;->create(Ljava/util/Locale;)Ljava/time/format/DecimalStyle;
-Ljava/time/format/DecimalStyle;->decimalSeparator:C
-Ljava/time/format/DecimalStyle;->negativeSign:C
-Ljava/time/format/DecimalStyle;->positiveSign:C
-Ljava/time/format/DecimalStyle;->zeroDigit:C
-Ljava/time/format/Parsed;-><init>()V
-Ljava/time/format/Parsed;->chrono:Ljava/time/chrono/Chronology;
-Ljava/time/format/Parsed;->copy()Ljava/time/format/Parsed;
-Ljava/time/format/Parsed;->crossCheck()V
-Ljava/time/format/Parsed;->crossCheck(Ljava/time/temporal/TemporalAccessor;)V
-Ljava/time/format/Parsed;->date:Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/format/Parsed;->excessDays:Ljava/time/Period;
-Ljava/time/format/Parsed;->fieldValues:Ljava/util/Map;
-Ljava/time/format/Parsed;->leapSecond:Z
-Ljava/time/format/Parsed;->resolve(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/Parsed;->resolveDateFields()V
-Ljava/time/format/Parsed;->resolveFields()V
-Ljava/time/format/Parsed;->resolveFractional()V
-Ljava/time/format/Parsed;->resolveInstant()V
-Ljava/time/format/Parsed;->resolveInstantFields()V
-Ljava/time/format/Parsed;->resolveInstantFields0(Ljava/time/ZoneId;)V
-Ljava/time/format/Parsed;->resolvePeriod()V
-Ljava/time/format/Parsed;->resolverStyle:Ljava/time/format/ResolverStyle;
-Ljava/time/format/Parsed;->resolveTime(JJJJ)V
-Ljava/time/format/Parsed;->resolveTimeFields()V
-Ljava/time/format/Parsed;->resolveTimeLenient()V
-Ljava/time/format/Parsed;->time:Ljava/time/LocalTime;
-Ljava/time/format/Parsed;->updateCheckConflict(Ljava/time/chrono/ChronoLocalDate;)V
-Ljava/time/format/Parsed;->updateCheckConflict(Ljava/time/LocalTime;Ljava/time/Period;)V
-Ljava/time/format/Parsed;->updateCheckConflict(Ljava/time/temporal/TemporalField;Ljava/time/temporal/TemporalField;Ljava/lang/Long;)V
-Ljava/time/format/Parsed;->zone:Ljava/time/ZoneId;
-Ljava/time/format/SignStyle;->parse(ZZZ)Z
-Ljava/time/format/TextStyle;->calendarStyle:I
-Ljava/time/format/TextStyle;->toCalendarStyle()I
-Ljava/time/format/TextStyle;->zoneNameStyleIndex()I
-Ljava/time/format/TextStyle;->zoneNameStyleIndex:I
-Ljava/time/Instant;-><init>(JI)V
-Ljava/time/Instant;->create(JI)Ljava/time/Instant;
-Ljava/time/Instant;->MAX_SECOND:J
-Ljava/time/Instant;->MIN_SECOND:J
-Ljava/time/Instant;->nanos:I
-Ljava/time/Instant;->nanosUntil(Ljava/time/Instant;)J
-Ljava/time/Instant;->plus(JJ)Ljava/time/Instant;
-Ljava/time/Instant;->readExternal(Ljava/io/DataInput;)Ljava/time/Instant;
-Ljava/time/Instant;->seconds:J
-Ljava/time/Instant;->secondsUntil(Ljava/time/Instant;)J
-Ljava/time/Instant;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/LocalDate;-><init>(III)V
-Ljava/time/LocalDate;->compareTo0(Ljava/time/LocalDate;)I
-Ljava/time/LocalDate;->create(III)Ljava/time/LocalDate;
-Ljava/time/LocalDate;->day:S
-Ljava/time/LocalDate;->daysUntil(Ljava/time/LocalDate;)J
-Ljava/time/LocalDate;->DAYS_0000_TO_1970:J
-Ljava/time/LocalDate;->DAYS_PER_CYCLE:I
-Ljava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I
-Ljava/time/LocalDate;->getProlepticMonth()J
-Ljava/time/LocalDate;->month:S
-Ljava/time/LocalDate;->monthsUntil(Ljava/time/LocalDate;)J
-Ljava/time/LocalDate;->readExternal(Ljava/io/DataInput;)Ljava/time/LocalDate;
-Ljava/time/LocalDate;->resolvePreviousValid(III)Ljava/time/LocalDate;
-Ljava/time/LocalDate;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/LocalDate;->year:I
-Ljava/time/LocalDateTime;-><init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V
-Ljava/time/LocalDateTime;->compareTo0(Ljava/time/LocalDateTime;)I
-Ljava/time/LocalDateTime;->date:Ljava/time/LocalDate;
-Ljava/time/LocalDateTime;->plusWithOverflow(Ljava/time/LocalDate;JJJJI)Ljava/time/LocalDateTime;
-Ljava/time/LocalDateTime;->readExternal(Ljava/io/DataInput;)Ljava/time/LocalDateTime;
-Ljava/time/LocalDateTime;->time:Ljava/time/LocalTime;
-Ljava/time/LocalDateTime;->with(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
-Ljava/time/LocalDateTime;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/LocalTime;-><init>(IIII)V
-Ljava/time/LocalTime;->create(IIII)Ljava/time/LocalTime;
-Ljava/time/LocalTime;->get0(Ljava/time/temporal/TemporalField;)I
-Ljava/time/LocalTime;->hour:B
-Ljava/time/LocalTime;->HOURS:[Ljava/time/LocalTime;
-Ljava/time/LocalTime;->HOURS_PER_DAY:I
-Ljava/time/LocalTime;->MICROS_PER_DAY:J
-Ljava/time/LocalTime;->MILLIS_PER_DAY:J
-Ljava/time/LocalTime;->minute:B
-Ljava/time/LocalTime;->MINUTES_PER_DAY:I
-Ljava/time/LocalTime;->MINUTES_PER_HOUR:I
-Ljava/time/LocalTime;->nano:I
-Ljava/time/LocalTime;->NANOS_PER_DAY:J
-Ljava/time/LocalTime;->NANOS_PER_HOUR:J
-Ljava/time/LocalTime;->NANOS_PER_MINUTE:J
-Ljava/time/LocalTime;->NANOS_PER_SECOND:J
-Ljava/time/LocalTime;->readExternal(Ljava/io/DataInput;)Ljava/time/LocalTime;
-Ljava/time/LocalTime;->second:B
-Ljava/time/LocalTime;->SECONDS_PER_DAY:I
-Ljava/time/LocalTime;->SECONDS_PER_HOUR:I
-Ljava/time/LocalTime;->SECONDS_PER_MINUTE:I
-Ljava/time/LocalTime;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/Month;->ENUMS:[Ljava/time/Month;
-Ljava/time/MonthDay;-><init>(II)V
-Ljava/time/MonthDay;->day:I
-Ljava/time/MonthDay;->month:I
-Ljava/time/MonthDay;->PARSER:Ljava/time/format/DateTimeFormatter;
-Ljava/time/MonthDay;->readExternal(Ljava/io/DataInput;)Ljava/time/MonthDay;
-Ljava/time/MonthDay;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/OffsetDateTime;->compareInstant(Ljava/time/OffsetDateTime;Ljava/time/OffsetDateTime;)I
-Ljava/time/OffsetDateTime;->dateTime:Ljava/time/LocalDateTime;
-Ljava/time/OffsetDateTime;->offset:Ljava/time/ZoneOffset;
-Ljava/time/OffsetDateTime;->readExternal(Ljava/io/ObjectInput;)Ljava/time/OffsetDateTime;
-Ljava/time/OffsetDateTime;->with(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;
-Ljava/time/OffsetDateTime;->writeExternal(Ljava/io/ObjectOutput;)V
-Ljava/time/OffsetTime;-><init>(Ljava/time/LocalTime;Ljava/time/ZoneOffset;)V
-Ljava/time/OffsetTime;->offset:Ljava/time/ZoneOffset;
-Ljava/time/OffsetTime;->readExternal(Ljava/io/ObjectInput;)Ljava/time/OffsetTime;
-Ljava/time/OffsetTime;->time:Ljava/time/LocalTime;
-Ljava/time/OffsetTime;->toEpochNano()J
-Ljava/time/OffsetTime;->with(Ljava/time/LocalTime;Ljava/time/ZoneOffset;)Ljava/time/OffsetTime;
-Ljava/time/OffsetTime;->writeExternal(Ljava/io/ObjectOutput;)V
-Ljava/time/Period;-><init>(III)V
-Ljava/time/Period;->create(III)Ljava/time/Period;
-Ljava/time/Period;->days:I
-Ljava/time/Period;->months:I
-Ljava/time/Period;->parseNumber(Ljava/lang/CharSequence;Ljava/lang/String;I)I
-Ljava/time/Period;->PATTERN:Ljava/util/regex/Pattern;
-Ljava/time/Period;->readExternal(Ljava/io/DataInput;)Ljava/time/Period;
-Ljava/time/Period;->SUPPORTED_UNITS:Ljava/util/List;
-Ljava/time/Period;->validateChrono(Ljava/time/temporal/TemporalAccessor;)V
-Ljava/time/Period;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/Period;->years:I
-Ljava/time/temporal/ChronoField;->baseUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/ChronoField;->displayNameKey:Ljava/lang/String;
-Ljava/time/temporal/ChronoField;->getIcuFieldNumber(Ljava/time/temporal/ChronoField;)I
-Ljava/time/temporal/ChronoField;->name:Ljava/lang/String;
-Ljava/time/temporal/ChronoField;->range:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/ChronoField;->rangeUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/ChronoUnit;->duration:Ljava/time/Duration;
-Ljava/time/temporal/ChronoUnit;->name:Ljava/lang/String;
-Ljava/time/temporal/IsoFields$Field;->DAY_OF_QUARTER:Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Field;->ensureIso(Ljava/time/temporal/TemporalAccessor;)V
-Ljava/time/temporal/IsoFields$Field;->getWeek(Ljava/time/LocalDate;)I
-Ljava/time/temporal/IsoFields$Field;->getWeekBasedYear(Ljava/time/LocalDate;)I
-Ljava/time/temporal/IsoFields$Field;->getWeekRange(I)I
-Ljava/time/temporal/IsoFields$Field;->getWeekRange(Ljava/time/LocalDate;)Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/IsoFields$Field;->isIso(Ljava/time/temporal/TemporalAccessor;)Z
-Ljava/time/temporal/IsoFields$Field;->QUARTER_DAYS:[I
-Ljava/time/temporal/IsoFields$Field;->QUARTER_OF_YEAR:Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Field;->valueOf(Ljava/lang/String;)Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Field;->values()[Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Field;->WEEK_BASED_YEAR:Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Field;->WEEK_OF_WEEK_BASED_YEAR:Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Unit;->duration:Ljava/time/Duration;
-Ljava/time/temporal/IsoFields$Unit;->name:Ljava/lang/String;
-Ljava/time/temporal/IsoFields$Unit;->QUARTER_YEARS:Ljava/time/temporal/IsoFields$Unit;
-Ljava/time/temporal/IsoFields$Unit;->valueOf(Ljava/lang/String;)Ljava/time/temporal/IsoFields$Unit;
-Ljava/time/temporal/IsoFields$Unit;->values()[Ljava/time/temporal/IsoFields$Unit;
-Ljava/time/temporal/IsoFields$Unit;->WEEK_BASED_YEARS:Ljava/time/temporal/IsoFields$Unit;
-Ljava/time/temporal/IsoFields;-><init>()V
-Ljava/time/temporal/JulianFields$Field;->baseUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/JulianFields$Field;->JULIAN_DAY:Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields$Field;->MODIFIED_JULIAN_DAY:Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields$Field;->name:Ljava/lang/String;
-Ljava/time/temporal/JulianFields$Field;->offset:J
-Ljava/time/temporal/JulianFields$Field;->range:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/JulianFields$Field;->rangeUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/JulianFields$Field;->RATA_DIE:Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields$Field;->valueOf(Ljava/lang/String;)Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields$Field;->values()[Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields;-><init>()V
-Ljava/time/temporal/JulianFields;->JULIAN_DAY_OFFSET:J
-Ljava/time/temporal/TemporalAdjusters;-><init>()V
-Ljava/time/temporal/TemporalQueries;-><init>()V
-Ljava/time/temporal/TemporalQueries;->CHRONO:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalQueries;->LOCAL_DATE:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalQueries;->LOCAL_TIME:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalQueries;->OFFSET:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalQueries;->PRECISION:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalQueries;->ZONE:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalQueries;->ZONE_ID:Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/ValueRange;-><init>(JJJJ)V
-Ljava/time/temporal/ValueRange;->genInvalidFieldMessage(Ljava/time/temporal/TemporalField;J)Ljava/lang/String;
-Ljava/time/temporal/ValueRange;->maxLargest:J
-Ljava/time/temporal/ValueRange;->maxSmallest:J
-Ljava/time/temporal/ValueRange;->minLargest:J
-Ljava/time/temporal/ValueRange;->minSmallest:J
-Ljava/time/temporal/WeekFields$ComputedDayOfField;-><init>(Ljava/lang/String;Ljava/time/temporal/WeekFields;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/ValueRange;)V
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->baseUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->computeWeek(II)I
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->DAY_OF_WEEK_RANGE:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedDayOfWeek(I)I
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedDayOfWeek(Ljava/time/temporal/TemporalAccessor;)I
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekBasedYear(Ljava/time/temporal/TemporalAccessor;)I
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekOfMonth(Ljava/time/temporal/TemporalAccessor;)J
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekOfWeekBasedYear(Ljava/time/temporal/TemporalAccessor;)I
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->localizedWeekOfYear(Ljava/time/temporal/TemporalAccessor;)J
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->name:Ljava/lang/String;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofDayOfWeekField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekBasedYear(Ljava/time/chrono/Chronology;III)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekBasedYearField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekOfMonthField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekOfWeekBasedYearField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->ofWeekOfYearField(Ljava/time/temporal/WeekFields;)Ljava/time/temporal/WeekFields$ComputedDayOfField;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->range:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->rangeByWeek(Ljava/time/temporal/TemporalAccessor;Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->rangeUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->rangeWeekOfWeekBasedYear(Ljava/time/temporal/TemporalAccessor;)Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->resolveWBY(Ljava/util/Map;Ljava/time/chrono/Chronology;ILjava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->resolveWoM(Ljava/util/Map;Ljava/time/chrono/Chronology;IJJILjava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->resolveWoY(Ljava/util/Map;Ljava/time/chrono/Chronology;IJILjava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->startOfWeekOffset(II)I
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->weekDef:Ljava/time/temporal/WeekFields;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->WEEK_OF_MONTH_RANGE:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->WEEK_OF_WEEK_BASED_YEAR_RANGE:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields$ComputedDayOfField;->WEEK_OF_YEAR_RANGE:Ljava/time/temporal/ValueRange;
-Ljava/time/temporal/WeekFields;-><init>(Ljava/time/DayOfWeek;I)V
-Ljava/time/temporal/WeekFields;->CACHE:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/temporal/WeekFields;->dayOfWeek:Ljava/time/temporal/TemporalField;
-Ljava/time/temporal/WeekFields;->firstDayOfWeek:Ljava/time/DayOfWeek;
-Ljava/time/temporal/WeekFields;->minimalDays:I
-Ljava/time/temporal/WeekFields;->weekBasedYear:Ljava/time/temporal/TemporalField;
-Ljava/time/temporal/WeekFields;->weekOfMonth:Ljava/time/temporal/TemporalField;
-Ljava/time/temporal/WeekFields;->weekOfWeekBasedYear:Ljava/time/temporal/TemporalField;
-Ljava/time/temporal/WeekFields;->weekOfYear:Ljava/time/temporal/TemporalField;
-Ljava/time/Year;-><init>(I)V
-Ljava/time/Year;->PARSER:Ljava/time/format/DateTimeFormatter;
-Ljava/time/Year;->readExternal(Ljava/io/DataInput;)Ljava/time/Year;
-Ljava/time/Year;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/Year;->year:I
-Ljava/time/YearMonth;-><init>(II)V
-Ljava/time/YearMonth;->getProlepticMonth()J
-Ljava/time/YearMonth;->month:I
-Ljava/time/YearMonth;->PARSER:Ljava/time/format/DateTimeFormatter;
-Ljava/time/YearMonth;->readExternal(Ljava/io/DataInput;)Ljava/time/YearMonth;
-Ljava/time/YearMonth;->with(II)Ljava/time/YearMonth;
-Ljava/time/YearMonth;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/YearMonth;->year:I
-Ljava/time/zone/ZoneOffsetTransition;-><init>(JLjava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
-Ljava/time/zone/ZoneOffsetTransition;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
-Ljava/time/zone/ZoneOffsetTransition;->getDurationSeconds()I
-Ljava/time/zone/ZoneOffsetTransition;->getValidOffsets()Ljava/util/List;
-Ljava/time/zone/ZoneOffsetTransition;->offsetAfter:Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneOffsetTransition;->offsetBefore:Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneOffsetTransition;->readExternal(Ljava/io/DataInput;)Ljava/time/zone/ZoneOffsetTransition;
-Ljava/time/zone/ZoneOffsetTransition;->transition:Ljava/time/LocalDateTime;
-Ljava/time/zone/ZoneOffsetTransition;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/zone/ZoneOffsetTransitionRule;-><init>(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
-Ljava/time/zone/ZoneOffsetTransitionRule;->dom:B
-Ljava/time/zone/ZoneOffsetTransitionRule;->dow:Ljava/time/DayOfWeek;
-Ljava/time/zone/ZoneOffsetTransitionRule;->month:Ljava/time/Month;
-Ljava/time/zone/ZoneOffsetTransitionRule;->offsetAfter:Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneOffsetTransitionRule;->offsetBefore:Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneOffsetTransitionRule;->readExternal(Ljava/io/DataInput;)Ljava/time/zone/ZoneOffsetTransitionRule;
-Ljava/time/zone/ZoneOffsetTransitionRule;->standardOffset:Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneOffsetTransitionRule;->time:Ljava/time/LocalTime;
-Ljava/time/zone/ZoneOffsetTransitionRule;->timeDefinition:Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;
-Ljava/time/zone/ZoneOffsetTransitionRule;->timeEndOfDay:Z
-Ljava/time/zone/ZoneOffsetTransitionRule;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;)V
-Ljava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
-Ljava/time/zone/ZoneRules;-><init>([J[Ljava/time/ZoneOffset;[J[Ljava/time/ZoneOffset;[Ljava/time/zone/ZoneOffsetTransitionRule;)V
-Ljava/time/zone/ZoneRules;->EMPTY_LASTRULES:[Ljava/time/zone/ZoneOffsetTransitionRule;
-Ljava/time/zone/ZoneRules;->EMPTY_LDT_ARRAY:[Ljava/time/LocalDateTime;
-Ljava/time/zone/ZoneRules;->EMPTY_LONG_ARRAY:[J
-Ljava/time/zone/ZoneRules;->findOffsetInfo(Ljava/time/LocalDateTime;Ljava/time/zone/ZoneOffsetTransition;)Ljava/lang/Object;
-Ljava/time/zone/ZoneRules;->findTransitionArray(I)[Ljava/time/zone/ZoneOffsetTransition;
-Ljava/time/zone/ZoneRules;->findYear(JLjava/time/ZoneOffset;)I
-Ljava/time/zone/ZoneRules;->getOffsetInfo(Ljava/time/LocalDateTime;)Ljava/lang/Object;
-Ljava/time/zone/ZoneRules;->lastRules:[Ljava/time/zone/ZoneOffsetTransitionRule;
-Ljava/time/zone/ZoneRules;->lastRulesCache:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/zone/ZoneRules;->LAST_CACHED_YEAR:I
-Ljava/time/zone/ZoneRules;->readExternal(Ljava/io/DataInput;)Ljava/time/zone/ZoneRules;
-Ljava/time/zone/ZoneRules;->savingsInstantTransitions:[J
-Ljava/time/zone/ZoneRules;->savingsLocalTransitions:[Ljava/time/LocalDateTime;
-Ljava/time/zone/ZoneRules;->standardOffsets:[Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneRules;->standardTransitions:[J
-Ljava/time/zone/ZoneRules;->wallOffsets:[Ljava/time/ZoneOffset;
-Ljava/time/zone/ZoneRules;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/ZonedDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)V
-Ljava/time/ZonedDateTime;->create(JILjava/time/ZoneId;)Ljava/time/ZonedDateTime;
-Ljava/time/ZonedDateTime;->dateTime:Ljava/time/LocalDateTime;
-Ljava/time/ZonedDateTime;->offset:Ljava/time/ZoneOffset;
-Ljava/time/ZonedDateTime;->ofLenient(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
-Ljava/time/ZonedDateTime;->readExternal(Ljava/io/ObjectInput;)Ljava/time/ZonedDateTime;
-Ljava/time/ZonedDateTime;->resolveInstant(Ljava/time/LocalDateTime;)Ljava/time/ZonedDateTime;
-Ljava/time/ZonedDateTime;->resolveLocal(Ljava/time/LocalDateTime;)Ljava/time/ZonedDateTime;
-Ljava/time/ZonedDateTime;->resolveOffset(Ljava/time/ZoneOffset;)Ljava/time/ZonedDateTime;
-Ljava/time/ZonedDateTime;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/ZonedDateTime;->zone:Ljava/time/ZoneId;
-Ljava/time/ZoneId;-><init>()V
-Ljava/time/ZoneId;->ofWithPrefix(Ljava/lang/String;IZ)Ljava/time/ZoneId;
-Ljava/time/ZoneId;->toTemporal()Ljava/time/temporal/TemporalAccessor;
-Ljava/time/ZoneId;->write(Ljava/io/DataOutput;)V
-Ljava/time/ZoneOffset;-><init>(I)V
-Ljava/time/ZoneOffset;->buildId(I)Ljava/lang/String;
-Ljava/time/ZoneOffset;->id:Ljava/lang/String;
-Ljava/time/ZoneOffset;->ID_CACHE:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/ZoneOffset;->MAX_SECONDS:I
-Ljava/time/ZoneOffset;->parseNumber(Ljava/lang/CharSequence;IZ)I
-Ljava/time/ZoneOffset;->readExternal(Ljava/io/DataInput;)Ljava/time/ZoneOffset;
-Ljava/time/ZoneOffset;->SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;
-Ljava/time/ZoneOffset;->totalSeconds(III)I
-Ljava/time/ZoneOffset;->totalSeconds:I
-Ljava/time/ZoneOffset;->validate(III)V
-Ljava/time/ZoneOffset;->write(Ljava/io/DataOutput;)V
-Ljava/time/ZoneOffset;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/util/AbstractCollection;->finishToArray([Ljava/lang/Object;Ljava/util/Iterator;)[Ljava/lang/Object;
-Ljava/util/AbstractCollection;->hugeCapacity(I)I
-Ljava/util/AbstractCollection;->MAX_ARRAY_SIZE:I
-Ljava/util/AbstractList$Itr;->checkForComodification()V
-Ljava/util/AbstractList$Itr;->cursor:I
-Ljava/util/AbstractList$Itr;->expectedModCount:I
-Ljava/util/AbstractList$Itr;->lastRet:I
-Ljava/util/AbstractList;->outOfBoundsMsg(I)Ljava/lang/String;
-Ljava/util/AbstractList;->rangeCheckForAdd(I)V
-Ljava/util/AbstractMap$SimpleEntry;->key:Ljava/lang/Object;
-Ljava/util/AbstractMap$SimpleEntry;->value:Ljava/lang/Object;
-Ljava/util/AbstractMap$SimpleImmutableEntry;->key:Ljava/lang/Object;
-Ljava/util/AbstractMap$SimpleImmutableEntry;->value:Ljava/lang/Object;
-Ljava/util/AbstractMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/AbstractMap;->keySet:Ljava/util/Set;
-Ljava/util/AbstractMap;->values:Ljava/util/Collection;
-Ljava/util/ArrayDeque$DeqIterator;->cursor:I
-Ljava/util/ArrayDeque$DeqIterator;->fence:I
-Ljava/util/ArrayDeque$DeqIterator;->lastRet:I
-Ljava/util/ArrayDeque$DeqSpliterator;-><init>(Ljava/util/ArrayDeque;II)V
-Ljava/util/ArrayDeque$DeqSpliterator;->deq:Ljava/util/ArrayDeque;
-Ljava/util/ArrayDeque$DeqSpliterator;->fence:I
-Ljava/util/ArrayDeque$DeqSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/ArrayDeque$DeqSpliterator;->getFence()I
-Ljava/util/ArrayDeque$DeqSpliterator;->index:I
-Ljava/util/ArrayDeque$DeqSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/ArrayDeque$DescendingIterator;->cursor:I
-Ljava/util/ArrayDeque$DescendingIterator;->fence:I
-Ljava/util/ArrayDeque$DescendingIterator;->lastRet:I
-Ljava/util/ArrayDeque;->allocateElements(I)V
-Ljava/util/ArrayDeque;->checkInvariants()V
-Ljava/util/ArrayDeque;->delete(I)Z
-Ljava/util/ArrayDeque;->doubleCapacity()V
-Ljava/util/ArrayDeque;->MIN_INITIAL_CAPACITY:I
-Ljava/util/ArrayList$ArrayListSpliterator;-><init>(Ljava/util/ArrayList;III)V
-Ljava/util/ArrayList$ArrayListSpliterator;->expectedModCount:I
-Ljava/util/ArrayList$ArrayListSpliterator;->fence:I
-Ljava/util/ArrayList$ArrayListSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/ArrayList$ArrayListSpliterator;->getFence()I
-Ljava/util/ArrayList$ArrayListSpliterator;->index:I
-Ljava/util/ArrayList$ArrayListSpliterator;->list:Ljava/util/ArrayList;
-Ljava/util/ArrayList$ArrayListSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/ArrayList$Itr;->cursor:I
-Ljava/util/ArrayList$Itr;->expectedModCount:I
-Ljava/util/ArrayList$Itr;->lastRet:I
-Ljava/util/ArrayList$Itr;->limit:I
-Ljava/util/ArrayList$SubList;->outOfBoundsMsg(I)Ljava/lang/String;
-Ljava/util/ArrayList;->batchRemove(Ljava/util/Collection;Z)Z
-Ljava/util/ArrayList;->DEFAULTCAPACITY_EMPTY_ELEMENTDATA:[Ljava/lang/Object;
-Ljava/util/ArrayList;->DEFAULT_CAPACITY:I
-Ljava/util/ArrayList;->EMPTY_ELEMENTDATA:[Ljava/lang/Object;
-Ljava/util/ArrayList;->ensureCapacityInternal(I)V
-Ljava/util/ArrayList;->ensureExplicitCapacity(I)V
-Ljava/util/ArrayList;->fastRemove(I)V
-Ljava/util/ArrayList;->grow(I)V
-Ljava/util/ArrayList;->hugeCapacity(I)I
-Ljava/util/ArrayList;->MAX_ARRAY_SIZE:I
-Ljava/util/ArrayList;->outOfBoundsMsg(I)Ljava/lang/String;
-Ljava/util/ArrayList;->subListRangeCheck(III)V
-Ljava/util/Arrays$ArrayList;-><init>([Ljava/lang/Object;)V
-Ljava/util/Arrays$ArrayList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Arrays$NaturalOrder;-><init>()V
-Ljava/util/Arrays$NaturalOrder;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/Arrays$NaturalOrder;->INSTANCE:Ljava/util/Arrays$NaturalOrder;
-Ljava/util/Arrays;-><init>()V
-Ljava/util/Arrays;->binarySearch0([BIIB)I
-Ljava/util/Arrays;->binarySearch0([CIIC)I
-Ljava/util/Arrays;->binarySearch0([DIID)I
-Ljava/util/Arrays;->binarySearch0([FIIF)I
-Ljava/util/Arrays;->binarySearch0([IIII)I
-Ljava/util/Arrays;->binarySearch0([JIIJ)I
-Ljava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;)I
-Ljava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
-Ljava/util/Arrays;->binarySearch0([SIIS)I
-Ljava/util/Arrays;->deepEquals0(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/Arrays;->INSERTIONSORT_THRESHOLD:I
-Ljava/util/Arrays;->mergeSort([Ljava/lang/Object;[Ljava/lang/Object;III)V
-Ljava/util/Arrays;->MIN_ARRAY_SORT_GRAN:I
-Ljava/util/Arrays;->rangeCheck(III)V
-Ljava/util/Arrays;->swap([Ljava/lang/Object;II)V
-Ljava/util/Base64$DecInputStream;-><init>(Ljava/io/InputStream;[IZ)V
-Ljava/util/Base64$DecInputStream;->base64:[I
-Ljava/util/Base64$DecInputStream;->bits:I
-Ljava/util/Base64$DecInputStream;->closed:Z
-Ljava/util/Base64$DecInputStream;->eof:Z
-Ljava/util/Base64$DecInputStream;->is:Ljava/io/InputStream;
-Ljava/util/Base64$DecInputStream;->isMIME:Z
-Ljava/util/Base64$DecInputStream;->nextin:I
-Ljava/util/Base64$DecInputStream;->nextout:I
-Ljava/util/Base64$DecInputStream;->sbBuf:[B
-Ljava/util/Base64$Decoder;-><init>(ZZ)V
-Ljava/util/Base64$Decoder;->decode0([BII[B)I
-Ljava/util/Base64$Decoder;->fromBase64:[I
-Ljava/util/Base64$Decoder;->fromBase64URL:[I
-Ljava/util/Base64$Decoder;->isMIME:Z
-Ljava/util/Base64$Decoder;->isURL:Z
-Ljava/util/Base64$Decoder;->outLength([BII)I
-Ljava/util/Base64$Decoder;->RFC2045:Ljava/util/Base64$Decoder;
-Ljava/util/Base64$Decoder;->RFC4648:Ljava/util/Base64$Decoder;
-Ljava/util/Base64$Decoder;->RFC4648_URLSAFE:Ljava/util/Base64$Decoder;
-Ljava/util/Base64$Encoder;-><init>(Z[BIZ)V
-Ljava/util/Base64$Encoder;->CRLF:[B
-Ljava/util/Base64$Encoder;->doPadding:Z
-Ljava/util/Base64$Encoder;->encode0([BII[B)I
-Ljava/util/Base64$Encoder;->isURL:Z
-Ljava/util/Base64$Encoder;->linemax:I
-Ljava/util/Base64$Encoder;->MIMELINEMAX:I
-Ljava/util/Base64$Encoder;->newline:[B
-Ljava/util/Base64$Encoder;->outLength(I)I
-Ljava/util/Base64$Encoder;->RFC2045:Ljava/util/Base64$Encoder;
-Ljava/util/Base64$Encoder;->RFC4648:Ljava/util/Base64$Encoder;
-Ljava/util/Base64$Encoder;->RFC4648_URLSAFE:Ljava/util/Base64$Encoder;
-Ljava/util/Base64$Encoder;->toBase64:[C
-Ljava/util/Base64$Encoder;->toBase64URL:[C
-Ljava/util/Base64$EncOutputStream;-><init>(Ljava/io/OutputStream;[C[BIZ)V
-Ljava/util/Base64$EncOutputStream;->b0:I
-Ljava/util/Base64$EncOutputStream;->b1:I
-Ljava/util/Base64$EncOutputStream;->b2:I
-Ljava/util/Base64$EncOutputStream;->base64:[C
-Ljava/util/Base64$EncOutputStream;->checkNewline()V
-Ljava/util/Base64$EncOutputStream;->closed:Z
-Ljava/util/Base64$EncOutputStream;->doPadding:Z
-Ljava/util/Base64$EncOutputStream;->leftover:I
-Ljava/util/Base64$EncOutputStream;->linemax:I
-Ljava/util/Base64$EncOutputStream;->linepos:I
-Ljava/util/Base64$EncOutputStream;->newline:[B
-Ljava/util/Base64;-><init>()V
-Ljava/util/BitSet;-><init>([J)V
-Ljava/util/BitSet;->ADDRESS_BITS_PER_WORD:I
-Ljava/util/BitSet;->BITS_PER_WORD:I
-Ljava/util/BitSet;->BIT_INDEX_MASK:I
-Ljava/util/BitSet;->checkInvariants()V
-Ljava/util/BitSet;->checkRange(II)V
-Ljava/util/BitSet;->ensureCapacity(I)V
-Ljava/util/BitSet;->expandTo(I)V
-Ljava/util/BitSet;->initWords(I)V
-Ljava/util/BitSet;->recalculateWordsInUse()V
-Ljava/util/BitSet;->sizeIsSticky:Z
-Ljava/util/BitSet;->trimToSize()V
-Ljava/util/BitSet;->wordIndex(I)I
-Ljava/util/BitSet;->words:[J
-Ljava/util/BitSet;->wordsInUse:I
-Ljava/util/BitSet;->WORD_MASK:J
-Ljava/util/Calendar$AvailableCalendarTypes;-><init>()V
-Ljava/util/Calendar$AvailableCalendarTypes;->SET:Ljava/util/Set;
-Ljava/util/Calendar$Builder;->allocateFields()V
-Ljava/util/Calendar$Builder;->fields:[I
-Ljava/util/Calendar$Builder;->firstDayOfWeek:I
-Ljava/util/Calendar$Builder;->instant:J
-Ljava/util/Calendar$Builder;->internalSet(II)V
-Ljava/util/Calendar$Builder;->isInstantSet()Z
-Ljava/util/Calendar$Builder;->isSet(I)Z
-Ljava/util/Calendar$Builder;->isValidWeekParameter(I)Z
-Ljava/util/Calendar$Builder;->lenient:Z
-Ljava/util/Calendar$Builder;->locale:Ljava/util/Locale;
-Ljava/util/Calendar$Builder;->maxFieldIndex:I
-Ljava/util/Calendar$Builder;->minimalDaysInFirstWeek:I
-Ljava/util/Calendar$Builder;->nextStamp:I
-Ljava/util/Calendar$Builder;->NFIELDS:I
-Ljava/util/Calendar$Builder;->type:Ljava/lang/String;
-Ljava/util/Calendar$Builder;->WEEK_YEAR:I
-Ljava/util/Calendar$Builder;->zone:Ljava/util/TimeZone;
-Ljava/util/Calendar$CalendarAccessControlContext;-><init>()V
-Ljava/util/Calendar$CalendarAccessControlContext;->INSTANCE:Ljava/security/AccessControlContext;
-Ljava/util/Calendar;->adjustStamp()V
-Ljava/util/Calendar;->aggregateStamp(II)I
-Ljava/util/Calendar;->ALL_FIELDS:I
-Ljava/util/Calendar;->AM_PM_MASK:I
-Ljava/util/Calendar;->appendValue(Ljava/lang/StringBuilder;Ljava/lang/String;ZJ)V
-Ljava/util/Calendar;->areAllFieldsSet:Z
-Ljava/util/Calendar;->cachedLocaleData:Ljava/util/concurrent/ConcurrentMap;
-Ljava/util/Calendar;->checkDisplayNameParams(IIIILjava/util/Locale;I)Z
-Ljava/util/Calendar;->compareTo(J)I
-Ljava/util/Calendar;->COMPUTED:I
-Ljava/util/Calendar;->createCalendar(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
-Ljava/util/Calendar;->currentSerialVersion:I
-Ljava/util/Calendar;->DATE_MASK:I
-Ljava/util/Calendar;->DAY_OF_MONTH_MASK:I
-Ljava/util/Calendar;->DAY_OF_WEEK_IN_MONTH_MASK:I
-Ljava/util/Calendar;->DAY_OF_WEEK_MASK:I
-Ljava/util/Calendar;->DAY_OF_YEAR_MASK:I
-Ljava/util/Calendar;->DST_OFFSET_MASK:I
-Ljava/util/Calendar;->ERA_MASK:I
-Ljava/util/Calendar;->FIELD_NAME:[Ljava/lang/String;
-Ljava/util/Calendar;->firstDayOfWeek:I
-Ljava/util/Calendar;->getBaseStyle(I)I
-Ljava/util/Calendar;->getDisplayNamesImpl(IILjava/util/Locale;)Ljava/util/Map;
-Ljava/util/Calendar;->getFieldName(I)Ljava/lang/String;
-Ljava/util/Calendar;->getFieldStrings(IILjava/text/DateFormatSymbols;)[Ljava/lang/String;
-Ljava/util/Calendar;->getJapaneseImperialInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
-Ljava/util/Calendar;->getMillisOf(Ljava/util/Calendar;)J
-Ljava/util/Calendar;->getSetStateFields()I
-Ljava/util/Calendar;->getZone()Ljava/util/TimeZone;
-Ljava/util/Calendar;->HOUR_MASK:I
-Ljava/util/Calendar;->HOUR_OF_DAY_MASK:I
-Ljava/util/Calendar;->internalSet(II)V
-Ljava/util/Calendar;->invalidateWeekFields()V
-Ljava/util/Calendar;->isExternallySet(I)Z
-Ljava/util/Calendar;->isFieldSet(II)Z
-Ljava/util/Calendar;->isFullyNormalized()Z
-Ljava/util/Calendar;->isNarrowFormatStyle(I)Z
-Ljava/util/Calendar;->isNarrowStyle(I)Z
-Ljava/util/Calendar;->isPartiallyNormalized()Z
-Ljava/util/Calendar;->isStandaloneStyle(I)Z
-Ljava/util/Calendar;->lenient:Z
-Ljava/util/Calendar;->MILLISECOND_MASK:I
-Ljava/util/Calendar;->minimalDaysInFirstWeek:I
-Ljava/util/Calendar;->MINIMUM_USER_STAMP:I
-Ljava/util/Calendar;->MINUTE_MASK:I
-Ljava/util/Calendar;->MONTH_MASK:I
-Ljava/util/Calendar;->nextStamp:I
-Ljava/util/Calendar;->SECOND_MASK:I
-Ljava/util/Calendar;->selectFields()I
-Ljava/util/Calendar;->serialVersionOnStream:I
-Ljava/util/Calendar;->setFieldsComputed(I)V
-Ljava/util/Calendar;->setFieldsNormalized(I)V
-Ljava/util/Calendar;->setUnnormalized()V
-Ljava/util/Calendar;->setWeekCountData(Ljava/util/Locale;)V
-Ljava/util/Calendar;->setZoneShared(Z)V
-Ljava/util/Calendar;->sharedZone:Z
-Ljava/util/Calendar;->stamp:[I
-Ljava/util/Calendar;->STANDALONE_MASK:I
-Ljava/util/Calendar;->toStandaloneStyle(I)I
-Ljava/util/Calendar;->UNSET:I
-Ljava/util/Calendar;->updateTime()V
-Ljava/util/Calendar;->WEEK_OF_MONTH_MASK:I
-Ljava/util/Calendar;->WEEK_OF_YEAR_MASK:I
-Ljava/util/Calendar;->YEAR_MASK:I
-Ljava/util/Calendar;->ZONE_OFFSET_MASK:I
-Ljava/util/Collections$AsLIFOQueue;-><init>(Ljava/util/Deque;)V
-Ljava/util/Collections$AsLIFOQueue;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$AsLIFOQueue;->q:Ljava/util/Deque;
-Ljava/util/Collections$CheckedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedCollection;->badElementMsg(Ljava/lang/Object;)Ljava/lang/String;
-Ljava/util/Collections$CheckedCollection;->c:Ljava/util/Collection;
-Ljava/util/Collections$CheckedCollection;->checkedCopyOf(Ljava/util/Collection;)Ljava/util/Collection;
-Ljava/util/Collections$CheckedCollection;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$CheckedCollection;->type:Ljava/lang/Class;
-Ljava/util/Collections$CheckedCollection;->typeCheck(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/Collections$CheckedCollection;->zeroLengthElementArray()[Ljava/lang/Object;
-Ljava/util/Collections$CheckedCollection;->zeroLengthElementArray:[Ljava/lang/Object;
-Ljava/util/Collections$CheckedList;-><init>(Ljava/util/List;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedList;->list:Ljava/util/List;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;-><init>(Ljava/util/Map$Entry;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;->badValueMsg(Ljava/lang/Object;)Ljava/lang/String;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;->e:Ljava/util/Map$Entry;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;->valueType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;-><init>(Ljava/util/Set;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;->add(Ljava/util/Map$Entry;)Z
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;->addAll(Ljava/util/Collection;)Z
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;->batchRemove(Ljava/util/Collection;Z)Z
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;->checkedEntry(Ljava/util/Map$Entry;Ljava/lang/Class;)Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;->s:Ljava/util/Set;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;->valueType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedMap;-><init>(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedMap;->badKeyMsg(Ljava/lang/Object;)Ljava/lang/String;
-Ljava/util/Collections$CheckedMap;->badValueMsg(Ljava/lang/Object;)Ljava/lang/String;
-Ljava/util/Collections$CheckedMap;->entrySet:Ljava/util/Set;
-Ljava/util/Collections$CheckedMap;->keyType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedMap;->m:Ljava/util/Map;
-Ljava/util/Collections$CheckedMap;->typeCheck(Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/util/Collections$CheckedMap;->typeCheck(Ljava/util/function/BiFunction;)Ljava/util/function/BiFunction;
-Ljava/util/Collections$CheckedMap;->valueType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedNavigableMap;-><init>(Ljava/util/NavigableMap;Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedNavigableMap;->nm:Ljava/util/NavigableMap;
-Ljava/util/Collections$CheckedNavigableSet;-><init>(Ljava/util/NavigableSet;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedNavigableSet;->ns:Ljava/util/NavigableSet;
-Ljava/util/Collections$CheckedQueue;-><init>(Ljava/util/Queue;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedQueue;->queue:Ljava/util/Queue;
-Ljava/util/Collections$CheckedRandomAccessList;-><init>(Ljava/util/List;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedSet;-><init>(Ljava/util/Set;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedSortedMap;-><init>(Ljava/util/SortedMap;Ljava/lang/Class;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedSortedMap;->sm:Ljava/util/SortedMap;
-Ljava/util/Collections$CheckedSortedSet;-><init>(Ljava/util/SortedSet;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedSortedSet;->ss:Ljava/util/SortedSet;
-Ljava/util/Collections$CopiesList;-><init>(ILjava/lang/Object;)V
-Ljava/util/Collections$CopiesList;->element:Ljava/lang/Object;
-Ljava/util/Collections$CopiesList;->n:I
-Ljava/util/Collections$EmptyEnumeration;-><init>()V
-Ljava/util/Collections$EmptyEnumeration;->EMPTY_ENUMERATION:Ljava/util/Collections$EmptyEnumeration;
-Ljava/util/Collections$EmptyIterator;-><init>()V
-Ljava/util/Collections$EmptyIterator;->EMPTY_ITERATOR:Ljava/util/Collections$EmptyIterator;
-Ljava/util/Collections$EmptyList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$EmptyListIterator;-><init>()V
-Ljava/util/Collections$EmptyListIterator;->EMPTY_ITERATOR:Ljava/util/Collections$EmptyListIterator;
-Ljava/util/Collections$EmptySet;-><init>()V
-Ljava/util/Collections$EmptySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$ReverseComparator2;-><init>(Ljava/util/Comparator;)V
-Ljava/util/Collections$ReverseComparator2;->cmp:Ljava/util/Comparator;
-Ljava/util/Collections$ReverseComparator;-><init>()V
-Ljava/util/Collections$ReverseComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
-Ljava/util/Collections$ReverseComparator;->REVERSE_ORDER:Ljava/util/Collections$ReverseComparator;
-Ljava/util/Collections$SetFromMap;-><init>(Ljava/util/Map;)V
-Ljava/util/Collections$SetFromMap;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$SetFromMap;->m:Ljava/util/Map;
-Ljava/util/Collections$SetFromMap;->s:Ljava/util/Set;
-Ljava/util/Collections$SingletonList;-><init>(Ljava/lang/Object;)V
-Ljava/util/Collections$SingletonList;->element:Ljava/lang/Object;
-Ljava/util/Collections$SingletonList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$SingletonMap;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/util/Collections$SingletonMap;->entrySet:Ljava/util/Set;
-Ljava/util/Collections$SingletonMap;->k:Ljava/lang/Object;
-Ljava/util/Collections$SingletonMap;->keySet:Ljava/util/Set;
-Ljava/util/Collections$SingletonMap;->v:Ljava/lang/Object;
-Ljava/util/Collections$SingletonMap;->values:Ljava/util/Collection;
-Ljava/util/Collections$SingletonSet;-><init>(Ljava/lang/Object;)V
-Ljava/util/Collections$SingletonSet;->element:Ljava/lang/Object;
-Ljava/util/Collections$SingletonSet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;)V
-Ljava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedCollection;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$SynchronizedCollection;->mutex:Ljava/lang/Object;
-Ljava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;)V
-Ljava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;)V
-Ljava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedMap;->entrySet:Ljava/util/Set;
-Ljava/util/Collections$SynchronizedMap;->keySet:Ljava/util/Set;
-Ljava/util/Collections$SynchronizedMap;->mutex:Ljava/lang/Object;
-Ljava/util/Collections$SynchronizedMap;->values:Ljava/util/Collection;
-Ljava/util/Collections$SynchronizedNavigableMap;-><init>(Ljava/util/NavigableMap;)V
-Ljava/util/Collections$SynchronizedNavigableMap;-><init>(Ljava/util/NavigableMap;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedNavigableMap;->nm:Ljava/util/NavigableMap;
-Ljava/util/Collections$SynchronizedNavigableSet;-><init>(Ljava/util/NavigableSet;)V
-Ljava/util/Collections$SynchronizedNavigableSet;-><init>(Ljava/util/NavigableSet;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedNavigableSet;->ns:Ljava/util/NavigableSet;
-Ljava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;)V
-Ljava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;)V
-Ljava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedSortedMap;-><init>(Ljava/util/SortedMap;)V
-Ljava/util/Collections$SynchronizedSortedMap;-><init>(Ljava/util/SortedMap;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedSortedMap;->sm:Ljava/util/SortedMap;
-Ljava/util/Collections$SynchronizedSortedSet;-><init>(Ljava/util/SortedSet;)V
-Ljava/util/Collections$SynchronizedSortedSet;-><init>(Ljava/util/SortedSet;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedSortedSet;->ss:Ljava/util/SortedSet;
-Ljava/util/Collections$UnmodifiableCollection;-><init>(Ljava/util/Collection;)V
-Ljava/util/Collections$UnmodifiableCollection;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$UnmodifiableList;-><init>(Ljava/util/List;)V
-Ljava/util/Collections$UnmodifiableList;->list:Ljava/util/List;
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;-><init>(Ljava/util/Map$Entry;)V
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->e:Ljava/util/Map$Entry;
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;-><init>(Ljava/util/Spliterator;)V
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;->s:Ljava/util/Spliterator;
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;-><init>(Ljava/util/Set;)V
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;->entryConsumer(Ljava/util/function/Consumer;)Ljava/util/function/Consumer;
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$UnmodifiableMap;-><init>(Ljava/util/Map;)V
-Ljava/util/Collections$UnmodifiableMap;->entrySet:Ljava/util/Set;
-Ljava/util/Collections$UnmodifiableMap;->keySet:Ljava/util/Set;
-Ljava/util/Collections$UnmodifiableMap;->values:Ljava/util/Collection;
-Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap;-><init>()V
-Ljava/util/Collections$UnmodifiableNavigableMap;-><init>(Ljava/util/NavigableMap;)V
-Ljava/util/Collections$UnmodifiableNavigableMap;->EMPTY_NAVIGABLE_MAP:Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap;
-Ljava/util/Collections$UnmodifiableNavigableMap;->nm:Ljava/util/NavigableMap;
-Ljava/util/Collections$UnmodifiableNavigableSet$EmptyNavigableSet;-><init>()V
-Ljava/util/Collections$UnmodifiableNavigableSet;-><init>(Ljava/util/NavigableSet;)V
-Ljava/util/Collections$UnmodifiableNavigableSet;->EMPTY_NAVIGABLE_SET:Ljava/util/NavigableSet;
-Ljava/util/Collections$UnmodifiableNavigableSet;->ns:Ljava/util/NavigableSet;
-Ljava/util/Collections$UnmodifiableRandomAccessList;-><init>(Ljava/util/List;)V
-Ljava/util/Collections$UnmodifiableSet;-><init>(Ljava/util/Set;)V
-Ljava/util/Collections$UnmodifiableSortedMap;-><init>(Ljava/util/SortedMap;)V
-Ljava/util/Collections$UnmodifiableSortedMap;->sm:Ljava/util/SortedMap;
-Ljava/util/Collections$UnmodifiableSortedSet;-><init>(Ljava/util/SortedSet;)V
-Ljava/util/Collections$UnmodifiableSortedSet;->ss:Ljava/util/SortedSet;
-Ljava/util/Collections;-><init>()V
-Ljava/util/Collections;->BINARYSEARCH_THRESHOLD:I
-Ljava/util/Collections;->COPY_THRESHOLD:I
-Ljava/util/Collections;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/Collections;->FILL_THRESHOLD:I
-Ljava/util/Collections;->get(Ljava/util/ListIterator;I)Ljava/lang/Object;
-Ljava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
-Ljava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
-Ljava/util/Collections;->INDEXOFSUBLIST_THRESHOLD:I
-Ljava/util/Collections;->iteratorBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
-Ljava/util/Collections;->iteratorBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
-Ljava/util/Collections;->r:Ljava/util/Random;
-Ljava/util/Collections;->REPLACEALL_THRESHOLD:I
-Ljava/util/Collections;->REVERSE_THRESHOLD:I
-Ljava/util/Collections;->rotate1(Ljava/util/List;I)V
-Ljava/util/Collections;->rotate2(Ljava/util/List;I)V
-Ljava/util/Collections;->ROTATE_THRESHOLD:I
-Ljava/util/Collections;->SHUFFLE_THRESHOLD:I
-Ljava/util/Collections;->singletonIterator(Ljava/lang/Object;)Ljava/util/Iterator;
-Ljava/util/Collections;->singletonSpliterator(Ljava/lang/Object;)Ljava/util/Spliterator;
-Ljava/util/Collections;->swap([Ljava/lang/Object;II)V
-Ljava/util/Collections;->synchronizedCollection(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/Collection;
-Ljava/util/Collections;->synchronizedList(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
-Ljava/util/Collections;->synchronizedSet(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set;
-Ljava/util/Collections;->zeroLengthArray(Ljava/lang/Class;)[Ljava/lang/Object;
-Ljava/util/concurrent/AbstractExecutorService;->cancelAll(Ljava/util/ArrayList;)V
-Ljava/util/concurrent/AbstractExecutorService;->cancelAll(Ljava/util/ArrayList;I)V
-Ljava/util/concurrent/AbstractExecutorService;->doInvokeAny(Ljava/util/Collection;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->cursor:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->detach()V
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->DETACHED:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->distance(III)I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->incCursor(I)I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->incorporateDequeues()V
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->invalidated(IIJI)Z
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->isDetached()Z
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->lastItem:Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->lastRet:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->nextIndex:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->nextItem:Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->NONE:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->noNext()V
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->prevCycles:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->prevTakeIndex:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->REMOVED:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->removedAt(I)Z
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->shutdown()V
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;->takeIndexWrapped()Z
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;->next:Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->cycles:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->doSomeSweeping(Z)V
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->elementDequeued()V
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->head:Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->LONG_SWEEP_PROBES:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->queueIsEmpty()V
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->register(Ljava/util/concurrent/ArrayBlockingQueue$Itr;)V
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->removedAt(I)V
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->SHORT_SWEEP_PROBES:I
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->sweeper:Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->takeIndexWrapped()V
-Ljava/util/concurrent/ArrayBlockingQueue;->count:I
-Ljava/util/concurrent/ArrayBlockingQueue;->dec(I)I
-Ljava/util/concurrent/ArrayBlockingQueue;->dequeue()Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue;->enqueue(Ljava/lang/Object;)V
-Ljava/util/concurrent/ArrayBlockingQueue;->itemAt(I)Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue;->items:[Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue;->itrs:Ljava/util/concurrent/ArrayBlockingQueue$Itrs;
-Ljava/util/concurrent/ArrayBlockingQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/ArrayBlockingQueue;->notEmpty:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/ArrayBlockingQueue;->notFull:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/ArrayBlockingQueue;->putIndex:I
-Ljava/util/concurrent/ArrayBlockingQueue;->removeAt(I)V
-Ljava/util/concurrent/ArrayBlockingQueue;->takeIndex:I
-Ljava/util/concurrent/atomic/AtomicBoolean;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicBoolean;->value:I
-Ljava/util/concurrent/atomic/AtomicBoolean;->VALUE:J
-Ljava/util/concurrent/atomic/AtomicInteger;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicInteger;->VALUE:J
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->ABASE:I
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->array:[I
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->ASHIFT:I
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->byteOffset(I)J
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->checkedByteOffset(I)J
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->compareAndSetRaw(JII)Z
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->getRaw(J)I
-Ljava/util/concurrent/atomic/AtomicIntegerArray;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->cclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->offset:J
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->tclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->throwAccessCheckException(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicLong;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicLong;->VALUE:J
-Ljava/util/concurrent/atomic/AtomicLong;->value:J
-Ljava/util/concurrent/atomic/AtomicLong;->VMSupportsCS8()Z
-Ljava/util/concurrent/atomic/AtomicLong;->VM_SUPPORTS_LONG_CAS:Z
-Ljava/util/concurrent/atomic/AtomicLongArray;->ABASE:I
-Ljava/util/concurrent/atomic/AtomicLongArray;->array:[J
-Ljava/util/concurrent/atomic/AtomicLongArray;->ASHIFT:I
-Ljava/util/concurrent/atomic/AtomicLongArray;->byteOffset(I)J
-Ljava/util/concurrent/atomic/AtomicLongArray;->checkedByteOffset(I)J
-Ljava/util/concurrent/atomic/AtomicLongArray;->compareAndSetRaw(JJJ)Z
-Ljava/util/concurrent/atomic/AtomicLongArray;->getRaw(J)J
-Ljava/util/concurrent/atomic/AtomicLongArray;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->accessCheck(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->cclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->offset:J
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->tclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->throwAccessCheckException(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->accessCheck(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->accessCheckException(Ljava/lang/Object;)Ljava/lang/RuntimeException;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->cclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->offset:J
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->tclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;-><init>(Ljava/lang/Object;Z)V
-Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;->mark:Z
-Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;->of(Ljava/lang/Object;Z)Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;
-Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;->reference:Ljava/lang/Object;
-Ljava/util/concurrent/atomic/AtomicMarkableReference;->casPair(Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;)Z
-Ljava/util/concurrent/atomic/AtomicMarkableReference;->PAIR:J
-Ljava/util/concurrent/atomic/AtomicMarkableReference;->pair:Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;
-Ljava/util/concurrent/atomic/AtomicMarkableReference;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicReference;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicReference;->VALUE:J
-Ljava/util/concurrent/atomic/AtomicReference;->value:Ljava/lang/Object;
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->ABASE:I
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->ARRAY:J
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->array:[Ljava/lang/Object;
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->ASHIFT:I
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->byteOffset(I)J
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->checkedByteOffset(I)J
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSetRaw(JLjava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->getRaw(J)Ljava/lang/Object;
-Ljava/util/concurrent/atomic/AtomicReferenceArray;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->cclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->offset:J
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->tclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->throwAccessCheckException(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->throwCCE()V
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->valueCheck(Ljava/lang/Object;)V
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->vclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;-><init>(Ljava/lang/Object;I)V
-Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;->of(Ljava/lang/Object;I)Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;
-Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;->reference:Ljava/lang/Object;
-Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;->stamp:I
-Ljava/util/concurrent/atomic/AtomicStampedReference;->casPair(Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;)Z
-Ljava/util/concurrent/atomic/AtomicStampedReference;->PAIR:J
-Ljava/util/concurrent/atomic/AtomicStampedReference;->pair:Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;
-Ljava/util/concurrent/atomic/AtomicStampedReference;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;-><init>(DLjava/util/function/DoubleBinaryOperator;J)V
-Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;->function:Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;->identity:J
-Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;->value:D
-Ljava/util/concurrent/atomic/DoubleAccumulator;->function:Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/concurrent/atomic/DoubleAccumulator;->identity:J
-Ljava/util/concurrent/atomic/DoubleAdder$SerializationProxy;-><init>(Ljava/util/concurrent/atomic/DoubleAdder;)V
-Ljava/util/concurrent/atomic/DoubleAdder$SerializationProxy;->value:D
-Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;-><init>(JLjava/util/function/LongBinaryOperator;J)V
-Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;->function:Ljava/util/function/LongBinaryOperator;
-Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;->identity:J
-Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;->value:J
-Ljava/util/concurrent/atomic/LongAccumulator;->function:Ljava/util/function/LongBinaryOperator;
-Ljava/util/concurrent/atomic/LongAccumulator;->identity:J
-Ljava/util/concurrent/atomic/LongAdder$SerializationProxy;-><init>(Ljava/util/concurrent/atomic/LongAdder;)V
-Ljava/util/concurrent/atomic/LongAdder$SerializationProxy;->value:J
-Ljava/util/concurrent/atomic/Striped64$Cell;-><init>(J)V
-Ljava/util/concurrent/atomic/Striped64$Cell;->cas(JJ)Z
-Ljava/util/concurrent/atomic/Striped64$Cell;->reset()V
-Ljava/util/concurrent/atomic/Striped64$Cell;->reset(J)V
-Ljava/util/concurrent/atomic/Striped64$Cell;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/Striped64$Cell;->VALUE:J
-Ljava/util/concurrent/atomic/Striped64$Cell;->value:J
-Ljava/util/concurrent/atomic/Striped64;-><init>()V
-Ljava/util/concurrent/atomic/Striped64;->advanceProbe(I)I
-Ljava/util/concurrent/atomic/Striped64;->apply(Ljava/util/function/DoubleBinaryOperator;JD)J
-Ljava/util/concurrent/atomic/Striped64;->BASE:J
-Ljava/util/concurrent/atomic/Striped64;->base:J
-Ljava/util/concurrent/atomic/Striped64;->casBase(JJ)Z
-Ljava/util/concurrent/atomic/Striped64;->casCellsBusy()Z
-Ljava/util/concurrent/atomic/Striped64;->cells:[Ljava/util/concurrent/atomic/Striped64$Cell;
-Ljava/util/concurrent/atomic/Striped64;->cellsBusy:I
-Ljava/util/concurrent/atomic/Striped64;->CELLSBUSY:J
-Ljava/util/concurrent/atomic/Striped64;->doubleAccumulate(DLjava/util/function/DoubleBinaryOperator;Z)V
-Ljava/util/concurrent/atomic/Striped64;->getProbe()I
-Ljava/util/concurrent/atomic/Striped64;->longAccumulate(JLjava/util/function/LongBinaryOperator;Z)V
-Ljava/util/concurrent/atomic/Striped64;->NCPU:I
-Ljava/util/concurrent/atomic/Striped64;->PROBE:J
-Ljava/util/concurrent/atomic/Striped64;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CompletableFuture$AltResult;-><init>(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/CompletableFuture$AltResult;->ex:Ljava/lang/Throwable;
-Ljava/util/concurrent/CompletableFuture$AsyncRun;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
-Ljava/util/concurrent/CompletableFuture$AsyncRun;->dep:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$AsyncRun;->fn:Ljava/lang/Runnable;
-Ljava/util/concurrent/CompletableFuture$AsyncRun;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/CompletableFuture$AsyncSupply;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Supplier;)V
-Ljava/util/concurrent/CompletableFuture$AsyncSupply;->dep:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$AsyncSupply;->fn:Ljava/util/function/Supplier;
-Ljava/util/concurrent/CompletableFuture$AsyncSupply;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/CompletableFuture$BiAccept;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;)V
-Ljava/util/concurrent/CompletableFuture$BiAccept;->fn:Ljava/util/function/BiConsumer;
-Ljava/util/concurrent/CompletableFuture$BiAccept;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiApply;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/CompletableFuture$BiApply;->fn:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/CompletableFuture$BiApply;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiCompletion;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
-Ljava/util/concurrent/CompletableFuture$BiCompletion;->snd:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiRelay;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
-Ljava/util/concurrent/CompletableFuture$BiRelay;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiRun;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
-Ljava/util/concurrent/CompletableFuture$BiRun;->fn:Ljava/lang/Runnable;
-Ljava/util/concurrent/CompletableFuture$BiRun;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$Canceller;-><init>(Ljava/util/concurrent/Future;)V
-Ljava/util/concurrent/CompletableFuture$Canceller;->accept(Ljava/lang/Object;Ljava/lang/Throwable;)V
-Ljava/util/concurrent/CompletableFuture$Canceller;->f:Ljava/util/concurrent/Future;
-Ljava/util/concurrent/CompletableFuture$CoCompletion;-><init>(Ljava/util/concurrent/CompletableFuture$BiCompletion;)V
-Ljava/util/concurrent/CompletableFuture$CoCompletion;->base:Ljava/util/concurrent/CompletableFuture$BiCompletion;
-Ljava/util/concurrent/CompletableFuture$CoCompletion;->isLive()Z
-Ljava/util/concurrent/CompletableFuture$CoCompletion;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$Completion;-><init>()V
-Ljava/util/concurrent/CompletableFuture$Completion;->isLive()Z
-Ljava/util/concurrent/CompletableFuture$Completion;->next:Ljava/util/concurrent/CompletableFuture$Completion;
-Ljava/util/concurrent/CompletableFuture$Completion;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/CompletableFuture$Completion;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$DelayedCompleter;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Object;)V
-Ljava/util/concurrent/CompletableFuture$DelayedCompleter;->f:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$DelayedCompleter;->u:Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture$DelayedExecutor;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Executor;)V
-Ljava/util/concurrent/CompletableFuture$DelayedExecutor;->delay:J
-Ljava/util/concurrent/CompletableFuture$DelayedExecutor;->executor:Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture$DelayedExecutor;->unit:Ljava/util/concurrent/TimeUnit;
-Ljava/util/concurrent/CompletableFuture$Delayer$DaemonThreadFactory;-><init>()V
-Ljava/util/concurrent/CompletableFuture$Delayer;-><init>()V
-Ljava/util/concurrent/CompletableFuture$Delayer;->delay(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
-Ljava/util/concurrent/CompletableFuture$Delayer;->delayer:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
-Ljava/util/concurrent/CompletableFuture$MinimalStage;-><init>()V
-Ljava/util/concurrent/CompletableFuture$MinimalStage;-><init>(Ljava/lang/Object;)V
-Ljava/util/concurrent/CompletableFuture$MinimalStage;->completeAsync(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$MinimalStage;->completeAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$MinimalStage;->completeOnTimeout(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$MinimalStage;->newIncompleteFuture()Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$MinimalStage;->orTimeout(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrAccept;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/CompletableFuture$OrAccept;->fn:Ljava/util/function/Consumer;
-Ljava/util/concurrent/CompletableFuture$OrAccept;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrApply;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
-Ljava/util/concurrent/CompletableFuture$OrApply;->fn:Ljava/util/function/Function;
-Ljava/util/concurrent/CompletableFuture$OrApply;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrRelay;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
-Ljava/util/concurrent/CompletableFuture$OrRelay;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrRun;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
-Ljava/util/concurrent/CompletableFuture$OrRun;->fn:Ljava/lang/Runnable;
-Ljava/util/concurrent/CompletableFuture$OrRun;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V
-Ljava/util/concurrent/CompletableFuture$Signaller;->deadline:J
-Ljava/util/concurrent/CompletableFuture$Signaller;->interrupted:Z
-Ljava/util/concurrent/CompletableFuture$Signaller;->interruptible:Z
-Ljava/util/concurrent/CompletableFuture$Signaller;->isLive()Z
-Ljava/util/concurrent/CompletableFuture$Signaller;->nanos:J
-Ljava/util/concurrent/CompletableFuture$Signaller;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/CompletableFuture$Signaller;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$TaskSubmitter;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-Ljava/util/concurrent/CompletableFuture$TaskSubmitter;->action:Ljava/lang/Runnable;
-Ljava/util/concurrent/CompletableFuture$TaskSubmitter;->executor:Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture$ThreadPerTaskExecutor;-><init>()V
-Ljava/util/concurrent/CompletableFuture$Timeout;-><init>(Ljava/util/concurrent/CompletableFuture;)V
-Ljava/util/concurrent/CompletableFuture$Timeout;->f:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniAccept;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/CompletableFuture$UniAccept;->fn:Ljava/util/function/Consumer;
-Ljava/util/concurrent/CompletableFuture$UniAccept;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniApply;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
-Ljava/util/concurrent/CompletableFuture$UniApply;->fn:Ljava/util/function/Function;
-Ljava/util/concurrent/CompletableFuture$UniApply;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniCompletion;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
-Ljava/util/concurrent/CompletableFuture$UniCompletion;->claim()Z
-Ljava/util/concurrent/CompletableFuture$UniCompletion;->dep:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniCompletion;->executor:Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture$UniCompletion;->isLive()Z
-Ljava/util/concurrent/CompletableFuture$UniCompletion;->src:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniCompose;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
-Ljava/util/concurrent/CompletableFuture$UniCompose;->fn:Ljava/util/function/Function;
-Ljava/util/concurrent/CompletableFuture$UniCompose;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniExceptionally;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
-Ljava/util/concurrent/CompletableFuture$UniExceptionally;->fn:Ljava/util/function/Function;
-Ljava/util/concurrent/CompletableFuture$UniExceptionally;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniHandle;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/CompletableFuture$UniHandle;->fn:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/CompletableFuture$UniHandle;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniRelay;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
-Ljava/util/concurrent/CompletableFuture$UniRelay;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniRun;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
-Ljava/util/concurrent/CompletableFuture$UniRun;->fn:Ljava/lang/Runnable;
-Ljava/util/concurrent/CompletableFuture$UniRun;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniWhenComplete;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;)V
-Ljava/util/concurrent/CompletableFuture$UniWhenComplete;->fn:Ljava/util/function/BiConsumer;
-Ljava/util/concurrent/CompletableFuture$UniWhenComplete;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;-><init>(Ljava/lang/Object;)V
-Ljava/util/concurrent/CompletableFuture;->andTree([Ljava/util/concurrent/CompletableFuture;II)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->ASYNC:I
-Ljava/util/concurrent/CompletableFuture;->asyncRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->asyncSupplyStage(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->ASYNC_POOL:Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture;->biAccept(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture$BiAccept;)Z
-Ljava/util/concurrent/CompletableFuture;->biAcceptStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->biApply(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;Ljava/util/concurrent/CompletableFuture$BiApply;)Z
-Ljava/util/concurrent/CompletableFuture;->biApplyStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->bipush(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture$BiCompletion;)V
-Ljava/util/concurrent/CompletableFuture;->biRelay(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)Z
-Ljava/util/concurrent/CompletableFuture;->biRun(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/util/concurrent/CompletableFuture$BiRun;)Z
-Ljava/util/concurrent/CompletableFuture;->biRunStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->casStack(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)Z
-Ljava/util/concurrent/CompletableFuture;->cleanStack()V
-Ljava/util/concurrent/CompletableFuture;->completeAsync(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->completeAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->completedStage(Ljava/lang/Object;)Ljava/util/concurrent/CompletionStage;
-Ljava/util/concurrent/CompletableFuture;->completeNull()Z
-Ljava/util/concurrent/CompletableFuture;->completeOnTimeout(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->completeRelay(Ljava/lang/Object;)Z
-Ljava/util/concurrent/CompletableFuture;->completeThrowable(Ljava/lang/Throwable;)Z
-Ljava/util/concurrent/CompletableFuture;->completeThrowable(Ljava/lang/Throwable;Ljava/lang/Object;)Z
-Ljava/util/concurrent/CompletableFuture;->completeValue(Ljava/lang/Object;)Z
-Ljava/util/concurrent/CompletableFuture;->copy()Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->defaultExecutor()Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture;->delayedExecutor(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture;->delayedExecutor(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture;->encodeOutcome(Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->encodeRelay(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->encodeThrowable(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture$AltResult;
-Ljava/util/concurrent/CompletableFuture;->encodeThrowable(Ljava/lang/Throwable;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->encodeValue(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->failedFuture(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->failedStage(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletionStage;
-Ljava/util/concurrent/CompletableFuture;->internalComplete(Ljava/lang/Object;)Z
-Ljava/util/concurrent/CompletableFuture;->lazySetNext(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)V
-Ljava/util/concurrent/CompletableFuture;->minimalCompletionStage()Ljava/util/concurrent/CompletionStage;
-Ljava/util/concurrent/CompletableFuture;->NESTED:I
-Ljava/util/concurrent/CompletableFuture;->newIncompleteFuture()Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->NEXT:J
-Ljava/util/concurrent/CompletableFuture;->NIL:Ljava/util/concurrent/CompletableFuture$AltResult;
-Ljava/util/concurrent/CompletableFuture;->orAccept(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture$OrAccept;)Z
-Ljava/util/concurrent/CompletableFuture;->orAcceptStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->orApply(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$OrApply;)Z
-Ljava/util/concurrent/CompletableFuture;->orApplyStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->orpush(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture$BiCompletion;)V
-Ljava/util/concurrent/CompletableFuture;->orRelay(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)Z
-Ljava/util/concurrent/CompletableFuture;->orRun(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/util/concurrent/CompletableFuture$OrRun;)Z
-Ljava/util/concurrent/CompletableFuture;->orRunStage(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletionStage;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->orTimeout(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->orTree([Ljava/util/concurrent/CompletableFuture;II)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->postComplete()V
-Ljava/util/concurrent/CompletableFuture;->postFire(Ljava/util/concurrent/CompletableFuture;I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->postFire(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->push(Ljava/util/concurrent/CompletableFuture$UniCompletion;)V
-Ljava/util/concurrent/CompletableFuture;->pushStack(Ljava/util/concurrent/CompletableFuture$Completion;)V
-Ljava/util/concurrent/CompletableFuture;->reportGet(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->reportJoin(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->RESULT:J
-Ljava/util/concurrent/CompletableFuture;->result:Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->screenExecutor(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture;->SPINS:I
-Ljava/util/concurrent/CompletableFuture;->STACK:J
-Ljava/util/concurrent/CompletableFuture;->stack:Ljava/util/concurrent/CompletableFuture$Completion;
-Ljava/util/concurrent/CompletableFuture;->SYNC:I
-Ljava/util/concurrent/CompletableFuture;->timedGet(J)Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture;->tryPushStack(Ljava/util/concurrent/CompletableFuture$Completion;)Z
-Ljava/util/concurrent/CompletableFuture;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CompletableFuture;->uniAccept(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture$UniAccept;)Z
-Ljava/util/concurrent/CompletableFuture;->uniAcceptStage(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniApply(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$UniApply;)Z
-Ljava/util/concurrent/CompletableFuture;->uniApplyStage(Ljava/util/concurrent/Executor;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniAsMinimalStage()Ljava/util/concurrent/CompletableFuture$MinimalStage;
-Ljava/util/concurrent/CompletableFuture;->uniCompose(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$UniCompose;)Z
-Ljava/util/concurrent/CompletableFuture;->uniComposeStage(Ljava/util/concurrent/Executor;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniCopyStage()Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniExceptionally(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;Ljava/util/concurrent/CompletableFuture$UniExceptionally;)Z
-Ljava/util/concurrent/CompletableFuture;->uniExceptionallyStage(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniHandle(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;Ljava/util/concurrent/CompletableFuture$UniHandle;)Z
-Ljava/util/concurrent/CompletableFuture;->uniHandleStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniRelay(Ljava/util/concurrent/CompletableFuture;)Z
-Ljava/util/concurrent/CompletableFuture;->uniRun(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/util/concurrent/CompletableFuture$UniRun;)Z
-Ljava/util/concurrent/CompletableFuture;->uniRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->uniWhenComplete(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture$UniWhenComplete;)Z
-Ljava/util/concurrent/CompletableFuture;->uniWhenCompleteStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture;->USE_COMMON_POOL:Z
-Ljava/util/concurrent/CompletableFuture;->waitingGet(Z)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasNext()Z
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->lastReturned:Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->map:Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->remove()V
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->baseIndex:I
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->baseLimit:I
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->baseSize:I
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->batch:I
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->index:I
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->next:Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->pushState([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->recoverState(I)V
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->getMap()Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->map:Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->OOME_MSG:Ljava/lang/String;
-Ljava/util/concurrent/ConcurrentHashMap$CounterCell;-><init>(J)V
-Ljava/util/concurrent/ConcurrentHashMap$CounterCell;->value:J
-Ljava/util/concurrent/ConcurrentHashMap$EntryIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->add(Ljava/util/Map$Entry;)Z
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->addAll(Ljava/util/Collection;)Z
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJLjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->est:J
-Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->map:Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiConsumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask;->action:Ljava/util/function/BiConsumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiFunction;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;->transformer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;)V
-Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;->nextTable:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$KeyIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$KeySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V
-Ljava/util/concurrent/ConcurrentHashMap$KeySetView;->value:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJ)V
-Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;->est:J
-Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentHashMap$MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapEntry;->key:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapEntry;->map:Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/util/concurrent/ConcurrentHashMap$MapEntry;->val:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;Ljava/util/function/Function;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;Ljava/util/function/ToDoubleFunction;DLjava/util/function/DoubleBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->basis:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->result:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->transformer:Ljava/util/function/ToDoubleFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;Ljava/util/function/ToIntFunction;ILjava/util/function/IntBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->basis:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->result:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->transformer:Ljava/util/function/ToIntFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;Ljava/util/function/ToLongFunction;JLjava/util/function/LongBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->basis:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->result:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->transformer:Ljava/util/function/ToLongFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;Ljava/util/function/Function;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;Ljava/util/function/ToDoubleFunction;DLjava/util/function/DoubleBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->basis:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->result:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->transformer:Ljava/util/function/ToDoubleFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;Ljava/util/function/ToIntFunction;ILjava/util/function/IntBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->basis:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->result:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->transformer:Ljava/util/function/ToIntFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;Ljava/util/function/ToLongFunction;JLjava/util/function/LongBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->basis:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->result:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->transformer:Ljava/util/function/ToLongFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;Ljava/util/function/BiFunction;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->transformer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;Ljava/util/function/ToDoubleBiFunction;DLjava/util/function/DoubleBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->basis:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->result:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->transformer:Ljava/util/function/ToDoubleBiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;Ljava/util/function/ToIntBiFunction;ILjava/util/function/IntBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->basis:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->result:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->transformer:Ljava/util/function/ToIntBiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;Ljava/util/function/ToLongBiFunction;JLjava/util/function/LongBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->basis:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->result:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->transformer:Ljava/util/function/ToLongBiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;Ljava/util/function/Function;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;Ljava/util/function/ToDoubleFunction;DLjava/util/function/DoubleBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->basis:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->reducer:Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->result:D
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->transformer:Ljava/util/function/ToDoubleFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;Ljava/util/function/ToIntFunction;ILjava/util/function/IntBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->basis:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->reducer:Ljava/util/function/IntBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->result:I
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->transformer:Ljava/util/function/ToIntFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;Ljava/util/function/ToLongFunction;JLjava/util/function/LongBinaryOperator;)V
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->basis:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->reducer:Ljava/util/function/LongBinaryOperator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->result:J
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->transformer:Ljava/util/function/ToLongFunction;
-Ljava/util/concurrent/ConcurrentHashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;)V
-Ljava/util/concurrent/ConcurrentHashMap$Node;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$Node;->hash:I
-Ljava/util/concurrent/ConcurrentHashMap$Node;->key:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$Node;->next:Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$Node;->val:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->result:Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;Ljava/util/function/BiFunction;)V
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->reducer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReservationNode;-><init>()V
-Ljava/util/concurrent/ConcurrentHashMap$ReservationNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/concurrent/atomic/AtomicReference;)V
-Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;->searchFunction:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/concurrent/atomic/AtomicReference;)V
-Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;->searchFunction:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiFunction;Ljava/util/concurrent/atomic/AtomicReference;)V
-Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;->searchFunction:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/concurrent/atomic/AtomicReference;)V
-Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;->searchFunction:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$Segment;-><init>(F)V
-Ljava/util/concurrent/ConcurrentHashMap$Segment;->loadFactor:F
-Ljava/util/concurrent/ConcurrentHashMap$TableStack;-><init>()V
-Ljava/util/concurrent/ConcurrentHashMap$TableStack;->index:I
-Ljava/util/concurrent/ConcurrentHashMap$TableStack;->length:I
-Ljava/util/concurrent/ConcurrentHashMap$TableStack;->next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
-Ljava/util/concurrent/ConcurrentHashMap$TableStack;->tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;III)V
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->baseIndex:I
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->baseLimit:I
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->baseSize:I
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->index:I
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->next:Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->pushState([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->recoverState(I)V
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;->tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;-><init>(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->balanceDeletion(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->balanceInsertion(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->checkInvariants(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Z
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->contendedLock()V
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->first:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->lockRoot()V
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->lockState:I
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->LOCKSTATE:J
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->putTreeVal(ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->READER:I
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->removeTreeNode(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Z
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->root:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateLeft(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateRight(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->tieBreakOrder(Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->unlockRoot()V
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->WAITER:I
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->waiter:Ljava/lang/Thread;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->WRITER:I
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->findTreeNode(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->left:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->parent:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->prev:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->red:Z
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->right:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJ)V
-Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;->est:J
-Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->add(Ljava/lang/Object;)Z
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->addAll(Ljava/util/Collection;)Z
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentHashMap;->ABASE:I
-Ljava/util/concurrent/ConcurrentHashMap;->addCount(JI)V
-Ljava/util/concurrent/ConcurrentHashMap;->ASHIFT:I
-Ljava/util/concurrent/ConcurrentHashMap;->BASECOUNT:J
-Ljava/util/concurrent/ConcurrentHashMap;->baseCount:J
-Ljava/util/concurrent/ConcurrentHashMap;->batchFor(J)I
-Ljava/util/concurrent/ConcurrentHashMap;->casTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)Z
-Ljava/util/concurrent/ConcurrentHashMap;->cellsBusy:I
-Ljava/util/concurrent/ConcurrentHashMap;->CELLSBUSY:J
-Ljava/util/concurrent/ConcurrentHashMap;->CELLVALUE:J
-Ljava/util/concurrent/ConcurrentHashMap;->comparableClassFor(Ljava/lang/Object;)Ljava/lang/Class;
-Ljava/util/concurrent/ConcurrentHashMap;->compareComparables(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/concurrent/ConcurrentHashMap;->counterCells:[Ljava/util/concurrent/ConcurrentHashMap$CounterCell;
-Ljava/util/concurrent/ConcurrentHashMap;->DEFAULT_CAPACITY:I
-Ljava/util/concurrent/ConcurrentHashMap;->DEFAULT_CONCURRENCY_LEVEL:I
-Ljava/util/concurrent/ConcurrentHashMap;->entrySet:Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;
-Ljava/util/concurrent/ConcurrentHashMap;->fullAddCount(JZ)V
-Ljava/util/concurrent/ConcurrentHashMap;->HASH_BITS:I
-Ljava/util/concurrent/ConcurrentHashMap;->helpTransfer([Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap;->keySet:Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
-Ljava/util/concurrent/ConcurrentHashMap;->LOAD_FACTOR:F
-Ljava/util/concurrent/ConcurrentHashMap;->MAXIMUM_CAPACITY:I
-Ljava/util/concurrent/ConcurrentHashMap;->MAX_ARRAY_SIZE:I
-Ljava/util/concurrent/ConcurrentHashMap;->MAX_RESIZERS:I
-Ljava/util/concurrent/ConcurrentHashMap;->MIN_TRANSFER_STRIDE:I
-Ljava/util/concurrent/ConcurrentHashMap;->MIN_TREEIFY_CAPACITY:I
-Ljava/util/concurrent/ConcurrentHashMap;->MOVED:I
-Ljava/util/concurrent/ConcurrentHashMap;->NCPU:I
-Ljava/util/concurrent/ConcurrentHashMap;->nextTable:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap;->removeEntryIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentHashMap;->removeValueIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentHashMap;->replaceNode(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap;->RESERVED:I
-Ljava/util/concurrent/ConcurrentHashMap;->resizeStamp(I)I
-Ljava/util/concurrent/ConcurrentHashMap;->RESIZE_STAMP_BITS:I
-Ljava/util/concurrent/ConcurrentHashMap;->RESIZE_STAMP_SHIFT:I
-Ljava/util/concurrent/ConcurrentHashMap;->setTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;)V
-Ljava/util/concurrent/ConcurrentHashMap;->sizeCtl:I
-Ljava/util/concurrent/ConcurrentHashMap;->SIZECTL:J
-Ljava/util/concurrent/ConcurrentHashMap;->spread(I)I
-Ljava/util/concurrent/ConcurrentHashMap;->sumCount()J
-Ljava/util/concurrent/ConcurrentHashMap;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap;->table:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap;->tableSizeFor(I)I
-Ljava/util/concurrent/ConcurrentHashMap;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
-Ljava/util/concurrent/ConcurrentHashMap;->transferIndex:I
-Ljava/util/concurrent/ConcurrentHashMap;->TRANSFERINDEX:J
-Ljava/util/concurrent/ConcurrentHashMap;->TREEBIN:I
-Ljava/util/concurrent/ConcurrentHashMap;->treeifyBin([Ljava/util/concurrent/ConcurrentHashMap$Node;I)V
-Ljava/util/concurrent/ConcurrentHashMap;->TREEIFY_THRESHOLD:I
-Ljava/util/concurrent/ConcurrentHashMap;->tryPresize(I)V
-Ljava/util/concurrent/ConcurrentHashMap;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentHashMap;->untreeify(Ljava/util/concurrent/ConcurrentHashMap$Node;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap;->UNTREEIFY_THRESHOLD:I
-Ljava/util/concurrent/ConcurrentHashMap;->values:Ljava/util/concurrent/ConcurrentHashMap$ValuesView;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->advance()V
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->lastRet:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->nextItem:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->nextNode:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->batch:I
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->current:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->exhausted:Z
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->MAX_BATCH:I
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->queue:Ljava/util/concurrent/ConcurrentLinkedDeque;
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Itr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Itr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>()V
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>(Ljava/lang/Object;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->casNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->casPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->ITEM:J
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->item:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->NEXT:J
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->next:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->PREV:J
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->prev:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->casHead(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque;->casTail(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->HEAD:J
-Ljava/util/concurrent/ConcurrentLinkedDeque;->head:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->HOPS:I
-Ljava/util/concurrent/ConcurrentLinkedDeque;->initHeadTail(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->last()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->linkFirst(Ljava/lang/Object;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->nextTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->NEXT_TERMINATOR:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->pred(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->prevTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->PREV_TERMINATOR:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->screenNullResult(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedPredecessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedSuccessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->succ(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->TAIL:J
-Ljava/util/concurrent/ConcurrentLinkedDeque;->tail:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentLinkedDeque;->unlink(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->unlinkFirst(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->unlinkLast(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->updateHead()V
-Ljava/util/concurrent/ConcurrentLinkedDeque;->updateTail()V
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->batch:I
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->current:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->exhausted:Z
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->MAX_BATCH:I
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->queue:Ljava/util/concurrent/ConcurrentLinkedQueue;
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;->lastRet:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;->nextItem:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;->nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>()V
-Ljava/util/concurrent/ConcurrentLinkedQueue$Node;->item:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Node;->next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->casHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedQueue;->casItem(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/concurrent/ConcurrentLinkedQueue;->casNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedQueue;->casTail(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
-Ljava/util/concurrent/ConcurrentLinkedQueue;->first()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->HEAD:J
-Ljava/util/concurrent/ConcurrentLinkedQueue;->head:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->ITEM:J
-Ljava/util/concurrent/ConcurrentLinkedQueue;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
-Ljava/util/concurrent/ConcurrentLinkedQueue;->newNode(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->NEXT:J
-Ljava/util/concurrent/ConcurrentLinkedQueue;->succ(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->TAIL:J
-Ljava/util/concurrent/ConcurrentLinkedQueue;->tail:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentLinkedQueue;->updateHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->comparator:Ljava/util/Comparator;
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->current:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->est:I
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->estimateSize()J
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->fence:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->row:Ljava/util/concurrent/ConcurrentSkipListMap$Index;
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;I)V
-Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;->level:I
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->casRight(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->down:Ljava/util/concurrent/ConcurrentSkipListMap$Index;
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->indexesDeletedNode()Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->link(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->node:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->RIGHT:J
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->right:Ljava/util/concurrent/ConcurrentSkipListMap$Index;
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;->unlink(Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->advance()V
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->lastReturned:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->next:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->nextValue:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->ceiling(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->floor(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->headSet(Ljava/lang/Object;)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->headSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->higher(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->lower(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->subSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->appendMarker(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->casNext(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->casValue(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->createSnapshot()Ljava/util/AbstractMap$SimpleImmutableEntry;
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->getValidValue()Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->helpDelete(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->isBaseHeader()Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->isMarker()Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->key:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->NEXT:J
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->next:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->VALUE:J
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;->value:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->advance()V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->ascend()V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->descend()V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->lastReturned:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->next:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->nextValue:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;Ljava/lang/Object;ZLjava/lang/Object;ZZ)V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->checkKeyBounds(Ljava/lang/Object;Ljava/util/Comparator;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->entrySetView:Ljava/util/Set;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->getNearEntry(Ljava/lang/Object;I)Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->getNearKey(Ljava/lang/Object;I)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->hi:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->highestEntry()Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->highestKey()Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->hiInclusive:Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->hiNode(Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->inBounds(Ljava/lang/Object;Ljava/util/Comparator;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->isBeforeEnd(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/Comparator;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->isDescending:Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->keySetView:Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->lo:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->loInclusive:Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->loNode(Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->lowestEntry()Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->lowestKey()Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->m:Ljava/util/concurrent/ConcurrentSkipListMap;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->newSubMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->removeHighest()Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->removeLowest()Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->tooHigh(Ljava/lang/Object;Ljava/util/Comparator;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->tooLow(Ljava/lang/Object;Ljava/util/Comparator;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->valuesView:Ljava/util/Collection;
-Ljava/util/concurrent/ConcurrentSkipListMap$Values;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$Values;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
-Ljava/util/concurrent/ConcurrentSkipListMap$Values;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap;->BASE_HEADER:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap;->buildFromSorted(Ljava/util/SortedMap;)V
-Ljava/util/concurrent/ConcurrentSkipListMap;->casHead(Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap;->clearIndexToFirst()V
-Ljava/util/concurrent/ConcurrentSkipListMap;->comparator:Ljava/util/Comparator;
-Ljava/util/concurrent/ConcurrentSkipListMap;->cpr(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/concurrent/ConcurrentSkipListMap;->descendingMap:Ljava/util/concurrent/ConcurrentNavigableMap;
-Ljava/util/concurrent/ConcurrentSkipListMap;->doGet(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap;->doPut(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap;->doRemove(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap;->doRemoveFirstEntry()Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap;->doRemoveLastEntry()Ljava/util/Map$Entry;
-Ljava/util/concurrent/ConcurrentSkipListMap;->entrySet:Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;
-Ljava/util/concurrent/ConcurrentSkipListMap;->entrySpliterator()Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;
-Ljava/util/concurrent/ConcurrentSkipListMap;->EQ:I
-Ljava/util/concurrent/ConcurrentSkipListMap;->findFirst()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap;->findLast()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap;->findNear(Ljava/lang/Object;ILjava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap;->findNode(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap;->findPredecessor(Ljava/lang/Object;Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap;->findPredecessorOfLast()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap;->getNear(Ljava/lang/Object;I)Ljava/util/AbstractMap$SimpleImmutableEntry;
-Ljava/util/concurrent/ConcurrentSkipListMap;->GT:I
-Ljava/util/concurrent/ConcurrentSkipListMap;->HEAD:J
-Ljava/util/concurrent/ConcurrentSkipListMap;->head:Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;
-Ljava/util/concurrent/ConcurrentSkipListMap;->initialize()V
-Ljava/util/concurrent/ConcurrentSkipListMap;->keySet:Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;
-Ljava/util/concurrent/ConcurrentSkipListMap;->keySpliterator()Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;
-Ljava/util/concurrent/ConcurrentSkipListMap;->LT:I
-Ljava/util/concurrent/ConcurrentSkipListMap;->removeEntryIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap;->removeValueIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap;->toList(Ljava/util/Collection;)Ljava/util/List;
-Ljava/util/concurrent/ConcurrentSkipListMap;->tryReduceLevel()V
-Ljava/util/concurrent/ConcurrentSkipListMap;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ConcurrentSkipListMap;->values:Ljava/util/concurrent/ConcurrentSkipListMap$Values;
-Ljava/util/concurrent/ConcurrentSkipListMap;->valueSpliterator()Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;
-Ljava/util/concurrent/ConcurrentSkipListSet;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
-Ljava/util/concurrent/ConcurrentSkipListSet;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
-Ljava/util/concurrent/ConcurrentSkipListSet;->MAP:J
-Ljava/util/concurrent/ConcurrentSkipListSet;->setMap(Ljava/util/concurrent/ConcurrentNavigableMap;)V
-Ljava/util/concurrent/ConcurrentSkipListSet;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V
-Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->cursor:I
-Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->snapshot:[Ljava/lang/Object;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;-><init>(Ljava/util/concurrent/CopyOnWriteArrayList;II)V
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->checkForComodification()V
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->expectedArray:[Ljava/lang/Object;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->l:Ljava/util/concurrent/CopyOnWriteArrayList;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->offset:I
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->rangeCheck(I)V
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->size:I
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;-><init>(Ljava/util/List;III)V
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;->it:Ljava/util/ListIterator;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;->offset:I
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;->size:I
-Ljava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;[Ljava/lang/Object;)Z
-Ljava/util/concurrent/CopyOnWriteArrayList;->get([Ljava/lang/Object;I)Ljava/lang/Object;
-Ljava/util/concurrent/CopyOnWriteArrayList;->getArray()[Ljava/lang/Object;
-Ljava/util/concurrent/CopyOnWriteArrayList;->indexOf(Ljava/lang/Object;[Ljava/lang/Object;II)I
-Ljava/util/concurrent/CopyOnWriteArrayList;->lastIndexOf(Ljava/lang/Object;[Ljava/lang/Object;I)I
-Ljava/util/concurrent/CopyOnWriteArrayList;->LOCK:J
-Ljava/util/concurrent/CopyOnWriteArrayList;->lock:Ljava/lang/Object;
-Ljava/util/concurrent/CopyOnWriteArrayList;->outOfBounds(II)Ljava/lang/String;
-Ljava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;[Ljava/lang/Object;I)Z
-Ljava/util/concurrent/CopyOnWriteArrayList;->removeRange(II)V
-Ljava/util/concurrent/CopyOnWriteArrayList;->resetLock()V
-Ljava/util/concurrent/CopyOnWriteArrayList;->setArray([Ljava/lang/Object;)V
-Ljava/util/concurrent/CopyOnWriteArrayList;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CopyOnWriteArraySet;->compareSets([Ljava/lang/Object;Ljava/util/Set;)I
-Ljava/util/concurrent/CountDownLatch$Sync;-><init>(I)V
-Ljava/util/concurrent/CountDownLatch$Sync;->getCount()I
-Ljava/util/concurrent/CountDownLatch;->sync:Ljava/util/concurrent/CountDownLatch$Sync;
-Ljava/util/concurrent/CountedCompleter;->completer:Ljava/util/concurrent/CountedCompleter;
-Ljava/util/concurrent/CountedCompleter;->internalPropagateException(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/CountedCompleter;->pending:I
-Ljava/util/concurrent/CountedCompleter;->PENDING:J
-Ljava/util/concurrent/CountedCompleter;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CyclicBarrier$Generation;-><init>()V
-Ljava/util/concurrent/CyclicBarrier$Generation;->broken:Z
-Ljava/util/concurrent/CyclicBarrier;->barrierCommand:Ljava/lang/Runnable;
-Ljava/util/concurrent/CyclicBarrier;->breakBarrier()V
-Ljava/util/concurrent/CyclicBarrier;->count:I
-Ljava/util/concurrent/CyclicBarrier;->dowait(ZJ)I
-Ljava/util/concurrent/CyclicBarrier;->generation:Ljava/util/concurrent/CyclicBarrier$Generation;
-Ljava/util/concurrent/CyclicBarrier;->lock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/CyclicBarrier;->nextGeneration()V
-Ljava/util/concurrent/CyclicBarrier;->parties:I
-Ljava/util/concurrent/CyclicBarrier;->trip:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/DelayQueue$Itr;->array:[Ljava/lang/Object;
-Ljava/util/concurrent/DelayQueue$Itr;->cursor:I
-Ljava/util/concurrent/DelayQueue$Itr;->lastRet:I
-Ljava/util/concurrent/DelayQueue;->available:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/DelayQueue;->leader:Ljava/lang/Thread;
-Ljava/util/concurrent/DelayQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/DelayQueue;->peekExpired()Ljava/util/concurrent/Delayed;
-Ljava/util/concurrent/DelayQueue;->q:Ljava/util/PriorityQueue;
-Ljava/util/concurrent/DelayQueue;->removeEQ(Ljava/lang/Object;)V
-Ljava/util/concurrent/Exchanger$Node;-><init>()V
-Ljava/util/concurrent/Exchanger$Node;->bound:I
-Ljava/util/concurrent/Exchanger$Node;->collides:I
-Ljava/util/concurrent/Exchanger$Node;->hash:I
-Ljava/util/concurrent/Exchanger$Node;->index:I
-Ljava/util/concurrent/Exchanger$Node;->item:Ljava/lang/Object;
-Ljava/util/concurrent/Exchanger$Node;->match:Ljava/lang/Object;
-Ljava/util/concurrent/Exchanger$Node;->parked:Ljava/lang/Thread;
-Ljava/util/concurrent/Exchanger$Participant;-><init>()V
-Ljava/util/concurrent/Exchanger;->ABASE:I
-Ljava/util/concurrent/Exchanger;->arena:[Ljava/util/concurrent/Exchanger$Node;
-Ljava/util/concurrent/Exchanger;->arenaExchange(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/Exchanger;->ASHIFT:I
-Ljava/util/concurrent/Exchanger;->BLOCKER:J
-Ljava/util/concurrent/Exchanger;->bound:I
-Ljava/util/concurrent/Exchanger;->BOUND:J
-Ljava/util/concurrent/Exchanger;->FULL:I
-Ljava/util/concurrent/Exchanger;->MATCH:J
-Ljava/util/concurrent/Exchanger;->MMASK:I
-Ljava/util/concurrent/Exchanger;->NCPU:I
-Ljava/util/concurrent/Exchanger;->NULL_ITEM:Ljava/lang/Object;
-Ljava/util/concurrent/Exchanger;->participant:Ljava/util/concurrent/Exchanger$Participant;
-Ljava/util/concurrent/Exchanger;->SEQ:I
-Ljava/util/concurrent/Exchanger;->SLOT:J
-Ljava/util/concurrent/Exchanger;->slot:Ljava/util/concurrent/Exchanger$Node;
-Ljava/util/concurrent/Exchanger;->slotExchange(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/Exchanger;->SPINS:I
-Ljava/util/concurrent/Exchanger;->TIMED_OUT:Ljava/lang/Object;
-Ljava/util/concurrent/Exchanger;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;-><init>(Ljava/util/concurrent/RunnableFuture;Ljava/util/concurrent/BlockingQueue;)V
-Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;->completionQueue:Ljava/util/concurrent/BlockingQueue;
-Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;->task:Ljava/util/concurrent/Future;
-Ljava/util/concurrent/ExecutorCompletionService;->aes:Ljava/util/concurrent/AbstractExecutorService;
-Ljava/util/concurrent/ExecutorCompletionService;->completionQueue:Ljava/util/concurrent/BlockingQueue;
-Ljava/util/concurrent/ExecutorCompletionService;->executor:Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/ExecutorCompletionService;->newTaskFor(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;
-Ljava/util/concurrent/ExecutorCompletionService;->newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;
-Ljava/util/concurrent/Executors$DefaultThreadFactory;-><init>()V
-Ljava/util/concurrent/Executors$DefaultThreadFactory;->group:Ljava/lang/ThreadGroup;
-Ljava/util/concurrent/Executors$DefaultThreadFactory;->namePrefix:Ljava/lang/String;
-Ljava/util/concurrent/Executors$DefaultThreadFactory;->poolNumber:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/concurrent/Executors$DefaultThreadFactory;->threadNumber:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/concurrent/Executors$DelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V
-Ljava/util/concurrent/Executors$DelegatedExecutorService;->e:Ljava/util/concurrent/ExecutorService;
-Ljava/util/concurrent/Executors$DelegatedScheduledExecutorService;-><init>(Ljava/util/concurrent/ScheduledExecutorService;)V
-Ljava/util/concurrent/Executors$DelegatedScheduledExecutorService;->e:Ljava/util/concurrent/ScheduledExecutorService;
-Ljava/util/concurrent/Executors$FinalizableDelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V
-Ljava/util/concurrent/Executors$PrivilegedCallable;-><init>(Ljava/util/concurrent/Callable;)V
-Ljava/util/concurrent/Executors$PrivilegedCallable;->acc:Ljava/security/AccessControlContext;
-Ljava/util/concurrent/Executors$PrivilegedCallable;->task:Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;-><init>(Ljava/util/concurrent/Callable;)V
-Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;->acc:Ljava/security/AccessControlContext;
-Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;->ccl:Ljava/lang/ClassLoader;
-Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;->task:Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/Executors$PrivilegedThreadFactory;-><init>()V
-Ljava/util/concurrent/Executors$PrivilegedThreadFactory;->acc:Ljava/security/AccessControlContext;
-Ljava/util/concurrent/Executors$PrivilegedThreadFactory;->ccl:Ljava/lang/ClassLoader;
-Ljava/util/concurrent/Executors$RunnableAdapter;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
-Ljava/util/concurrent/Executors$RunnableAdapter;->result:Ljava/lang/Object;
-Ljava/util/concurrent/Executors;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$AuxState;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$AuxState;->indexSeed:J
-Ljava/util/concurrent/ForkJoinPool$AuxState;->stealCount:J
-Ljava/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$EmptyTask;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$EmptyTask;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/ForkJoinPool$InnocuousForkJoinWorkerThreadFactory;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$InnocuousForkJoinWorkerThreadFactory;->innocuousAcc:Ljava/security/AccessControlContext;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;-><init>(Ljava/util/concurrent/ForkJoinPool;Ljava/util/concurrent/ForkJoinWorkerThread;)V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->ABASE:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->array:[Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->ASHIFT:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->base:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->cancelAll()V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->config:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->currentJoin:Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->currentSteal:Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->getPoolIndex()I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->growAndSharedPush(Ljava/util/concurrent/ForkJoinTask;)V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->growArray()[Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->hint:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->INITIAL_QUEUE_CAPACITY:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->isApparentlyUnblocked()Z
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->isEmpty()Z
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->localPollAndExec()V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->localPopAndExec()V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->MAXIMUM_QUEUE_CAPACITY:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->nextLocalTask()Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->nsteals:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->owner:Ljava/util/concurrent/ForkJoinWorkerThread;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->parker:Ljava/lang/Thread;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->peek()Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->poll()Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pollAndExecCC(Ljava/util/concurrent/CountedCompleter;)I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pollAt(I)Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pool:Ljava/util/concurrent/ForkJoinPool;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->pop()Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->popCC(Ljava/util/concurrent/CountedCompleter;I)Ljava/util/concurrent/CountedCompleter;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->push(Ljava/util/concurrent/ForkJoinTask;)V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->qlock:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->QLOCK:J
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->queueSize()I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->runTask(Ljava/util/concurrent/ForkJoinTask;)V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->scanState:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->sharedPush(Ljava/util/concurrent/ForkJoinTask;)I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->stackPred:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->top:I
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->transferStealCount(Ljava/util/concurrent/ForkJoinPool;)V
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->tryRemoveAndExec(Ljava/util/concurrent/ForkJoinTask;)Z
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->trySharedUnpush(Ljava/util/concurrent/ForkJoinTask;)Z
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->tryUnpush(Ljava/util/concurrent/ForkJoinTask;)Z
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ForkJoinPool;-><init>(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;ILjava/lang/String;)V
-Ljava/util/concurrent/ForkJoinPool;->ABASE:I
-Ljava/util/concurrent/ForkJoinPool;->AC_MASK:J
-Ljava/util/concurrent/ForkJoinPool;->AC_SHIFT:I
-Ljava/util/concurrent/ForkJoinPool;->AC_UNIT:J
-Ljava/util/concurrent/ForkJoinPool;->ADD_WORKER:J
-Ljava/util/concurrent/ForkJoinPool;->ASHIFT:I
-Ljava/util/concurrent/ForkJoinPool;->auxState:Ljava/util/concurrent/ForkJoinPool$AuxState;
-Ljava/util/concurrent/ForkJoinPool;->awaitJoin(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
-Ljava/util/concurrent/ForkJoinPool;->awaitWork(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)I
-Ljava/util/concurrent/ForkJoinPool;->checkFactory(Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;)Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
-Ljava/util/concurrent/ForkJoinPool;->checkParallelism(I)I
-Ljava/util/concurrent/ForkJoinPool;->checkPermission()V
-Ljava/util/concurrent/ForkJoinPool;->common:Ljava/util/concurrent/ForkJoinPool;
-Ljava/util/concurrent/ForkJoinPool;->commonSubmitterQueue()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/ForkJoinPool;->COMMON_MAX_SPARES:I
-Ljava/util/concurrent/ForkJoinPool;->COMMON_PARALLELISM:I
-Ljava/util/concurrent/ForkJoinPool;->config:I
-Ljava/util/concurrent/ForkJoinPool;->createWorker(Z)Z
-Ljava/util/concurrent/ForkJoinPool;->CTL:J
-Ljava/util/concurrent/ForkJoinPool;->ctl:J
-Ljava/util/concurrent/ForkJoinPool;->DEFAULT_COMMON_MAX_SPARES:I
-Ljava/util/concurrent/ForkJoinPool;->deregisterWorker(Ljava/util/concurrent/ForkJoinWorkerThread;Ljava/lang/Throwable;)V
-Ljava/util/concurrent/ForkJoinPool;->EVENMASK:I
-Ljava/util/concurrent/ForkJoinPool;->externalHelpComplete(Ljava/util/concurrent/CountedCompleter;I)I
-Ljava/util/concurrent/ForkJoinPool;->externalPush(Ljava/util/concurrent/ForkJoinTask;)V
-Ljava/util/concurrent/ForkJoinPool;->externalSubmit(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool;->factory:Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
-Ljava/util/concurrent/ForkJoinPool;->FIFO_QUEUE:I
-Ljava/util/concurrent/ForkJoinPool;->findNonEmptyStealQueue()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/ForkJoinPool;->getSurplusQueuedTaskCount()I
-Ljava/util/concurrent/ForkJoinPool;->helpComplete(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/CountedCompleter;I)I
-Ljava/util/concurrent/ForkJoinPool;->helpQuiescePool(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
-Ljava/util/concurrent/ForkJoinPool;->helpStealer(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;)V
-Ljava/util/concurrent/ForkJoinPool;->IDLE_TIMEOUT_MS:J
-Ljava/util/concurrent/ForkJoinPool;->inactivate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)V
-Ljava/util/concurrent/ForkJoinPool;->IS_OWNED:I
-Ljava/util/concurrent/ForkJoinPool;->LIFO_QUEUE:I
-Ljava/util/concurrent/ForkJoinPool;->makeCommonPool()Ljava/util/concurrent/ForkJoinPool;
-Ljava/util/concurrent/ForkJoinPool;->MAX_CAP:I
-Ljava/util/concurrent/ForkJoinPool;->MODE_MASK:I
-Ljava/util/concurrent/ForkJoinPool;->modifyThreadPermission:Ljava/lang/RuntimePermission;
-Ljava/util/concurrent/ForkJoinPool;->nextPoolId()I
-Ljava/util/concurrent/ForkJoinPool;->nextTaskFor(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinPool;->POLL_LIMIT:I
-Ljava/util/concurrent/ForkJoinPool;->poolNumberSequence:I
-Ljava/util/concurrent/ForkJoinPool;->quiesceCommonPool()V
-Ljava/util/concurrent/ForkJoinPool;->registerWorker(Ljava/util/concurrent/ForkJoinWorkerThread;)Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/ForkJoinPool;->runState:I
-Ljava/util/concurrent/ForkJoinPool;->RUNSTATE:J
-Ljava/util/concurrent/ForkJoinPool;->runWorker(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
-Ljava/util/concurrent/ForkJoinPool;->scan(Ljava/util/concurrent/ForkJoinPool$WorkQueue;III)I
-Ljava/util/concurrent/ForkJoinPool;->SEED_INCREMENT:I
-Ljava/util/concurrent/ForkJoinPool;->SHUTDOWN:I
-Ljava/util/concurrent/ForkJoinPool;->signalWork()V
-Ljava/util/concurrent/ForkJoinPool;->SMASK:I
-Ljava/util/concurrent/ForkJoinPool;->SPARE_WORKER:I
-Ljava/util/concurrent/ForkJoinPool;->SP_MASK:J
-Ljava/util/concurrent/ForkJoinPool;->SQMASK:I
-Ljava/util/concurrent/ForkJoinPool;->SS_SEQ:I
-Ljava/util/concurrent/ForkJoinPool;->STARTED:I
-Ljava/util/concurrent/ForkJoinPool;->STOP:I
-Ljava/util/concurrent/ForkJoinPool;->TC_MASK:J
-Ljava/util/concurrent/ForkJoinPool;->TC_SHIFT:I
-Ljava/util/concurrent/ForkJoinPool;->TC_UNIT:J
-Ljava/util/concurrent/ForkJoinPool;->TERMINATED:I
-Ljava/util/concurrent/ForkJoinPool;->timedAwaitWork(Ljava/util/concurrent/ForkJoinPool$WorkQueue;J)I
-Ljava/util/concurrent/ForkJoinPool;->TIMEOUT_SLOP_MS:J
-Ljava/util/concurrent/ForkJoinPool;->tryAddWorker(J)V
-Ljava/util/concurrent/ForkJoinPool;->tryCompensate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
-Ljava/util/concurrent/ForkJoinPool;->tryCreateExternalQueue(I)V
-Ljava/util/concurrent/ForkJoinPool;->tryDropSpare(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Z
-Ljava/util/concurrent/ForkJoinPool;->tryExternalUnpush(Ljava/util/concurrent/ForkJoinTask;)Z
-Ljava/util/concurrent/ForkJoinPool;->tryInitialize(Z)V
-Ljava/util/concurrent/ForkJoinPool;->tryReactivate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;[Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)V
-Ljava/util/concurrent/ForkJoinPool;->tryRelease(JLjava/util/concurrent/ForkJoinPool$WorkQueue;J)Z
-Ljava/util/concurrent/ForkJoinPool;->tryTerminate(ZZ)I
-Ljava/util/concurrent/ForkJoinPool;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ForkJoinPool;->UC_MASK:J
-Ljava/util/concurrent/ForkJoinPool;->ueh:Ljava/lang/Thread$UncaughtExceptionHandler;
-Ljava/util/concurrent/ForkJoinPool;->UNREGISTERED:I
-Ljava/util/concurrent/ForkJoinPool;->UNSIGNALLED:I
-Ljava/util/concurrent/ForkJoinPool;->workerNamePrefix:Ljava/lang/String;
-Ljava/util/concurrent/ForkJoinPool;->workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;-><init>(Ljava/util/concurrent/Callable;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->callable:Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->setRawResult(Ljava/lang/Object;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->runnable:Ljava/lang/Runnable;
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->setRawResult(Ljava/lang/Object;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;-><init>(Ljava/lang/Runnable;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;->runnable:Ljava/lang/Runnable;
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/ForkJoinTask$ExceptionNode;-><init>(Ljava/util/concurrent/ForkJoinTask;Ljava/lang/Throwable;Ljava/util/concurrent/ForkJoinTask$ExceptionNode;Ljava/lang/ref/ReferenceQueue;)V
-Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->ex:Ljava/lang/Throwable;
-Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->hashCode:I
-Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
-Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->thrower:J
-Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;-><init>(Ljava/lang/Runnable;)V
-Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->internalPropagateException(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->runnable:Ljava/lang/Runnable;
-Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/ForkJoinTask;->cancelIgnoringExceptions(Ljava/util/concurrent/ForkJoinTask;)V
-Ljava/util/concurrent/ForkJoinTask;->CANCELLED:I
-Ljava/util/concurrent/ForkJoinTask;->clearExceptionalCompletion()V
-Ljava/util/concurrent/ForkJoinTask;->doExec()I
-Ljava/util/concurrent/ForkJoinTask;->doInvoke()I
-Ljava/util/concurrent/ForkJoinTask;->doJoin()I
-Ljava/util/concurrent/ForkJoinTask;->DONE_MASK:I
-Ljava/util/concurrent/ForkJoinTask;->EXCEPTIONAL:I
-Ljava/util/concurrent/ForkJoinTask;->exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
-Ljava/util/concurrent/ForkJoinTask;->exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/ForkJoinTask;->exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/util/concurrent/ForkJoinTask;->EXCEPTION_MAP_CAPACITY:I
-Ljava/util/concurrent/ForkJoinTask;->expungeStaleExceptions()V
-Ljava/util/concurrent/ForkJoinTask;->externalAwaitDone()I
-Ljava/util/concurrent/ForkJoinTask;->externalInterruptibleAwaitDone()I
-Ljava/util/concurrent/ForkJoinTask;->getThrowableException()Ljava/lang/Throwable;
-Ljava/util/concurrent/ForkJoinTask;->helpExpungeStaleExceptions()V
-Ljava/util/concurrent/ForkJoinTask;->internalPropagateException(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/ForkJoinTask;->internalWait(J)V
-Ljava/util/concurrent/ForkJoinTask;->NORMAL:I
-Ljava/util/concurrent/ForkJoinTask;->pollSubmission()Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinTask;->recordExceptionalCompletion(Ljava/lang/Throwable;)I
-Ljava/util/concurrent/ForkJoinTask;->reportException(I)V
-Ljava/util/concurrent/ForkJoinTask;->rethrow(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/ForkJoinTask;->setCompletion(I)I
-Ljava/util/concurrent/ForkJoinTask;->setExceptionalCompletion(Ljava/lang/Throwable;)I
-Ljava/util/concurrent/ForkJoinTask;->SIGNAL:I
-Ljava/util/concurrent/ForkJoinTask;->SMASK:I
-Ljava/util/concurrent/ForkJoinTask;->status:I
-Ljava/util/concurrent/ForkJoinTask;->STATUS:J
-Ljava/util/concurrent/ForkJoinTask;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ForkJoinTask;->uncheckedThrow(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;-><init>(Ljava/util/concurrent/ForkJoinPool;)V
-Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->afterTopLevelExec()V
-Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->createThreadGroup()Ljava/lang/ThreadGroup;
-Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->innocuousThreadGroup:Ljava/lang/ThreadGroup;
-Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->INNOCUOUS_ACC:Ljava/security/AccessControlContext;
-Ljava/util/concurrent/ForkJoinWorkerThread;-><init>(Ljava/util/concurrent/ForkJoinPool;Ljava/lang/ThreadGroup;Ljava/security/AccessControlContext;)V
-Ljava/util/concurrent/ForkJoinWorkerThread;->afterTopLevelExec()V
-Ljava/util/concurrent/ForkJoinWorkerThread;->eraseThreadLocals()V
-Ljava/util/concurrent/ForkJoinWorkerThread;->INHERITABLETHREADLOCALS:J
-Ljava/util/concurrent/ForkJoinWorkerThread;->INHERITEDACCESSCONTROLCONTEXT:J
-Ljava/util/concurrent/ForkJoinWorkerThread;->pool:Ljava/util/concurrent/ForkJoinPool;
-Ljava/util/concurrent/ForkJoinWorkerThread;->THREADLOCALS:J
-Ljava/util/concurrent/ForkJoinWorkerThread;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ForkJoinWorkerThread;->workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/FutureTask$WaitNode;-><init>()V
-Ljava/util/concurrent/FutureTask$WaitNode;->next:Ljava/util/concurrent/FutureTask$WaitNode;
-Ljava/util/concurrent/FutureTask$WaitNode;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/FutureTask;->awaitDone(ZJ)I
-Ljava/util/concurrent/FutureTask;->CANCELLED:I
-Ljava/util/concurrent/FutureTask;->COMPLETING:I
-Ljava/util/concurrent/FutureTask;->finishCompletion()V
-Ljava/util/concurrent/FutureTask;->handlePossibleCancellationInterrupt(I)V
-Ljava/util/concurrent/FutureTask;->INTERRUPTED:I
-Ljava/util/concurrent/FutureTask;->INTERRUPTING:I
-Ljava/util/concurrent/FutureTask;->NEW:I
-Ljava/util/concurrent/FutureTask;->NORMAL:I
-Ljava/util/concurrent/FutureTask;->removeWaiter(Ljava/util/concurrent/FutureTask$WaitNode;)V
-Ljava/util/concurrent/FutureTask;->report(I)Ljava/lang/Object;
-Ljava/util/concurrent/FutureTask;->RUNNER:J
-Ljava/util/concurrent/FutureTask;->runner:Ljava/lang/Thread;
-Ljava/util/concurrent/FutureTask;->STATE:J
-Ljava/util/concurrent/FutureTask;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/FutureTask;->WAITERS:J
-Ljava/util/concurrent/FutureTask;->waiters:Ljava/util/concurrent/FutureTask$WaitNode;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->advance()V
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->lastRet:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->next:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->nextItem:Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->succ(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$DescendingItr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$DescendingItr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$Itr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$Itr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;)V
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->batch:I
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->current:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->est:J
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->exhausted:Z
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->MAX_BATCH:I
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->queue:Ljava/util/concurrent/LinkedBlockingDeque;
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/LinkedBlockingDeque$Node;-><init>(Ljava/lang/Object;)V
-Ljava/util/concurrent/LinkedBlockingDeque$Node;->item:Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingDeque$Node;->next:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$Node;->prev:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque;->capacity:I
-Ljava/util/concurrent/LinkedBlockingDeque;->count:I
-Ljava/util/concurrent/LinkedBlockingDeque;->last:Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque;->linkFirst(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
-Ljava/util/concurrent/LinkedBlockingDeque;->linkLast(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
-Ljava/util/concurrent/LinkedBlockingDeque;->notEmpty:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/LinkedBlockingDeque;->notFull:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/LinkedBlockingDeque;->unlink(Ljava/util/concurrent/LinkedBlockingDeque$Node;)V
-Ljava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingDeque;->unlinkLast()Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingQueue$Itr;->current:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue$Itr;->currentElement:Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingQueue$Itr;->lastRet:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;-><init>(Ljava/util/concurrent/LinkedBlockingQueue;)V
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->batch:I
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->current:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->est:J
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->exhausted:Z
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->MAX_BATCH:I
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->queue:Ljava/util/concurrent/LinkedBlockingQueue;
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V
-Ljava/util/concurrent/LinkedBlockingQueue$Node;->item:Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingQueue$Node;->next:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue;->count:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/concurrent/LinkedBlockingQueue;->dequeue()Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingQueue;->enqueue(Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
-Ljava/util/concurrent/LinkedBlockingQueue;->fullyLock()V
-Ljava/util/concurrent/LinkedBlockingQueue;->fullyUnlock()V
-Ljava/util/concurrent/LinkedBlockingQueue;->last:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue;->notEmpty:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/LinkedBlockingQueue;->notFull:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/LinkedBlockingQueue;->signalNotEmpty()V
-Ljava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V
-Ljava/util/concurrent/LinkedBlockingQueue;->unlink(Ljava/util/concurrent/LinkedBlockingQueue$Node;Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
-Ljava/util/concurrent/LinkedTransferQueue$Itr;->advance(Ljava/util/concurrent/LinkedTransferQueue$Node;)V
-Ljava/util/concurrent/LinkedTransferQueue$Itr;->lastPred:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue$Itr;->lastRet:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue$Itr;->nextItem:Ljava/lang/Object;
-Ljava/util/concurrent/LinkedTransferQueue$Itr;->nextNode:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->batch:I
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->current:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->exhausted:Z
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->MAX_BATCH:I
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;-><init>(Ljava/lang/Object;Z)V
-Ljava/util/concurrent/LinkedTransferQueue$Node;->cannotPrecede(Z)Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->casNext(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->forgetContents()V
-Ljava/util/concurrent/LinkedTransferQueue$Node;->forgetNext()V
-Ljava/util/concurrent/LinkedTransferQueue$Node;->isData:Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->isMatched()Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->isUnmatchedRequest()Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->ITEM:J
-Ljava/util/concurrent/LinkedTransferQueue$Node;->item:Ljava/lang/Object;
-Ljava/util/concurrent/LinkedTransferQueue$Node;->NEXT:J
-Ljava/util/concurrent/LinkedTransferQueue$Node;->next:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue$Node;->tryMatchData()Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/LinkedTransferQueue$Node;->WAITER:J
-Ljava/util/concurrent/LinkedTransferQueue$Node;->waiter:Ljava/lang/Thread;
-Ljava/util/concurrent/LinkedTransferQueue;->ASYNC:I
-Ljava/util/concurrent/LinkedTransferQueue;->awaitMatch(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/LinkedTransferQueue;->casHead(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z
-Ljava/util/concurrent/LinkedTransferQueue;->casSweepVotes(II)Z
-Ljava/util/concurrent/LinkedTransferQueue;->casTail(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z
-Ljava/util/concurrent/LinkedTransferQueue;->CHAINED_SPINS:I
-Ljava/util/concurrent/LinkedTransferQueue;->countOfMode(Z)I
-Ljava/util/concurrent/LinkedTransferQueue;->findAndRemove(Ljava/lang/Object;)Z
-Ljava/util/concurrent/LinkedTransferQueue;->firstDataNode()Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue;->FRONT_SPINS:I
-Ljava/util/concurrent/LinkedTransferQueue;->HEAD:J
-Ljava/util/concurrent/LinkedTransferQueue;->head:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue;->MP:Z
-Ljava/util/concurrent/LinkedTransferQueue;->NOW:I
-Ljava/util/concurrent/LinkedTransferQueue;->spinsFor(Ljava/util/concurrent/LinkedTransferQueue$Node;Z)I
-Ljava/util/concurrent/LinkedTransferQueue;->succ(Ljava/util/concurrent/LinkedTransferQueue$Node;)Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue;->sweep()V
-Ljava/util/concurrent/LinkedTransferQueue;->sweepVotes:I
-Ljava/util/concurrent/LinkedTransferQueue;->SWEEPVOTES:J
-Ljava/util/concurrent/LinkedTransferQueue;->SWEEP_THRESHOLD:I
-Ljava/util/concurrent/LinkedTransferQueue;->SYNC:I
-Ljava/util/concurrent/LinkedTransferQueue;->TAIL:J
-Ljava/util/concurrent/LinkedTransferQueue;->tail:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue;->TIMED:I
-Ljava/util/concurrent/LinkedTransferQueue;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/util/concurrent/LinkedTransferQueue;->tryAppend(Ljava/util/concurrent/LinkedTransferQueue$Node;Z)Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/LinkedTransferQueue;->unsplice(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)V
-Ljava/util/concurrent/LinkedTransferQueue;->xfer(Ljava/lang/Object;ZIJ)Ljava/lang/Object;
-Ljava/util/concurrent/locks/AbstractOwnableSynchronizer;->exclusiveOwnerThread:Ljava/lang/Thread;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->addConditionWaiter()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->checkInterruptWhileWaiting(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->doSignalAll(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->firstWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->lastWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->REINTERRUPT:I
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->reportInterruptAfterWait(I)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->THROW_IE:I
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;->unlinkCancelledWaiters()V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->acquireQueued(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;J)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->addWaiter(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->apparentlyFirstQueuedIsExclusive()Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->cancelAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->compareAndSetTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireInterruptibly(J)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireNanos(JJ)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireShared(J)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireSharedInterruptibly(J)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doAcquireSharedNanos(JJ)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->doReleaseShared()V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->enq(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->findNodeFromTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->fullGetFirstQueuedThread()Ljava/lang/Thread;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->fullyRelease(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)J
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->HEAD:J
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->head:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->initializeSyncQueue()V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->isOnSyncQueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->parkAndCheckInterrupt()Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->selfInterrupt()V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->setHead(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->setHeadAndPropagate(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;J)V
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->shouldParkAfterFailedAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->SPIN_FOR_TIMEOUT_THRESHOLD:J
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->STATE:J
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->state:J
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->TAIL:J
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->tail:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->transferAfterCancelledWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->transferForSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer;->unparkSuccessor(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->addConditionWaiter()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->checkInterruptWhileWaiting(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignalAll(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->firstWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->lastWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->REINTERRUPT:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->reportInterruptAfterWait(I)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->THROW_IE:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->unlinkCancelledWaiters()V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>()V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>(I)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->CANCELLED:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->compareAndSetNext(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->compareAndSetWaitStatus(II)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->CONDITION:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->EXCLUSIVE:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->isShared()Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->NEXT:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->next:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->nextWaiter:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->predecessor()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->PREV:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->prev:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->PROPAGATE:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->SHARED:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->SIGNAL:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->THREAD:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->waitStatus:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->WAITSTATUS:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireQueued(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;I)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->addWaiter(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->apparentlyFirstQueuedIsExclusive()Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->cancelAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->compareAndSetTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireInterruptibly(I)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireNanos(IJ)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireShared(I)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireSharedInterruptibly(I)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireSharedNanos(IJ)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->doReleaseShared()V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->enq(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->findNodeFromTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->fullGetFirstQueuedThread()Ljava/lang/Thread;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->fullyRelease(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->HEAD:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->head:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->initializeSyncQueue()V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->isOnSyncQueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->parkAndCheckInterrupt()Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->selfInterrupt()V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->setHead(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->setHeadAndPropagate(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;I)V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->shouldParkAfterFailedAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->SPIN_FOR_TIMEOUT_THRESHOLD:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->state:I
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->STATE:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->TAIL:J
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->tail:Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferAfterCancelledWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferForSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;->unparkSuccessor(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-Ljava/util/concurrent/locks/LockSupport;-><init>()V
-Ljava/util/concurrent/locks/LockSupport;->nextSecondarySeed()I
-Ljava/util/concurrent/locks/LockSupport;->PARKBLOCKER:J
-Ljava/util/concurrent/locks/LockSupport;->SECONDARY:J
-Ljava/util/concurrent/locks/LockSupport;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V
-Ljava/util/concurrent/locks/LockSupport;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/ReentrantLock$FairSync;-><init>()V
-Ljava/util/concurrent/locks/ReentrantLock$FairSync;->lock()V
-Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;-><init>()V
-Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;->lock()V
-Ljava/util/concurrent/locks/ReentrantLock$Sync;-><init>()V
-Ljava/util/concurrent/locks/ReentrantLock$Sync;->getHoldCount()I
-Ljava/util/concurrent/locks/ReentrantLock$Sync;->getOwner()Ljava/lang/Thread;
-Ljava/util/concurrent/locks/ReentrantLock$Sync;->isLocked()Z
-Ljava/util/concurrent/locks/ReentrantLock$Sync;->lock()V
-Ljava/util/concurrent/locks/ReentrantLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
-Ljava/util/concurrent/locks/ReentrantLock$Sync;->nonfairTryAcquire(I)Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;-><init>()V
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->readerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->writerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;-><init>()V
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->readerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->writerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->sync:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;-><init>()V
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;->count:I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;->tid:J
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;-><init>()V
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;-><init>()V
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->cachedHoldCounter:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->exclusiveCount(I)I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->EXCLUSIVE_MASK:I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->firstReader:Ljava/lang/Thread;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->firstReaderHoldCount:I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->fullTryAcquireShared(Ljava/lang/Thread;)I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getCount()I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getOwner()Ljava/lang/Thread;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadHoldCount()I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadLockCount()I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getWriteHoldCount()I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->isWriteLocked()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->MAX_COUNT:I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->readerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->readHolds:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->sharedCount(I)I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->SHARED_SHIFT:I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->SHARED_UNIT:I
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReadLock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryWriteLock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->unmatchedUnlockException()Ljava/lang/IllegalMonitorStateException;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->writerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->sync:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;->getThreadId(Ljava/lang/Thread;)J
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readerLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;->sync:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;->TID:J
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writerLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
-Ljava/util/concurrent/locks/StampedLock$WNode;-><init>(ILjava/util/concurrent/locks/StampedLock$WNode;)V
-Ljava/util/concurrent/locks/StampedLock$WNode;->cowait:Ljava/util/concurrent/locks/StampedLock$WNode;
-Ljava/util/concurrent/locks/StampedLock$WNode;->mode:I
-Ljava/util/concurrent/locks/StampedLock$WNode;->next:Ljava/util/concurrent/locks/StampedLock$WNode;
-Ljava/util/concurrent/locks/StampedLock$WNode;->prev:Ljava/util/concurrent/locks/StampedLock$WNode;
-Ljava/util/concurrent/locks/StampedLock$WNode;->status:I
-Ljava/util/concurrent/locks/StampedLock$WNode;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/locks/StampedLock;->ABITS:J
-Ljava/util/concurrent/locks/StampedLock;->acquireRead(ZJ)J
-Ljava/util/concurrent/locks/StampedLock;->acquireWrite(ZJ)J
-Ljava/util/concurrent/locks/StampedLock;->CANCELLED:I
-Ljava/util/concurrent/locks/StampedLock;->cancelWaiter(Ljava/util/concurrent/locks/StampedLock$WNode;Ljava/util/concurrent/locks/StampedLock$WNode;Z)J
-Ljava/util/concurrent/locks/StampedLock;->getReadLockCount(J)I
-Ljava/util/concurrent/locks/StampedLock;->HEAD_SPINS:I
-Ljava/util/concurrent/locks/StampedLock;->INTERRUPTED:J
-Ljava/util/concurrent/locks/StampedLock;->LG_READERS:I
-Ljava/util/concurrent/locks/StampedLock;->MAX_HEAD_SPINS:I
-Ljava/util/concurrent/locks/StampedLock;->NCPU:I
-Ljava/util/concurrent/locks/StampedLock;->ORIGIN:J
-Ljava/util/concurrent/locks/StampedLock;->OVERFLOW_YIELD_RATE:I
-Ljava/util/concurrent/locks/StampedLock;->PARKBLOCKER:J
-Ljava/util/concurrent/locks/StampedLock;->RBITS:J
-Ljava/util/concurrent/locks/StampedLock;->readerOverflow:I
-Ljava/util/concurrent/locks/StampedLock;->readLockView:Ljava/util/concurrent/locks/StampedLock$ReadLockView;
-Ljava/util/concurrent/locks/StampedLock;->readWriteLockView:Ljava/util/concurrent/locks/StampedLock$ReadWriteLockView;
-Ljava/util/concurrent/locks/StampedLock;->release(Ljava/util/concurrent/locks/StampedLock$WNode;)V
-Ljava/util/concurrent/locks/StampedLock;->RFULL:J
-Ljava/util/concurrent/locks/StampedLock;->RMODE:I
-Ljava/util/concurrent/locks/StampedLock;->RUNIT:J
-Ljava/util/concurrent/locks/StampedLock;->SBITS:J
-Ljava/util/concurrent/locks/StampedLock;->SPINS:I
-Ljava/util/concurrent/locks/StampedLock;->STATE:J
-Ljava/util/concurrent/locks/StampedLock;->state:J
-Ljava/util/concurrent/locks/StampedLock;->tryDecReaderOverflow(J)J
-Ljava/util/concurrent/locks/StampedLock;->tryIncReaderOverflow(J)J
-Ljava/util/concurrent/locks/StampedLock;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/StampedLock;->unstampedUnlockRead()V
-Ljava/util/concurrent/locks/StampedLock;->unstampedUnlockWrite()V
-Ljava/util/concurrent/locks/StampedLock;->WAITING:I
-Ljava/util/concurrent/locks/StampedLock;->WBIT:J
-Ljava/util/concurrent/locks/StampedLock;->WCOWAIT:J
-Ljava/util/concurrent/locks/StampedLock;->WHEAD:J
-Ljava/util/concurrent/locks/StampedLock;->whead:Ljava/util/concurrent/locks/StampedLock$WNode;
-Ljava/util/concurrent/locks/StampedLock;->WMODE:I
-Ljava/util/concurrent/locks/StampedLock;->WNEXT:J
-Ljava/util/concurrent/locks/StampedLock;->writeLockView:Ljava/util/concurrent/locks/StampedLock$WriteLockView;
-Ljava/util/concurrent/locks/StampedLock;->WSTATUS:J
-Ljava/util/concurrent/locks/StampedLock;->WTAIL:J
-Ljava/util/concurrent/locks/StampedLock;->wtail:Ljava/util/concurrent/locks/StampedLock$WNode;
-Ljava/util/concurrent/Phaser$QNode;-><init>(Ljava/util/concurrent/Phaser;IZZJ)V
-Ljava/util/concurrent/Phaser$QNode;->deadline:J
-Ljava/util/concurrent/Phaser$QNode;->interruptible:Z
-Ljava/util/concurrent/Phaser$QNode;->nanos:J
-Ljava/util/concurrent/Phaser$QNode;->next:Ljava/util/concurrent/Phaser$QNode;
-Ljava/util/concurrent/Phaser$QNode;->phase:I
-Ljava/util/concurrent/Phaser$QNode;->phaser:Ljava/util/concurrent/Phaser;
-Ljava/util/concurrent/Phaser$QNode;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/Phaser$QNode;->timed:Z
-Ljava/util/concurrent/Phaser$QNode;->wasInterrupted:Z
-Ljava/util/concurrent/Phaser;->abortWait(I)I
-Ljava/util/concurrent/Phaser;->arrivedOf(J)I
-Ljava/util/concurrent/Phaser;->badArrive(J)Ljava/lang/String;
-Ljava/util/concurrent/Phaser;->badRegister(J)Ljava/lang/String;
-Ljava/util/concurrent/Phaser;->COUNTS_MASK:J
-Ljava/util/concurrent/Phaser;->doArrive(I)I
-Ljava/util/concurrent/Phaser;->doRegister(I)I
-Ljava/util/concurrent/Phaser;->EMPTY:I
-Ljava/util/concurrent/Phaser;->evenQ:Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/Phaser;->internalAwaitAdvance(ILjava/util/concurrent/Phaser$QNode;)I
-Ljava/util/concurrent/Phaser;->MAX_PARTIES:I
-Ljava/util/concurrent/Phaser;->MAX_PHASE:I
-Ljava/util/concurrent/Phaser;->NCPU:I
-Ljava/util/concurrent/Phaser;->oddQ:Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/Phaser;->ONE_ARRIVAL:I
-Ljava/util/concurrent/Phaser;->ONE_DEREGISTER:I
-Ljava/util/concurrent/Phaser;->ONE_PARTY:I
-Ljava/util/concurrent/Phaser;->parent:Ljava/util/concurrent/Phaser;
-Ljava/util/concurrent/Phaser;->partiesOf(J)I
-Ljava/util/concurrent/Phaser;->PARTIES_MASK:J
-Ljava/util/concurrent/Phaser;->PARTIES_SHIFT:I
-Ljava/util/concurrent/Phaser;->phaseOf(J)I
-Ljava/util/concurrent/Phaser;->PHASE_SHIFT:I
-Ljava/util/concurrent/Phaser;->queueFor(I)Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/Phaser;->reconcileState()J
-Ljava/util/concurrent/Phaser;->releaseWaiters(I)V
-Ljava/util/concurrent/Phaser;->root:Ljava/util/concurrent/Phaser;
-Ljava/util/concurrent/Phaser;->SPINS_PER_ARRIVAL:I
-Ljava/util/concurrent/Phaser;->STATE:J
-Ljava/util/concurrent/Phaser;->state:J
-Ljava/util/concurrent/Phaser;->stateToString(J)Ljava/lang/String;
-Ljava/util/concurrent/Phaser;->TERMINATION_BIT:J
-Ljava/util/concurrent/Phaser;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/Phaser;->unarrivedOf(J)I
-Ljava/util/concurrent/Phaser;->UNARRIVED_MASK:I
-Ljava/util/concurrent/PriorityBlockingQueue$Itr;->array:[Ljava/lang/Object;
-Ljava/util/concurrent/PriorityBlockingQueue$Itr;->cursor:I
-Ljava/util/concurrent/PriorityBlockingQueue$Itr;->lastRet:I
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;-><init>(Ljava/util/concurrent/PriorityBlockingQueue;[Ljava/lang/Object;II)V
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->array:[Ljava/lang/Object;
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->fence:I
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->getFence()I
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->index:I
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->queue:Ljava/util/concurrent/PriorityBlockingQueue;
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/PriorityBlockingQueue;->allocationSpinLock:I
-Ljava/util/concurrent/PriorityBlockingQueue;->ALLOCATIONSPINLOCK:J
-Ljava/util/concurrent/PriorityBlockingQueue;->comparator:Ljava/util/Comparator;
-Ljava/util/concurrent/PriorityBlockingQueue;->DEFAULT_INITIAL_CAPACITY:I
-Ljava/util/concurrent/PriorityBlockingQueue;->heapify()V
-Ljava/util/concurrent/PriorityBlockingQueue;->indexOf(Ljava/lang/Object;)I
-Ljava/util/concurrent/PriorityBlockingQueue;->MAX_ARRAY_SIZE:I
-Ljava/util/concurrent/PriorityBlockingQueue;->q:Ljava/util/PriorityQueue;
-Ljava/util/concurrent/PriorityBlockingQueue;->queue:[Ljava/lang/Object;
-Ljava/util/concurrent/PriorityBlockingQueue;->removeAt(I)V
-Ljava/util/concurrent/PriorityBlockingQueue;->removeEQ(Ljava/lang/Object;)V
-Ljava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V
-Ljava/util/concurrent/PriorityBlockingQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V
-Ljava/util/concurrent/PriorityBlockingQueue;->siftUpComparable(ILjava/lang/Object;[Ljava/lang/Object;)V
-Ljava/util/concurrent/PriorityBlockingQueue;->siftUpUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;)V
-Ljava/util/concurrent/PriorityBlockingQueue;->size:I
-Ljava/util/concurrent/PriorityBlockingQueue;->tryGrow([Ljava/lang/Object;I)V
-Ljava/util/concurrent/PriorityBlockingQueue;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/RecursiveTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->array:[Ljava/util/concurrent/RunnableScheduledFuture;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->cursor:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->lastRet:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;-><init>()V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Runnable;)Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->available:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;)I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;I)I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->finishPoll(Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->grow()V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->indexOf(Ljava/lang/Object;)I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->INITIAL_CAPACITY:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->leader:Ljava/lang/Thread;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->lock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;)Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->peekExpired()Ljava/util/concurrent/RunnableScheduledFuture;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->put(Ljava/lang/Runnable;)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->queue:[Ljava/util/concurrent/RunnableScheduledFuture;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->setIndex(Ljava/util/concurrent/RunnableScheduledFuture;I)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftDown(ILjava/util/concurrent/RunnableScheduledFuture;)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftUp(ILjava/util/concurrent/RunnableScheduledFuture;)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->size:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/util/concurrent/Delayed;)I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->heapIndex:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->outerTask:Ljava/util/concurrent/RunnableScheduledFuture;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->period:J
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->sequenceNumber:J
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->setNextRunTime()V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->time:J
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->canRunInCurrentRunState(Z)Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->continueExistingPeriodicTasksAfterShutdown:Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->DEFAULT_KEEPALIVE_MILLIS:J
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->delayedExecute(Ljava/util/concurrent/RunnableScheduledFuture;)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->executeExistingDelayedTasksAfterShutdown:Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->onShutdown()V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->overflowFree(J)J
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->reExecutePeriodic(Ljava/util/concurrent/RunnableScheduledFuture;)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->removeOnCancel:Z
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->sequencer:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J
-Ljava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J
-Ljava/util/concurrent/Semaphore$FairSync;-><init>(I)V
-Ljava/util/concurrent/Semaphore$NonfairSync;-><init>(I)V
-Ljava/util/concurrent/Semaphore$Sync;-><init>(I)V
-Ljava/util/concurrent/Semaphore$Sync;->drainPermits()I
-Ljava/util/concurrent/Semaphore$Sync;->getPermits()I
-Ljava/util/concurrent/Semaphore$Sync;->nonfairTryAcquireShared(I)I
-Ljava/util/concurrent/Semaphore$Sync;->reducePermits(I)V
-Ljava/util/concurrent/Semaphore;->sync:Ljava/util/concurrent/Semaphore$Sync;
-Ljava/util/concurrent/SynchronousQueue$FifoWaitQueue;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$LifoWaitQueue;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$Transferer;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$Transferer;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;-><init>(Ljava/lang/Object;Z)V
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->isCancelled()Z
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->isData:Z
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->isOffList()Z
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->ITEM:J
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->item:Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->NEXT:J
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->next:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->tryCancel(Ljava/lang/Object;)V
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->waiter:Ljava/lang/Thread;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->advanceHead(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)V
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->advanceTail(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)V
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->awaitFulfill(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->casCleanMe(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->clean(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)V
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->CLEANME:J
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->cleanMe:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->HEAD:J
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->head:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->TAIL:J
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->tail:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;-><init>(Ljava/lang/Object;)V
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isCancelled()Z
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->item:Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->MATCH:J
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->match:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->mode:I
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->NEXT:J
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->tryCancel()V
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->tryMatch(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->waiter:Ljava/lang/Thread;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->awaitFulfill(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;ZJ)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->casHead(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->clean(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)V
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->DATA:I
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->FULFILLING:I
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->HEAD:J
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->isFulfilling(I)Z
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->REQUEST:I
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->shouldSpin(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->snode(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/SynchronousQueue$WaitQueue;-><init>()V
-Ljava/util/concurrent/SynchronousQueue;->MAX_TIMED_SPINS:I
-Ljava/util/concurrent/SynchronousQueue;->MAX_UNTIMED_SPINS:I
-Ljava/util/concurrent/SynchronousQueue;->qlock:Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/SynchronousQueue;->SPIN_FOR_TIMEOUT_THRESHOLD:J
-Ljava/util/concurrent/SynchronousQueue;->transferer:Ljava/util/concurrent/SynchronousQueue$Transferer;
-Ljava/util/concurrent/SynchronousQueue;->waitingConsumers:Ljava/util/concurrent/SynchronousQueue$WaitQueue;
-Ljava/util/concurrent/SynchronousQueue;->waitingProducers:Ljava/util/concurrent/SynchronousQueue$WaitQueue;
-Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;-><init>(JJDD)V
-Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->bound:D
-Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->fence:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->index:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->origin:D
-Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;-><init>(JJII)V
-Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->bound:I
-Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->fence:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->index:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->origin:I
-Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;-><init>(JJJJ)V
-Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->bound:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->fence:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->index:J
-Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->origin:J
-Ljava/util/concurrent/ThreadLocalRandom;-><init>()V
-Ljava/util/concurrent/ThreadLocalRandom;->advanceProbe(I)I
-Ljava/util/concurrent/ThreadLocalRandom;->BAD_BOUND:Ljava/lang/String;
-Ljava/util/concurrent/ThreadLocalRandom;->BAD_RANGE:Ljava/lang/String;
-Ljava/util/concurrent/ThreadLocalRandom;->BAD_SIZE:Ljava/lang/String;
-Ljava/util/concurrent/ThreadLocalRandom;->DOUBLE_UNIT:D
-Ljava/util/concurrent/ThreadLocalRandom;->FLOAT_UNIT:F
-Ljava/util/concurrent/ThreadLocalRandom;->GAMMA:J
-Ljava/util/concurrent/ThreadLocalRandom;->getProbe()I
-Ljava/util/concurrent/ThreadLocalRandom;->initialized:Z
-Ljava/util/concurrent/ThreadLocalRandom;->instance:Ljava/util/concurrent/ThreadLocalRandom;
-Ljava/util/concurrent/ThreadLocalRandom;->internalNextDouble(DD)D
-Ljava/util/concurrent/ThreadLocalRandom;->internalNextInt(II)I
-Ljava/util/concurrent/ThreadLocalRandom;->internalNextLong(JJ)J
-Ljava/util/concurrent/ThreadLocalRandom;->localInit()V
-Ljava/util/concurrent/ThreadLocalRandom;->mix32(J)I
-Ljava/util/concurrent/ThreadLocalRandom;->mix64(J)J
-Ljava/util/concurrent/ThreadLocalRandom;->nextLocalGaussian:Ljava/lang/ThreadLocal;
-Ljava/util/concurrent/ThreadLocalRandom;->nextSecondarySeed()I
-Ljava/util/concurrent/ThreadLocalRandom;->nextSeed()J
-Ljava/util/concurrent/ThreadLocalRandom;->PROBE:J
-Ljava/util/concurrent/ThreadLocalRandom;->probeGenerator:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/concurrent/ThreadLocalRandom;->PROBE_INCREMENT:I
-Ljava/util/concurrent/ThreadLocalRandom;->SECONDARY:J
-Ljava/util/concurrent/ThreadLocalRandom;->SEED:J
-Ljava/util/concurrent/ThreadLocalRandom;->seeder:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/concurrent/ThreadLocalRandom;->SEEDER_INCREMENT:J
-Ljava/util/concurrent/ThreadLocalRandom;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->completedTasks:J
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->firstTask:Ljava/lang/Runnable;
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->interruptIfStarted()V
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->isLocked()Z
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->lock()V
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->tryLock()Z
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;->unlock()V
-Ljava/util/concurrent/ThreadPoolExecutor;->addWorker(Ljava/lang/Runnable;Z)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->addWorkerFailed(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
-Ljava/util/concurrent/ThreadPoolExecutor;->advanceRunState(I)V
-Ljava/util/concurrent/ThreadPoolExecutor;->CAPACITY:I
-Ljava/util/concurrent/ThreadPoolExecutor;->checkShutdownAccess()V
-Ljava/util/concurrent/ThreadPoolExecutor;->compareAndDecrementWorkerCount(I)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->compareAndIncrementWorkerCount(I)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->completedTaskCount:J
-Ljava/util/concurrent/ThreadPoolExecutor;->corePoolSize:I
-Ljava/util/concurrent/ThreadPoolExecutor;->COUNT_BITS:I
-Ljava/util/concurrent/ThreadPoolExecutor;->ctlOf(II)I
-Ljava/util/concurrent/ThreadPoolExecutor;->decrementWorkerCount()V
-Ljava/util/concurrent/ThreadPoolExecutor;->drainQueue()Ljava/util/List;
-Ljava/util/concurrent/ThreadPoolExecutor;->ensurePrestart()V
-Ljava/util/concurrent/ThreadPoolExecutor;->getTask()Ljava/lang/Runnable;
-Ljava/util/concurrent/ThreadPoolExecutor;->handler:Ljava/util/concurrent/RejectedExecutionHandler;
-Ljava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers()V
-Ljava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers(Z)V
-Ljava/util/concurrent/ThreadPoolExecutor;->interruptWorkers()V
-Ljava/util/concurrent/ThreadPoolExecutor;->isRunning(I)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->isRunningOrShutdown(Z)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->keepAliveTime:J
-Ljava/util/concurrent/ThreadPoolExecutor;->largestPoolSize:I
-Ljava/util/concurrent/ThreadPoolExecutor;->maximumPoolSize:I
-Ljava/util/concurrent/ThreadPoolExecutor;->ONLY_ONE:Z
-Ljava/util/concurrent/ThreadPoolExecutor;->onShutdown()V
-Ljava/util/concurrent/ThreadPoolExecutor;->processWorkerExit(Ljava/util/concurrent/ThreadPoolExecutor$Worker;Z)V
-Ljava/util/concurrent/ThreadPoolExecutor;->reject(Ljava/lang/Runnable;)V
-Ljava/util/concurrent/ThreadPoolExecutor;->RUNNING:I
-Ljava/util/concurrent/ThreadPoolExecutor;->runStateAtLeast(II)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->runStateLessThan(II)Z
-Ljava/util/concurrent/ThreadPoolExecutor;->runStateOf(I)I
-Ljava/util/concurrent/ThreadPoolExecutor;->runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
-Ljava/util/concurrent/ThreadPoolExecutor;->SHUTDOWN:I
-Ljava/util/concurrent/ThreadPoolExecutor;->shutdownPerm:Ljava/lang/RuntimePermission;
-Ljava/util/concurrent/ThreadPoolExecutor;->STOP:I
-Ljava/util/concurrent/ThreadPoolExecutor;->TERMINATED:I
-Ljava/util/concurrent/ThreadPoolExecutor;->termination:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/ThreadPoolExecutor;->threadFactory:Ljava/util/concurrent/ThreadFactory;
-Ljava/util/concurrent/ThreadPoolExecutor;->TIDYING:I
-Ljava/util/concurrent/ThreadPoolExecutor;->tryTerminate()V
-Ljava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I
-Ljava/util/concurrent/ThreadPoolExecutor;->workers:Ljava/util/HashSet;
-Ljava/util/concurrent/ThreadPoolExecutor;->workQueue:Ljava/util/concurrent/BlockingQueue;
-Ljava/util/concurrent/TimeUnit;->C0:J
-Ljava/util/concurrent/TimeUnit;->C1:J
-Ljava/util/concurrent/TimeUnit;->C2:J
-Ljava/util/concurrent/TimeUnit;->C3:J
-Ljava/util/concurrent/TimeUnit;->C4:J
-Ljava/util/concurrent/TimeUnit;->C5:J
-Ljava/util/concurrent/TimeUnit;->C6:J
-Ljava/util/concurrent/TimeUnit;->excessNanos(JJ)I
-Ljava/util/concurrent/TimeUnit;->MAX:J
-Ljava/util/concurrent/TimeUnit;->x(JJJ)J
-Ljava/util/Currency;-><init>(Landroid/icu/util/Currency;)V
-Ljava/util/Currency;->available:Ljava/util/HashSet;
-Ljava/util/Currency;->currencyCode:Ljava/lang/String;
-Ljava/util/Currency;->icuCurrency:Landroid/icu/util/Currency;
-Ljava/util/Currency;->instances:Ljava/util/concurrent/ConcurrentMap;
-Ljava/util/Date;->cdate:Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/Date;->convertToAbbr(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
-Ljava/util/Date;->defaultCenturyStart:I
-Ljava/util/Date;->fastTime:J
-Ljava/util/Date;->gcal:Lsun/util/calendar/BaseCalendar;
-Ljava/util/Date;->getCalendarDate()Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/Date;->getCalendarSystem(I)Lsun/util/calendar/BaseCalendar;
-Ljava/util/Date;->getCalendarSystem(J)Lsun/util/calendar/BaseCalendar;
-Ljava/util/Date;->getCalendarSystem(Lsun/util/calendar/BaseCalendar$Date;)Lsun/util/calendar/BaseCalendar;
-Ljava/util/Date;->getJulianCalendar()Lsun/util/calendar/BaseCalendar;
-Ljava/util/Date;->getMillisOf(Ljava/util/Date;)J
-Ljava/util/Date;->getTimeImpl()J
-Ljava/util/Date;->jcal:Lsun/util/calendar/BaseCalendar;
-Ljava/util/Date;->normalize()Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/Date;->normalize(Lsun/util/calendar/BaseCalendar$Date;)Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/Date;->ttb:[I
-Ljava/util/Date;->wtb:[Ljava/lang/String;
-Ljava/util/DoubleSummaryStatistics;->count:J
-Ljava/util/DoubleSummaryStatistics;->max:D
-Ljava/util/DoubleSummaryStatistics;->min:D
-Ljava/util/DoubleSummaryStatistics;->simpleSum:D
-Ljava/util/DoubleSummaryStatistics;->sum:D
-Ljava/util/DoubleSummaryStatistics;->sumCompensation:D
-Ljava/util/DoubleSummaryStatistics;->sumWithCompensation(D)V
-Ljava/util/DuplicateFormatFlagsException;->flags:Ljava/lang/String;
-Ljava/util/EnumMap$EntryIterator$Entry;->checkIndexForEntryUse()V
-Ljava/util/EnumMap$EntryIterator$Entry;->index:I
-Ljava/util/EnumMap$EntryIterator;->lastReturnedEntry:Ljava/util/EnumMap$EntryIterator$Entry;
-Ljava/util/EnumMap$EntrySet;->fillEntryArray([Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/util/EnumMap$EnumMapIterator;->checkLastReturnedIndex()V
-Ljava/util/EnumMap$EnumMapIterator;->index:I
-Ljava/util/EnumMap$EnumMapIterator;->lastReturnedIndex:I
-Ljava/util/EnumMap;->containsMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/EnumMap;->entryHashCode(I)I
-Ljava/util/EnumMap;->entrySet:Ljava/util/Set;
-Ljava/util/EnumMap;->equals(Ljava/util/EnumMap;)Z
-Ljava/util/EnumMap;->getKeyUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
-Ljava/util/EnumMap;->isValidKey(Ljava/lang/Object;)Z
-Ljava/util/EnumMap;->keyUniverse:[Ljava/lang/Enum;
-Ljava/util/EnumMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/EnumMap;->NULL:Ljava/lang/Object;
-Ljava/util/EnumMap;->removeMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/EnumMap;->size:I
-Ljava/util/EnumMap;->typeCheck(Ljava/lang/Enum;)V
-Ljava/util/EnumMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/EnumMap;->vals:[Ljava/lang/Object;
-Ljava/util/EnumMap;->ZERO_LENGTH_ENUM_ARRAY:[Ljava/lang/Enum;
-Ljava/util/EnumSet$SerializationProxy;-><init>(Ljava/util/EnumSet;)V
-Ljava/util/EnumSet$SerializationProxy;->elements:[Ljava/lang/Enum;
-Ljava/util/EnumSet$SerializationProxy;->elementType:Ljava/lang/Class;
-Ljava/util/EnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
-Ljava/util/EnumSet;->addAll()V
-Ljava/util/EnumSet;->addRange(Ljava/lang/Enum;Ljava/lang/Enum;)V
-Ljava/util/EnumSet;->complement()V
-Ljava/util/EnumSet;->getUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
-Ljava/util/EnumSet;->typeCheck(Ljava/lang/Enum;)V
-Ljava/util/EnumSet;->universe:[Ljava/lang/Enum;
-Ljava/util/EnumSet;->ZERO_LENGTH_ENUM_ARRAY:[Ljava/lang/Enum;
-Ljava/util/EventListenerProxy;->listener:Ljava/util/EventListener;
-Ljava/util/FormatFlagsConversionMismatchException;->c:C
-Ljava/util/FormatFlagsConversionMismatchException;->f:Ljava/lang/String;
-Ljava/util/FormattableFlags;-><init>()V
-Ljava/util/Formatter$Conversion;-><init>()V
-Ljava/util/Formatter$Conversion;->BOOLEAN:C
-Ljava/util/Formatter$Conversion;->BOOLEAN_UPPER:C
-Ljava/util/Formatter$Conversion;->CHARACTER:C
-Ljava/util/Formatter$Conversion;->CHARACTER_UPPER:C
-Ljava/util/Formatter$Conversion;->DATE_TIME:C
-Ljava/util/Formatter$Conversion;->DATE_TIME_UPPER:C
-Ljava/util/Formatter$Conversion;->DECIMAL_FLOAT:C
-Ljava/util/Formatter$Conversion;->DECIMAL_INTEGER:C
-Ljava/util/Formatter$Conversion;->GENERAL:C
-Ljava/util/Formatter$Conversion;->GENERAL_UPPER:C
-Ljava/util/Formatter$Conversion;->HASHCODE:C
-Ljava/util/Formatter$Conversion;->HASHCODE_UPPER:C
-Ljava/util/Formatter$Conversion;->HEXADECIMAL_FLOAT:C
-Ljava/util/Formatter$Conversion;->HEXADECIMAL_FLOAT_UPPER:C
-Ljava/util/Formatter$Conversion;->HEXADECIMAL_INTEGER:C
-Ljava/util/Formatter$Conversion;->HEXADECIMAL_INTEGER_UPPER:C
-Ljava/util/Formatter$Conversion;->isCharacter(C)Z
-Ljava/util/Formatter$Conversion;->isFloat(C)Z
-Ljava/util/Formatter$Conversion;->isGeneral(C)Z
-Ljava/util/Formatter$Conversion;->isInteger(C)Z
-Ljava/util/Formatter$Conversion;->isText(C)Z
-Ljava/util/Formatter$Conversion;->isValid(C)Z
-Ljava/util/Formatter$Conversion;->LINE_SEPARATOR:C
-Ljava/util/Formatter$Conversion;->OCTAL_INTEGER:C
-Ljava/util/Formatter$Conversion;->PERCENT_SIGN:C
-Ljava/util/Formatter$Conversion;->SCIENTIFIC:C
-Ljava/util/Formatter$Conversion;->SCIENTIFIC_UPPER:C
-Ljava/util/Formatter$Conversion;->STRING:C
-Ljava/util/Formatter$Conversion;->STRING_UPPER:C
-Ljava/util/Formatter$DateTime;-><init>()V
-Ljava/util/Formatter$DateTime;->AM_PM:C
-Ljava/util/Formatter$DateTime;->CENTURY:C
-Ljava/util/Formatter$DateTime;->DATE:C
-Ljava/util/Formatter$DateTime;->DATE_TIME:C
-Ljava/util/Formatter$DateTime;->DAY_OF_MONTH:C
-Ljava/util/Formatter$DateTime;->DAY_OF_MONTH_0:C
-Ljava/util/Formatter$DateTime;->DAY_OF_YEAR:C
-Ljava/util/Formatter$DateTime;->HOUR:C
-Ljava/util/Formatter$DateTime;->HOUR_0:C
-Ljava/util/Formatter$DateTime;->HOUR_OF_DAY:C
-Ljava/util/Formatter$DateTime;->HOUR_OF_DAY_0:C
-Ljava/util/Formatter$DateTime;->ISO_STANDARD_DATE:C
-Ljava/util/Formatter$DateTime;->isValid(C)Z
-Ljava/util/Formatter$DateTime;->MILLISECOND:C
-Ljava/util/Formatter$DateTime;->MILLISECOND_SINCE_EPOCH:C
-Ljava/util/Formatter$DateTime;->MINUTE:C
-Ljava/util/Formatter$DateTime;->MONTH:C
-Ljava/util/Formatter$DateTime;->NAME_OF_DAY:C
-Ljava/util/Formatter$DateTime;->NAME_OF_DAY_ABBREV:C
-Ljava/util/Formatter$DateTime;->NAME_OF_MONTH:C
-Ljava/util/Formatter$DateTime;->NAME_OF_MONTH_ABBREV:C
-Ljava/util/Formatter$DateTime;->NAME_OF_MONTH_ABBREV_X:C
-Ljava/util/Formatter$DateTime;->NANOSECOND:C
-Ljava/util/Formatter$DateTime;->SECOND:C
-Ljava/util/Formatter$DateTime;->SECONDS_SINCE_EPOCH:C
-Ljava/util/Formatter$DateTime;->TIME:C
-Ljava/util/Formatter$DateTime;->TIME_12_HOUR:C
-Ljava/util/Formatter$DateTime;->TIME_24_HOUR:C
-Ljava/util/Formatter$DateTime;->YEAR_2:C
-Ljava/util/Formatter$DateTime;->YEAR_4:C
-Ljava/util/Formatter$DateTime;->ZONE:C
-Ljava/util/Formatter$DateTime;->ZONE_NUMERIC:C
-Ljava/util/Formatter$FixedString;->index()I
-Ljava/util/Formatter$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter$FixedString;->s:Ljava/lang/String;
-Ljava/util/Formatter$Flags;-><init>(I)V
-Ljava/util/Formatter$Flags;->add(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->ALTERNATE:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->contains(Ljava/util/Formatter$Flags;)Z
-Ljava/util/Formatter$Flags;->dup()Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->flags:I
-Ljava/util/Formatter$Flags;->GROUP:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->LEADING_SPACE:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->LEFT_JUSTIFY:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->NONE:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->PARENTHESES:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->parse(C)Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->parse(Ljava/lang/String;)Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->PLUS:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->PREVIOUS:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->remove(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->toString(Ljava/util/Formatter$Flags;)Ljava/lang/String;
-Ljava/util/Formatter$Flags;->UPPERCASE:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$Flags;->valueOf()I
-Ljava/util/Formatter$Flags;->ZERO_PAD:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->dot:Z
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->exp:Ljava/lang/StringBuilder;
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->exponent()[C
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->hasDot()Z
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->layout(Ljava/math/BigInteger;ILjava/util/Formatter$BigDecimalLayoutForm;)V
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->layoutChars()[C
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->mant:Ljava/lang/StringBuilder;
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->mantissa()[C
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->scale()I
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->scale:I
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->toCharArray(Ljava/lang/StringBuilder;)[C
-Ljava/util/Formatter$FormatSpecifier;->addDot([C)[C
-Ljava/util/Formatter$FormatSpecifier;->addZeros([CI)[C
-Ljava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I
-Ljava/util/Formatter$FormatSpecifier;->c:C
-Ljava/util/Formatter$FormatSpecifier;->checkCharacter()V
-Ljava/util/Formatter$FormatSpecifier;->checkDateTime()V
-Ljava/util/Formatter$FormatSpecifier;->checkFloat()V
-Ljava/util/Formatter$FormatSpecifier;->checkGeneral()V
-Ljava/util/Formatter$FormatSpecifier;->checkInteger()V
-Ljava/util/Formatter$FormatSpecifier;->checkNumeric()V
-Ljava/util/Formatter$FormatSpecifier;->checkText()V
-Ljava/util/Formatter$FormatSpecifier;->conversion()C
-Ljava/util/Formatter$FormatSpecifier;->conversion(Ljava/lang/String;)C
-Ljava/util/Formatter$FormatSpecifier;->dt:Z
-Ljava/util/Formatter$FormatSpecifier;->f:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$FormatSpecifier;->failConversion(CLjava/lang/Object;)V
-Ljava/util/Formatter$FormatSpecifier;->failMismatch(Ljava/util/Formatter$Flags;C)V
-Ljava/util/Formatter$FormatSpecifier;->flags()Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$FormatSpecifier;->flags(Ljava/lang/String;)Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C
-Ljava/util/Formatter$FormatSpecifier;->hexDouble(DI)Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifier;->index()I
-Ljava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)I
-Ljava/util/Formatter$FormatSpecifier;->index:I
-Ljava/util/Formatter$FormatSpecifier;->justify(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
-Ljava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
-Ljava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;[CLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
-Ljava/util/Formatter$FormatSpecifier;->precision()I
-Ljava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)I
-Ljava/util/Formatter$FormatSpecifier;->precision:I
-Ljava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(DLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(FLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(ILjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(JLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/String;)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/math/BigDecimal;Ljava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/time/temporal/TemporalAccessor;CLjava/util/Locale;)Ljava/lang/Appendable;
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/util/Calendar;CLjava/util/Locale;)Ljava/lang/Appendable;
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigDecimal;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigInteger;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/time/temporal/TemporalAccessor;CLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(Ljava/util/Calendar;CLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->print(SLjava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->printBoolean(Ljava/lang/Object;)V
-Ljava/util/Formatter$FormatSpecifier;->printCharacter(Ljava/lang/Object;)V
-Ljava/util/Formatter$FormatSpecifier;->printDateTime(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->printFloat(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->printHashCode(Ljava/lang/Object;)V
-Ljava/util/Formatter$FormatSpecifier;->printInteger(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter$FormatSpecifier;->trailingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
-Ljava/util/Formatter$FormatSpecifier;->trailingZeros([CI)[C
-Ljava/util/Formatter$FormatSpecifier;->width()I
-Ljava/util/Formatter$FormatSpecifier;->width(Ljava/lang/String;)I
-Ljava/util/Formatter$FormatSpecifier;->width:I
-Ljava/util/Formatter$FormatSpecifierParser;->advance()C
-Ljava/util/Formatter$FormatSpecifierParser;->back(I)V
-Ljava/util/Formatter$FormatSpecifierParser;->conv:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->cursor:I
-Ljava/util/Formatter$FormatSpecifierParser;->FLAGS:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->flags:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->format:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->fs:Ljava/util/Formatter$FormatSpecifier;
-Ljava/util/Formatter$FormatSpecifierParser;->getEndIdx()I
-Ljava/util/Formatter$FormatSpecifierParser;->getFormatSpecifier()Ljava/util/Formatter$FormatSpecifier;
-Ljava/util/Formatter$FormatSpecifierParser;->index:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->isEnd()Z
-Ljava/util/Formatter$FormatSpecifierParser;->nextInt()Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->nextIsInt()Z
-Ljava/util/Formatter$FormatSpecifierParser;->peek()C
-Ljava/util/Formatter$FormatSpecifierParser;->precision:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->tT:Ljava/lang/String;
-Ljava/util/Formatter$FormatSpecifierParser;->width:Ljava/lang/String;
-Ljava/util/Formatter$FormatString;->index()I
-Ljava/util/Formatter$FormatString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
-Ljava/util/Formatter;-><init>(Ljava/nio/charset/Charset;Ljava/util/Locale;Ljava/io/File;)V
-Ljava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V
-Ljava/util/Formatter;->a:Ljava/lang/Appendable;
-Ljava/util/Formatter;->ensureOpen()V
-Ljava/util/Formatter;->getZero(Ljava/util/Locale;)C
-Ljava/util/Formatter;->l:Ljava/util/Locale;
-Ljava/util/Formatter;->lastException:Ljava/io/IOException;
-Ljava/util/Formatter;->MAX_FD_CHARS:I
-Ljava/util/Formatter;->nonNullAppendable(Ljava/lang/Appendable;)Ljava/lang/Appendable;
-Ljava/util/Formatter;->parse(Ljava/lang/String;)[Ljava/util/Formatter$FormatString;
-Ljava/util/Formatter;->scaleUp:D
-Ljava/util/Formatter;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/util/Formatter;->zero:C
-Ljava/util/GregorianCalendar;-><init>(IIIIIII)V
-Ljava/util/GregorianCalendar;-><init>(J)V
-Ljava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;Z)V
-Ljava/util/GregorianCalendar;->actualMonthLength()I
-Ljava/util/GregorianCalendar;->adjustDstOffsetForInvalidWallClock(JLjava/util/TimeZone;I)I
-Ljava/util/GregorianCalendar;->adjustForZoneAndDaylightSavingsTime(IJLjava/util/TimeZone;)J
-Ljava/util/GregorianCalendar;->BCE:I
-Ljava/util/GregorianCalendar;->cachedFixedDate:J
-Ljava/util/GregorianCalendar;->calsys:Lsun/util/calendar/BaseCalendar;
-Ljava/util/GregorianCalendar;->cdate:Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/GregorianCalendar;->CE:I
-Ljava/util/GregorianCalendar;->computeFields(II)I
-Ljava/util/GregorianCalendar;->DEFAULT_GREGORIAN_CUTOVER:J
-Ljava/util/GregorianCalendar;->EPOCH_OFFSET:I
-Ljava/util/GregorianCalendar;->EPOCH_YEAR:I
-Ljava/util/GregorianCalendar;->gcal:Lsun/util/calendar/Gregorian;
-Ljava/util/GregorianCalendar;->gdate:Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/GregorianCalendar;->getCalendarDate(J)Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/GregorianCalendar;->getCurrentFixedDate()J
-Ljava/util/GregorianCalendar;->getCutoverCalendarSystem()Lsun/util/calendar/BaseCalendar;
-Ljava/util/GregorianCalendar;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J
-Ljava/util/GregorianCalendar;->getFixedDateJan1(Lsun/util/calendar/BaseCalendar$Date;J)J
-Ljava/util/GregorianCalendar;->getFixedDateMonth1(Lsun/util/calendar/BaseCalendar$Date;J)J
-Ljava/util/GregorianCalendar;->getGregorianCutoverDate()Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/GregorianCalendar;->getJulianCalendarSystem()Lsun/util/calendar/BaseCalendar;
-Ljava/util/GregorianCalendar;->getLastJulianDate()Lsun/util/calendar/BaseCalendar$Date;
-Ljava/util/GregorianCalendar;->getNormalizedCalendar()Ljava/util/GregorianCalendar;
-Ljava/util/GregorianCalendar;->getRolledValue(IIII)I
-Ljava/util/GregorianCalendar;->getWeekNumber(JJ)I
-Ljava/util/GregorianCalendar;->getYearOffsetInMillis()J
-Ljava/util/GregorianCalendar;->gregorianCutover:J
-Ljava/util/GregorianCalendar;->gregorianCutoverDate:J
-Ljava/util/GregorianCalendar;->gregorianCutoverYear:I
-Ljava/util/GregorianCalendar;->gregorianCutoverYearJulian:I
-Ljava/util/GregorianCalendar;->internalGetEra()I
-Ljava/util/GregorianCalendar;->isCutoverYear(I)Z
-Ljava/util/GregorianCalendar;->jcal:Lsun/util/calendar/JulianCalendar;
-Ljava/util/GregorianCalendar;->jeras:[Lsun/util/calendar/Era;
-Ljava/util/GregorianCalendar;->LEAP_MONTH_LENGTH:[I
-Ljava/util/GregorianCalendar;->LEAST_MAX_VALUES:[I
-Ljava/util/GregorianCalendar;->MAX_VALUES:[I
-Ljava/util/GregorianCalendar;->MIN_VALUES:[I
-Ljava/util/GregorianCalendar;->monthLength(I)I
-Ljava/util/GregorianCalendar;->monthLength(II)I
-Ljava/util/GregorianCalendar;->MONTH_LENGTH:[I
-Ljava/util/GregorianCalendar;->ONE_DAY:J
-Ljava/util/GregorianCalendar;->ONE_HOUR:I
-Ljava/util/GregorianCalendar;->ONE_MINUTE:I
-Ljava/util/GregorianCalendar;->ONE_SECOND:I
-Ljava/util/GregorianCalendar;->ONE_WEEK:J
-Ljava/util/GregorianCalendar;->originalFields:[I
-Ljava/util/GregorianCalendar;->pinDayOfMonth()V
-Ljava/util/GregorianCalendar;->setGregorianChange(J)V
-Ljava/util/GregorianCalendar;->yearLength()I
-Ljava/util/GregorianCalendar;->yearLength(I)I
-Ljava/util/GregorianCalendar;->zoneOffsets:[I
-Ljava/util/HashMap$EntrySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$EntrySpliterator;-><init>(Ljava/util/HashMap;IIII)V
-Ljava/util/HashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/HashMap$HashIterator;->current:Ljava/util/HashMap$Node;
-Ljava/util/HashMap$HashIterator;->expectedModCount:I
-Ljava/util/HashMap$HashIterator;->index:I
-Ljava/util/HashMap$HashIterator;->next:Ljava/util/HashMap$Node;
-Ljava/util/HashMap$HashIterator;->nextNode()Ljava/util/HashMap$Node;
-Ljava/util/HashMap$HashMapSpliterator;-><init>(Ljava/util/HashMap;IIII)V
-Ljava/util/HashMap$HashMapSpliterator;->current:Ljava/util/HashMap$Node;
-Ljava/util/HashMap$HashMapSpliterator;->est:I
-Ljava/util/HashMap$HashMapSpliterator;->estimateSize()J
-Ljava/util/HashMap$HashMapSpliterator;->expectedModCount:I
-Ljava/util/HashMap$HashMapSpliterator;->fence:I
-Ljava/util/HashMap$HashMapSpliterator;->getFence()I
-Ljava/util/HashMap$HashMapSpliterator;->index:I
-Ljava/util/HashMap$HashMapSpliterator;->map:Ljava/util/HashMap;
-Ljava/util/HashMap$KeySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$KeySpliterator;-><init>(Ljava/util/HashMap;IIII)V
-Ljava/util/HashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/HashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
-Ljava/util/HashMap$Node;->hash:I
-Ljava/util/HashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
-Ljava/util/HashMap$TreeNode;->balanceDeletion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->balanceInsertion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->checkInvariants(Ljava/util/HashMap$TreeNode;)Z
-Ljava/util/HashMap$TreeNode;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->getTreeNode(ILjava/lang/Object;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->left:Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->moveRootToFront([Ljava/util/HashMap$Node;Ljava/util/HashMap$TreeNode;)V
-Ljava/util/HashMap$TreeNode;->parent:Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->prev:Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->red:Z
-Ljava/util/HashMap$TreeNode;->removeTreeNode(Ljava/util/HashMap;[Ljava/util/HashMap$Node;Z)V
-Ljava/util/HashMap$TreeNode;->right:Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->root()Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->rotateLeft(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->rotateRight(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap$TreeNode;->split(Ljava/util/HashMap;[Ljava/util/HashMap$Node;II)V
-Ljava/util/HashMap$TreeNode;->tieBreakOrder(Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/HashMap$TreeNode;->treeify([Ljava/util/HashMap$Node;)V
-Ljava/util/HashMap$TreeNode;->untreeify(Ljava/util/HashMap;)Ljava/util/HashMap$Node;
-Ljava/util/HashMap$Values;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$ValueSpliterator;-><init>(Ljava/util/HashMap;IIII)V
-Ljava/util/HashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/HashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V
-Ljava/util/HashMap;->afterNodeInsertion(Z)V
-Ljava/util/HashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V
-Ljava/util/HashMap;->capacity()I
-Ljava/util/HashMap;->comparableClassFor(Ljava/lang/Object;)Ljava/lang/Class;
-Ljava/util/HashMap;->compareComparables(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/HashMap;->DEFAULT_INITIAL_CAPACITY:I
-Ljava/util/HashMap;->DEFAULT_LOAD_FACTOR:F
-Ljava/util/HashMap;->entrySet:Ljava/util/Set;
-Ljava/util/HashMap;->getNode(ILjava/lang/Object;)Ljava/util/HashMap$Node;
-Ljava/util/HashMap;->hash(Ljava/lang/Object;)I
-Ljava/util/HashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V
-Ljava/util/HashMap;->loadFactor()F
-Ljava/util/HashMap;->loadFactor:F
-Ljava/util/HashMap;->MAXIMUM_CAPACITY:I
-Ljava/util/HashMap;->MIN_TREEIFY_CAPACITY:I
-Ljava/util/HashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-Ljava/util/HashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap;->putMapEntries(Ljava/util/Map;Z)V
-Ljava/util/HashMap;->putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;
-Ljava/util/HashMap;->reinitialize()V
-Ljava/util/HashMap;->removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node;
-Ljava/util/HashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-Ljava/util/HashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
-Ljava/util/HashMap;->resize()[Ljava/util/HashMap$Node;
-Ljava/util/HashMap;->size:I
-Ljava/util/HashMap;->tableSizeFor(I)I
-Ljava/util/HashMap;->threshold:I
-Ljava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V
-Ljava/util/HashMap;->TREEIFY_THRESHOLD:I
-Ljava/util/HashMap;->UNTREEIFY_THRESHOLD:I
-Ljava/util/HashSet;-><init>(IFZ)V
-Ljava/util/HashSet;->PRESENT:Ljava/lang/Object;
-Ljava/util/Hashtable$EntrySet;->add(Ljava/util/Map$Entry;)Z
-Ljava/util/Hashtable$Enumerator;->entry:Ljava/util/Hashtable$HashtableEntry;
-Ljava/util/Hashtable$Enumerator;->expectedModCount:I
-Ljava/util/Hashtable$Enumerator;->index:I
-Ljava/util/Hashtable$Enumerator;->iterator:Z
-Ljava/util/Hashtable$Enumerator;->lastReturned:Ljava/util/Hashtable$HashtableEntry;
-Ljava/util/Hashtable$Enumerator;->table:[Ljava/util/Hashtable$HashtableEntry;
-Ljava/util/Hashtable$Enumerator;->type:I
-Ljava/util/Hashtable$HashtableEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/Hashtable$HashtableEntry;)V
-Ljava/util/Hashtable$HashtableEntry;->hash:I
-Ljava/util/Hashtable$HashtableEntry;->key:Ljava/lang/Object;
-Ljava/util/Hashtable$HashtableEntry;->next:Ljava/util/Hashtable$HashtableEntry;
-Ljava/util/Hashtable$HashtableEntry;->value:Ljava/lang/Object;
-Ljava/util/Hashtable;->addEntry(ILjava/lang/Object;Ljava/lang/Object;I)V
-Ljava/util/Hashtable;->count:I
-Ljava/util/Hashtable;->ENTRIES:I
-Ljava/util/Hashtable;->entrySet:Ljava/util/Set;
-Ljava/util/Hashtable;->getEnumeration(I)Ljava/util/Enumeration;
-Ljava/util/Hashtable;->getIterator(I)Ljava/util/Iterator;
-Ljava/util/Hashtable;->KEYS:I
-Ljava/util/Hashtable;->keySet:Ljava/util/Set;
-Ljava/util/Hashtable;->loadFactor:F
-Ljava/util/Hashtable;->MAX_ARRAY_SIZE:I
-Ljava/util/Hashtable;->modCount:I
-Ljava/util/Hashtable;->reconstitutionPut([Ljava/util/Hashtable$HashtableEntry;Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/util/Hashtable;->table:[Ljava/util/Hashtable$HashtableEntry;
-Ljava/util/Hashtable;->threshold:I
-Ljava/util/Hashtable;->VALUES:I
-Ljava/util/Hashtable;->values:Ljava/util/Collection;
-Ljava/util/IdentityHashMap$EntryIterator$Entry;->checkIndexForEntryUse()V
-Ljava/util/IdentityHashMap$EntryIterator$Entry;->index:I
-Ljava/util/IdentityHashMap$EntryIterator;->lastReturnedEntry:Ljava/util/IdentityHashMap$EntryIterator$Entry;
-Ljava/util/IdentityHashMap$EntrySpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
-Ljava/util/IdentityHashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/IdentityHashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;->expectedModCount:I
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;->index:I
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;->indexValid:Z
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;->lastReturnedIndex:I
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;->nextIndex()I
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;->traversalTable:[Ljava/lang/Object;
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->est:I
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->estimateSize()J
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->expectedModCount:I
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->fence:I
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->getFence()I
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->index:I
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->map:Ljava/util/IdentityHashMap;
-Ljava/util/IdentityHashMap$KeySpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
-Ljava/util/IdentityHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/IdentityHashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/IdentityHashMap$ValueSpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
-Ljava/util/IdentityHashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/IdentityHashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/IdentityHashMap;->capacity(I)I
-Ljava/util/IdentityHashMap;->closeDeletion(I)V
-Ljava/util/IdentityHashMap;->containsMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/IdentityHashMap;->DEFAULT_CAPACITY:I
-Ljava/util/IdentityHashMap;->entrySet:Ljava/util/Set;
-Ljava/util/IdentityHashMap;->hash(Ljava/lang/Object;I)I
-Ljava/util/IdentityHashMap;->init(I)V
-Ljava/util/IdentityHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/IdentityHashMap;->MAXIMUM_CAPACITY:I
-Ljava/util/IdentityHashMap;->MINIMUM_CAPACITY:I
-Ljava/util/IdentityHashMap;->modCount:I
-Ljava/util/IdentityHashMap;->nextKeyIndex(II)I
-Ljava/util/IdentityHashMap;->NULL_KEY:Ljava/lang/Object;
-Ljava/util/IdentityHashMap;->putForCreate(Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/util/IdentityHashMap;->removeMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/IdentityHashMap;->resize(I)Z
-Ljava/util/IdentityHashMap;->size:I
-Ljava/util/IdentityHashMap;->table:[Ljava/lang/Object;
-Ljava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/IllegalFormatCodePointException;->c:I
-Ljava/util/IllegalFormatConversionException;->arg:Ljava/lang/Class;
-Ljava/util/IllegalFormatConversionException;->c:C
-Ljava/util/IllegalFormatException;-><init>()V
-Ljava/util/IllegalFormatFlagsException;->flags:Ljava/lang/String;
-Ljava/util/IllegalFormatPrecisionException;->p:I
-Ljava/util/IllegalFormatWidthException;->w:I
-Ljava/util/IllformedLocaleException;->_errIdx:I
-Ljava/util/IntSummaryStatistics;->count:J
-Ljava/util/IntSummaryStatistics;->max:I
-Ljava/util/IntSummaryStatistics;->min:I
-Ljava/util/IntSummaryStatistics;->sum:J
-Ljava/util/jar/Attributes$Name;->hashCode:I
-Ljava/util/jar/Attributes$Name;->isAlpha(C)Z
-Ljava/util/jar/Attributes$Name;->isDigit(C)Z
-Ljava/util/jar/Attributes$Name;->isValid(C)Z
-Ljava/util/jar/Attributes$Name;->isValid(Ljava/lang/String;)Z
-Ljava/util/jar/Attributes$Name;->name:Ljava/lang/String;
-Ljava/util/jar/Attributes$Name;->NAME:Ljava/util/jar/Attributes$Name;
-Ljava/util/jar/Attributes;->read(Ljava/util/jar/Manifest$FastInputStream;[B)V
-Ljava/util/jar/Attributes;->write(Ljava/io/DataOutputStream;)V
-Ljava/util/jar/Attributes;->writeMain(Ljava/io/DataOutputStream;)V
-Ljava/util/jar/JarEntry;->attr:Ljava/util/jar/Attributes;
-Ljava/util/jar/JarEntry;->certs:[Ljava/security/cert/Certificate;
-Ljava/util/jar/JarEntry;->signers:[Ljava/security/CodeSigner;
-Ljava/util/jar/JarFile$JarEntryIterator;->e:Ljava/util/Enumeration;
-Ljava/util/jar/JarFile;->checkForSpecialAttributes()V
-Ljava/util/jar/JarFile;->CLASSPATH_CHARS:[C
-Ljava/util/jar/JarFile;->CLASSPATH_LASTOCC:[I
-Ljava/util/jar/JarFile;->CLASSPATH_OPTOSFT:[I
-Ljava/util/jar/JarFile;->getBytes(Ljava/util/zip/ZipEntry;)[B
-Ljava/util/jar/JarFile;->getManEntry()Ljava/util/jar/JarEntry;
-Ljava/util/jar/JarFile;->getManifestFromReference()Ljava/util/jar/Manifest;
-Ljava/util/jar/JarFile;->getMetaInfEntryNames()[Ljava/lang/String;
-Ljava/util/jar/JarFile;->hasCheckedSpecialAttributes:Z
-Ljava/util/jar/JarFile;->hasClassPathAttribute()Z
-Ljava/util/jar/JarFile;->hasClassPathAttribute:Z
-Ljava/util/jar/JarFile;->initializeVerifier()V
-Ljava/util/jar/JarFile;->jv:Ljava/util/jar/JarVerifier;
-Ljava/util/jar/JarFile;->jvInitialized:Z
-Ljava/util/jar/JarFile;->manEntry:Ljava/util/jar/JarEntry;
-Ljava/util/jar/JarFile;->match([C[B[I[I)Z
-Ljava/util/jar/JarFile;->maybeInstantiateVerifier()V
-Ljava/util/jar/JarFile;->META_DIR:Ljava/lang/String;
-Ljava/util/jar/JarFile;->newEntry(Ljava/util/zip/ZipEntry;)Ljava/util/jar/JarEntry;
-Ljava/util/jar/JarFile;->verify:Z
-Ljava/util/jar/JarInputStream;->checkManifest(Ljava/util/jar/JarEntry;)Ljava/util/jar/JarEntry;
-Ljava/util/jar/JarInputStream;->doVerify:Z
-Ljava/util/jar/JarInputStream;->first:Ljava/util/jar/JarEntry;
-Ljava/util/jar/JarInputStream;->getBytes(Ljava/io/InputStream;)[B
-Ljava/util/jar/JarInputStream;->jv:Ljava/util/jar/JarVerifier;
-Ljava/util/jar/JarInputStream;->man:Ljava/util/jar/Manifest;
-Ljava/util/jar/JarInputStream;->mev:Lsun/security/util/ManifestEntryVerifier;
-Ljava/util/jar/JarInputStream;->tryManifest:Z
-Ljava/util/jar/JarOutputStream;->firstEntry:Z
-Ljava/util/jar/JarOutputStream;->get16([BI)I
-Ljava/util/jar/JarOutputStream;->hasMagic([B)Z
-Ljava/util/jar/JarOutputStream;->JAR_MAGIC:I
-Ljava/util/jar/JarOutputStream;->set16([BII)V
-Ljava/util/jar/JarVerifier$VerifierCodeSource;-><init>(Ljava/lang/Object;Ljava/net/URL;[Ljava/security/cert/Certificate;)V
-Ljava/util/jar/JarVerifier$VerifierCodeSource;-><init>(Ljava/lang/Object;Ljava/net/URL;[Ljava/security/CodeSigner;)V
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->csdomain:Ljava/lang/Object;
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->getPrivateCertificates()[Ljava/security/cert/Certificate;
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->getPrivateSigners()[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->isSameDomain(Ljava/lang/Object;)Z
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->vcerts:[Ljava/security/cert/Certificate;
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->vlocation:Ljava/net/URL;
-Ljava/util/jar/JarVerifier$VerifierCodeSource;->vsigners:[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier$VerifierStream;-><init>(Ljava/util/jar/Manifest;Ljava/util/jar/JarEntry;Ljava/io/InputStream;Ljava/util/jar/JarVerifier;)V
-Ljava/util/jar/JarVerifier$VerifierStream;->is:Ljava/io/InputStream;
-Ljava/util/jar/JarVerifier$VerifierStream;->jv:Ljava/util/jar/JarVerifier;
-Ljava/util/jar/JarVerifier$VerifierStream;->mev:Lsun/security/util/ManifestEntryVerifier;
-Ljava/util/jar/JarVerifier$VerifierStream;->numLeft:J
-Ljava/util/jar/JarVerifier;-><init>([B)V
-Ljava/util/jar/JarVerifier;->anyToVerify:Z
-Ljava/util/jar/JarVerifier;->baos:Ljava/io/ByteArrayOutputStream;
-Ljava/util/jar/JarVerifier;->beginEntry(Ljava/util/jar/JarEntry;Lsun/security/util/ManifestEntryVerifier;)V
-Ljava/util/jar/JarVerifier;->csdomain:Ljava/lang/Object;
-Ljava/util/jar/JarVerifier;->debug:Lsun/security/util/Debug;
-Ljava/util/jar/JarVerifier;->doneWithMeta()V
-Ljava/util/jar/JarVerifier;->eagerValidation:Z
-Ljava/util/jar/JarVerifier;->emptyEnumeration:Ljava/util/Enumeration;
-Ljava/util/jar/JarVerifier;->emptySigner:[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier;->entries2(Ljava/util/jar/JarFile;Ljava/util/Enumeration;)Ljava/util/Enumeration;
-Ljava/util/jar/JarVerifier;->entryNames(Ljava/util/jar/JarFile;[Ljava/security/CodeSource;)Ljava/util/Enumeration;
-Ljava/util/jar/JarVerifier;->findMatchingSigners(Ljava/security/CodeSource;)[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier;->getCerts(Ljava/lang/String;)[Ljava/security/cert/Certificate;
-Ljava/util/jar/JarVerifier;->getCerts(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;)[Ljava/security/cert/Certificate;
-Ljava/util/jar/JarVerifier;->getCodeSigners(Ljava/lang/String;)[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier;->getCodeSigners(Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;)[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier;->getCodeSource(Ljava/net/URL;Ljava/lang/String;)Ljava/security/CodeSource;
-Ljava/util/jar/JarVerifier;->getCodeSource(Ljava/net/URL;Ljava/util/jar/JarFile;Ljava/util/jar/JarEntry;)Ljava/security/CodeSource;
-Ljava/util/jar/JarVerifier;->getCodeSources(Ljava/util/jar/JarFile;Ljava/net/URL;)[Ljava/security/CodeSource;
-Ljava/util/jar/JarVerifier;->getJarCodeSigners()Ljava/util/List;
-Ljava/util/jar/JarVerifier;->getManifestDigests()Ljava/util/List;
-Ljava/util/jar/JarVerifier;->getUnsignedCS(Ljava/net/URL;)Ljava/security/CodeSource;
-Ljava/util/jar/JarVerifier;->isSigningRelated(Ljava/lang/String;)Z
-Ljava/util/jar/JarVerifier;->jarCodeSigners:Ljava/util/List;
-Ljava/util/jar/JarVerifier;->lastURL:Ljava/net/URL;
-Ljava/util/jar/JarVerifier;->lastURLMap:Ljava/util/Map;
-Ljava/util/jar/JarVerifier;->manDig:Lsun/security/util/ManifestDigester;
-Ljava/util/jar/JarVerifier;->manifestDigests:Ljava/util/List;
-Ljava/util/jar/JarVerifier;->manifestRawBytes:[B
-Ljava/util/jar/JarVerifier;->mapSignersToCertArray([Ljava/security/CodeSigner;)[Ljava/security/cert/Certificate;
-Ljava/util/jar/JarVerifier;->mapSignersToCodeSource(Ljava/net/URL;[Ljava/security/CodeSigner;)Ljava/security/CodeSource;
-Ljava/util/jar/JarVerifier;->mapSignersToCodeSources(Ljava/net/URL;Ljava/util/List;Z)[Ljava/security/CodeSource;
-Ljava/util/jar/JarVerifier;->nothingToVerify()Z
-Ljava/util/jar/JarVerifier;->parsingBlockOrSF:Z
-Ljava/util/jar/JarVerifier;->parsingMeta:Z
-Ljava/util/jar/JarVerifier;->pendingBlocks:Ljava/util/ArrayList;
-Ljava/util/jar/JarVerifier;->processEntry(Lsun/security/util/ManifestEntryVerifier;)V
-Ljava/util/jar/JarVerifier;->setEagerValidation(Z)V
-Ljava/util/jar/JarVerifier;->sigFileData:Ljava/util/Hashtable;
-Ljava/util/jar/JarVerifier;->sigFileSigners:Ljava/util/Hashtable;
-Ljava/util/jar/JarVerifier;->signerCache:Ljava/util/ArrayList;
-Ljava/util/jar/JarVerifier;->signerMap()Ljava/util/Map;
-Ljava/util/jar/JarVerifier;->signerMap:Ljava/util/Map;
-Ljava/util/jar/JarVerifier;->signerToCodeSource:Ljava/util/Map;
-Ljava/util/jar/JarVerifier;->unsignedEntryNames(Ljava/util/jar/JarFile;)Ljava/util/Enumeration;
-Ljava/util/jar/JarVerifier;->update(ILsun/security/util/ManifestEntryVerifier;)V
-Ljava/util/jar/JarVerifier;->update(I[BIILsun/security/util/ManifestEntryVerifier;)V
-Ljava/util/jar/JarVerifier;->urlToCodeSourceMap:Ljava/util/Map;
-Ljava/util/jar/JarVerifier;->verifiedSigners:Ljava/util/Hashtable;
-Ljava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;)V
-Ljava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;I)V
-Ljava/util/jar/Manifest$FastInputStream;->buf:[B
-Ljava/util/jar/Manifest$FastInputStream;->count:I
-Ljava/util/jar/Manifest$FastInputStream;->fill()V
-Ljava/util/jar/Manifest$FastInputStream;->peek()B
-Ljava/util/jar/Manifest$FastInputStream;->pos:I
-Ljava/util/jar/Manifest$FastInputStream;->readLine([B)I
-Ljava/util/jar/Manifest$FastInputStream;->readLine([BII)I
-Ljava/util/jar/Manifest;->attr:Ljava/util/jar/Attributes;
-Ljava/util/jar/Manifest;->entries:Ljava/util/Map;
-Ljava/util/jar/Manifest;->make72Safe(Ljava/lang/StringBuffer;)V
-Ljava/util/jar/Manifest;->parseName([BI)Ljava/lang/String;
-Ljava/util/jar/Manifest;->toLower(I)I
-Ljava/util/jar/Pack200;-><init>()V
-Ljava/util/jar/Pack200;->newInstance(Ljava/lang/String;)Ljava/lang/Object;
-Ljava/util/jar/Pack200;->packerImpl:Ljava/lang/Class;
-Ljava/util/jar/Pack200;->PACK_PROVIDER:Ljava/lang/String;
-Ljava/util/jar/Pack200;->unpackerImpl:Ljava/lang/Class;
-Ljava/util/jar/Pack200;->UNPACK_PROVIDER:Ljava/lang/String;
-Ljava/util/LinkedHashMap$LinkedEntrySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/LinkedHashMap$LinkedHashIterator;->current:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap$LinkedHashIterator;->expectedModCount:I
-Ljava/util/LinkedHashMap$LinkedHashIterator;->next:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap$LinkedHashIterator;->nextNode()Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap$LinkedHashIterator;->remove()V
-Ljava/util/LinkedHashMap$LinkedHashMapEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
-Ljava/util/LinkedHashMap$LinkedHashMapEntry;->after:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap$LinkedHashMapEntry;->before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap$LinkedKeySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/LinkedHashMap$LinkedValues;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/LinkedHashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V
-Ljava/util/LinkedHashMap;->afterNodeInsertion(Z)V
-Ljava/util/LinkedHashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V
-Ljava/util/LinkedHashMap;->head:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V
-Ljava/util/LinkedHashMap;->linkNodeLast(Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
-Ljava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-Ljava/util/LinkedHashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
-Ljava/util/LinkedHashMap;->reinitialize()V
-Ljava/util/LinkedHashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-Ljava/util/LinkedHashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
-Ljava/util/LinkedHashMap;->tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap;->transferLinks(Ljava/util/LinkedHashMap$LinkedHashMapEntry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
-Ljava/util/LinkedList$DescendingIterator;->itr:Ljava/util/LinkedList$ListItr;
-Ljava/util/LinkedList$ListItr;->checkForComodification()V
-Ljava/util/LinkedList$ListItr;->expectedModCount:I
-Ljava/util/LinkedList$ListItr;->lastReturned:Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList$ListItr;->next:Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList$ListItr;->nextIndex:I
-Ljava/util/LinkedList$LLSpliterator;-><init>(Ljava/util/LinkedList;II)V
-Ljava/util/LinkedList$LLSpliterator;->batch:I
-Ljava/util/LinkedList$LLSpliterator;->BATCH_UNIT:I
-Ljava/util/LinkedList$LLSpliterator;->current:Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList$LLSpliterator;->est:I
-Ljava/util/LinkedList$LLSpliterator;->expectedModCount:I
-Ljava/util/LinkedList$LLSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/LinkedList$LLSpliterator;->getEst()I
-Ljava/util/LinkedList$LLSpliterator;->list:Ljava/util/LinkedList;
-Ljava/util/LinkedList$LLSpliterator;->MAX_BATCH:I
-Ljava/util/LinkedList$LLSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/LinkedList$Node;-><init>(Ljava/util/LinkedList$Node;Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
-Ljava/util/LinkedList$Node;->prev:Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList;->checkElementIndex(I)V
-Ljava/util/LinkedList;->checkPositionIndex(I)V
-Ljava/util/LinkedList;->isElementIndex(I)Z
-Ljava/util/LinkedList;->isPositionIndex(I)Z
-Ljava/util/LinkedList;->last:Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList;->linkBefore(Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
-Ljava/util/LinkedList;->linkFirst(Ljava/lang/Object;)V
-Ljava/util/LinkedList;->linkLast(Ljava/lang/Object;)V
-Ljava/util/LinkedList;->node(I)Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList;->outOfBoundsMsg(I)Ljava/lang/String;
-Ljava/util/LinkedList;->superClone()Ljava/util/LinkedList;
-Ljava/util/LinkedList;->unlink(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
-Ljava/util/LinkedList;->unlinkFirst(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
-Ljava/util/LinkedList;->unlinkLast(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
-Ljava/util/ListResourceBundle;->loadLookup()V
-Ljava/util/ListResourceBundle;->lookup:Ljava/util/Map;
-Ljava/util/Locale$Builder;->localeBuilder:Lsun/util/locale/InternalLocaleBuilder;
-Ljava/util/Locale$Cache;-><init>()V
-Ljava/util/Locale$Cache;->createObject(Ljava/util/Locale$LocaleKey;)Ljava/util/Locale;
-Ljava/util/Locale$Category;->countryKey:Ljava/lang/String;
-Ljava/util/Locale$Category;->languageKey:Ljava/lang/String;
-Ljava/util/Locale$Category;->scriptKey:Ljava/lang/String;
-Ljava/util/Locale$Category;->variantKey:Ljava/lang/String;
-Ljava/util/Locale$LanguageRange;->hash:I
-Ljava/util/Locale$LanguageRange;->isSubtagIllFormed(Ljava/lang/String;Z)Z
-Ljava/util/Locale$LanguageRange;->range:Ljava/lang/String;
-Ljava/util/Locale$LanguageRange;->weight:D
-Ljava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
-Ljava/util/Locale$LocaleKey;->base:Lsun/util/locale/BaseLocale;
-Ljava/util/Locale$LocaleKey;->exts:Lsun/util/locale/LocaleExtensions;
-Ljava/util/Locale$LocaleKey;->hash:I
-Ljava/util/Locale$NoImagePreloadHolder;-><init>()V
-Ljava/util/Locale$NoImagePreloadHolder;->defaultLocale:Ljava/util/Locale;
-Ljava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
-Ljava/util/Locale;->adjustLanguageCode(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Locale;->baseLocale:Lsun/util/locale/BaseLocale;
-Ljava/util/Locale;->composeList(Ljava/text/MessageFormat;[Ljava/lang/String;)[Ljava/lang/String;
-Ljava/util/Locale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Locale;->defaultDisplayLocale:Ljava/util/Locale;
-Ljava/util/Locale;->defaultFormatLocale:Ljava/util/Locale;
-Ljava/util/Locale;->DISPLAY_COUNTRY:I
-Ljava/util/Locale;->DISPLAY_LANGUAGE:I
-Ljava/util/Locale;->DISPLAY_SCRIPT:I
-Ljava/util/Locale;->DISPLAY_VARIANT:I
-Ljava/util/Locale;->formatList([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Locale;->getBaseLocale()Lsun/util/locale/BaseLocale;
-Ljava/util/Locale;->getCompatibilityExtensions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;
-Ljava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Locale;
-Ljava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
-Ljava/util/Locale;->getLocaleExtensions()Lsun/util/locale/LocaleExtensions;
-Ljava/util/Locale;->hashCodeValue:I
-Ljava/util/Locale;->initDefault()Ljava/util/Locale;
-Ljava/util/Locale;->initDefault(Ljava/util/Locale$Category;)Ljava/util/Locale;
-Ljava/util/Locale;->isAsciiAlphaNum(Ljava/lang/String;)Z
-Ljava/util/Locale;->isoCountries:[Ljava/lang/String;
-Ljava/util/Locale;->isoLanguages:[Ljava/lang/String;
-Ljava/util/Locale;->isUnicodeExtensionKey(Ljava/lang/String;)Z
-Ljava/util/Locale;->isUnM49AreaCode(Ljava/lang/String;)Z
-Ljava/util/Locale;->isValidBcp47Alpha(Ljava/lang/String;II)Z
-Ljava/util/Locale;->isValidVariantSubtag(Ljava/lang/String;)Z
-Ljava/util/Locale;->languageTag:Ljava/lang/String;
-Ljava/util/Locale;->LOCALECACHE:Ljava/util/Locale$Cache;
-Ljava/util/Locale;->localeExtensions:Lsun/util/locale/LocaleExtensions;
-Ljava/util/Locale;->normalizeAndValidateLanguage(Ljava/lang/String;Z)Ljava/lang/String;
-Ljava/util/Locale;->normalizeAndValidateRegion(Ljava/lang/String;Z)Ljava/lang/String;
-Ljava/util/Locale;->normalizeAndValidateVariant(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Locale;->UNDETERMINED_LANGUAGE:Ljava/lang/String;
-Ljava/util/logging/ConsoleHandler;->configure()V
-Ljava/util/logging/ErrorManager;->reported:Z
-Ljava/util/logging/FileHandler$InitializationErrorManager;-><init>()V
-Ljava/util/logging/FileHandler$InitializationErrorManager;->lastException:Ljava/lang/Exception;
-Ljava/util/logging/FileHandler$MeteredStream;->out:Ljava/io/OutputStream;
-Ljava/util/logging/FileHandler$MeteredStream;->written:I
-Ljava/util/logging/FileHandler;->append:Z
-Ljava/util/logging/FileHandler;->configure()V
-Ljava/util/logging/FileHandler;->count:I
-Ljava/util/logging/FileHandler;->files:[Ljava/io/File;
-Ljava/util/logging/FileHandler;->generate(Ljava/lang/String;II)Ljava/io/File;
-Ljava/util/logging/FileHandler;->isParentWritable(Ljava/nio/file/Path;)Z
-Ljava/util/logging/FileHandler;->limit:I
-Ljava/util/logging/FileHandler;->lockFileChannel:Ljava/nio/channels/FileChannel;
-Ljava/util/logging/FileHandler;->lockFileName:Ljava/lang/String;
-Ljava/util/logging/FileHandler;->locks:Ljava/util/Set;
-Ljava/util/logging/FileHandler;->MAX_LOCKS:I
-Ljava/util/logging/FileHandler;->meter:Ljava/util/logging/FileHandler$MeteredStream;
-Ljava/util/logging/FileHandler;->open(Ljava/io/File;Z)V
-Ljava/util/logging/FileHandler;->openFiles()V
-Ljava/util/logging/FileHandler;->pattern:Ljava/lang/String;
-Ljava/util/logging/FileHandler;->rotate()V
-Ljava/util/logging/Handler;->checkPermission()V
-Ljava/util/logging/Handler;->encoding:Ljava/lang/String;
-Ljava/util/logging/Handler;->errorManager:Ljava/util/logging/ErrorManager;
-Ljava/util/logging/Handler;->filter:Ljava/util/logging/Filter;
-Ljava/util/logging/Handler;->formatter:Ljava/util/logging/Formatter;
-Ljava/util/logging/Handler;->logLevel:Ljava/util/logging/Level;
-Ljava/util/logging/Handler;->manager:Ljava/util/logging/LogManager;
-Ljava/util/logging/Handler;->offValue:I
-Ljava/util/logging/Level$KnownLevel;-><init>(Ljava/util/logging/Level;)V
-Ljava/util/logging/Level$KnownLevel;->add(Ljava/util/logging/Level;)V
-Ljava/util/logging/Level$KnownLevel;->findByLocalizedLevelName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
-Ljava/util/logging/Level$KnownLevel;->findByName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
-Ljava/util/logging/Level$KnownLevel;->findByValue(I)Ljava/util/logging/Level$KnownLevel;
-Ljava/util/logging/Level$KnownLevel;->intToLevels:Ljava/util/Map;
-Ljava/util/logging/Level$KnownLevel;->levelObject:Ljava/util/logging/Level;
-Ljava/util/logging/Level$KnownLevel;->matches(Ljava/util/logging/Level;)Ljava/util/logging/Level$KnownLevel;
-Ljava/util/logging/Level$KnownLevel;->mirroredLevel:Ljava/util/logging/Level;
-Ljava/util/logging/Level$KnownLevel;->nameToLevels:Ljava/util/Map;
-Ljava/util/logging/Level;-><init>(Ljava/lang/String;ILjava/lang/String;Z)V
-Ljava/util/logging/Level;->cachedLocale:Ljava/util/Locale;
-Ljava/util/logging/Level;->computeLocalizedLevelName(Ljava/util/Locale;)Ljava/lang/String;
-Ljava/util/logging/Level;->defaultBundle:Ljava/lang/String;
-Ljava/util/logging/Level;->findLevel(Ljava/lang/String;)Ljava/util/logging/Level;
-Ljava/util/logging/Level;->getCachedLocalizedLevelName()Ljava/lang/String;
-Ljava/util/logging/Level;->getLevelName()Ljava/lang/String;
-Ljava/util/logging/Level;->getLocalizedLevelName()Ljava/lang/String;
-Ljava/util/logging/Level;->localizedLevelName:Ljava/lang/String;
-Ljava/util/logging/Level;->name:Ljava/lang/String;
-Ljava/util/logging/Level;->resourceBundleName:Ljava/lang/String;
-Ljava/util/logging/Level;->value:I
-Ljava/util/logging/Logger$LoggerBundle;-><init>(Ljava/lang/String;Ljava/util/ResourceBundle;)V
-Ljava/util/logging/Logger$LoggerBundle;->get(Ljava/lang/String;Ljava/util/ResourceBundle;)Ljava/util/logging/Logger$LoggerBundle;
-Ljava/util/logging/Logger$LoggerBundle;->isSystemBundle()Z
-Ljava/util/logging/Logger$LoggerBundle;->resourceBundleName:Ljava/lang/String;
-Ljava/util/logging/Logger$LoggerBundle;->userBundle:Ljava/util/ResourceBundle;
-Ljava/util/logging/Logger$SystemLoggerHelper;-><init>()V
-Ljava/util/logging/Logger$SystemLoggerHelper;->disableCallerCheck:Z
-Ljava/util/logging/Logger$SystemLoggerHelper;->getBooleanProperty(Ljava/lang/String;)Z
-Ljava/util/logging/Logger;-><init>(Ljava/lang/String;)V
-Ljava/util/logging/Logger;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/util/logging/LogManager;Z)V
-Ljava/util/logging/Logger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
-Ljava/util/logging/Logger;->anonymous:Z
-Ljava/util/logging/Logger;->callersClassLoaderRef:Ljava/lang/ref/WeakReference;
-Ljava/util/logging/Logger;->catalog:Ljava/util/ResourceBundle;
-Ljava/util/logging/Logger;->catalogLocale:Ljava/util/Locale;
-Ljava/util/logging/Logger;->catalogName:Ljava/lang/String;
-Ljava/util/logging/Logger;->checkPermission()V
-Ljava/util/logging/Logger;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
-Ljava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;)V
-Ljava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;Ljava/lang/String;)V
-Ljava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;Ljava/util/ResourceBundle;)V
-Ljava/util/logging/Logger;->doSetParent(Ljava/util/logging/Logger;)V
-Ljava/util/logging/Logger;->emptyHandlers:[Ljava/util/logging/Handler;
-Ljava/util/logging/Logger;->filter:Ljava/util/logging/Filter;
-Ljava/util/logging/Logger;->findResourceBundle(Ljava/lang/String;Z)Ljava/util/ResourceBundle;
-Ljava/util/logging/Logger;->findSystemResourceBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle;
-Ljava/util/logging/Logger;->getCallersClassLoader()Ljava/lang/ClassLoader;
-Ljava/util/logging/Logger;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle;
-Ljava/util/logging/Logger;->getPlatformLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
-Ljava/util/logging/Logger;->handlers:Ljava/util/concurrent/CopyOnWriteArrayList;
-Ljava/util/logging/Logger;->isLevelInitialized()Z
-Ljava/util/logging/Logger;->isSystemLogger:Z
-Ljava/util/logging/Logger;->kids:Ljava/util/ArrayList;
-Ljava/util/logging/Logger;->levelObject:Ljava/util/logging/Level;
-Ljava/util/logging/Logger;->levelValue:I
-Ljava/util/logging/Logger;->loggerBundle:Ljava/util/logging/Logger$LoggerBundle;
-Ljava/util/logging/Logger;->manager:Ljava/util/logging/LogManager;
-Ljava/util/logging/Logger;->name:Ljava/lang/String;
-Ljava/util/logging/Logger;->NO_RESOURCE_BUNDLE:Ljava/util/logging/Logger$LoggerBundle;
-Ljava/util/logging/Logger;->offValue:I
-Ljava/util/logging/Logger;->parent:Ljava/util/logging/Logger;
-Ljava/util/logging/Logger;->removeChildLogger(Ljava/util/logging/LogManager$LoggerWeakRef;)V
-Ljava/util/logging/Logger;->setCallersClassLoaderRef(Ljava/lang/Class;)V
-Ljava/util/logging/Logger;->setLogManager(Ljava/util/logging/LogManager;)V
-Ljava/util/logging/Logger;->setupResourceInfo(Ljava/lang/String;Ljava/lang/Class;)V
-Ljava/util/logging/Logger;->SYSTEM_BUNDLE:Ljava/util/logging/Logger$LoggerBundle;
-Ljava/util/logging/Logger;->SYSTEM_LOGGER_RB_NAME:Ljava/lang/String;
-Ljava/util/logging/Logger;->updateEffectiveLevel()V
-Ljava/util/logging/Logger;->useParentHandlers:Z
-Ljava/util/logging/LogManager$Beans;-><init>()V
-Ljava/util/logging/LogManager$Beans;->getClass(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/util/logging/LogManager$Beans;->invokePropertyChange(Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/util/logging/LogManager$Beans;->isBeansPresent()Z
-Ljava/util/logging/LogManager$Beans;->newPropertyChangeEvent(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/logging/LogManager$Beans;->propertyChangeEventClass:Ljava/lang/Class;
-Ljava/util/logging/LogManager$Beans;->propertyChangeListenerClass:Ljava/lang/Class;
-Ljava/util/logging/LogManager$Beans;->propertyChangeMethod:Ljava/lang/reflect/Method;
-Ljava/util/logging/LogManager$Beans;->propertyEventCtor:Ljava/lang/reflect/Constructor;
-Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;)Z
-Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;Ljava/util/logging/LogManager;)Z
-Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;Z)Z
-Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;ZLjava/util/logging/LogManager;)Z
-Ljava/util/logging/LogManager$LoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager$LoggerContext;->ensureAllDefaultLoggers(Ljava/util/logging/Logger;)V
-Ljava/util/logging/LogManager$LoggerContext;->ensureDefaultLogger(Ljava/util/logging/Logger;)V
-Ljava/util/logging/LogManager$LoggerContext;->ensureInitialized()V
-Ljava/util/logging/LogManager$LoggerContext;->findLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager$LoggerContext;->getGlobalLogger()Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager$LoggerContext;->getLoggerNames()Ljava/util/Enumeration;
-Ljava/util/logging/LogManager$LoggerContext;->getNode(Ljava/lang/String;)Ljava/util/logging/LogManager$LogNode;
-Ljava/util/logging/LogManager$LoggerContext;->getOwner()Ljava/util/logging/LogManager;
-Ljava/util/logging/LogManager$LoggerContext;->getRootLogger()Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager$LoggerContext;->namedLoggers:Ljava/util/Hashtable;
-Ljava/util/logging/LogManager$LoggerContext;->processParentHandlers(Ljava/util/logging/Logger;Ljava/lang/String;)V
-Ljava/util/logging/LogManager$LoggerContext;->removeLoggerRef(Ljava/lang/String;Ljava/util/logging/LogManager$LoggerWeakRef;)V
-Ljava/util/logging/LogManager$LoggerContext;->requiresDefaultLoggers()Z
-Ljava/util/logging/LogManager$LoggerContext;->root:Ljava/util/logging/LogManager$LogNode;
-Ljava/util/logging/LogManager$LoggerWeakRef;->dispose()V
-Ljava/util/logging/LogManager$LoggerWeakRef;->disposed:Z
-Ljava/util/logging/LogManager$LoggerWeakRef;->name:Ljava/lang/String;
-Ljava/util/logging/LogManager$LoggerWeakRef;->node:Ljava/util/logging/LogManager$LogNode;
-Ljava/util/logging/LogManager$LoggerWeakRef;->parentRef:Ljava/lang/ref/WeakReference;
-Ljava/util/logging/LogManager$LoggerWeakRef;->setNode(Ljava/util/logging/LogManager$LogNode;)V
-Ljava/util/logging/LogManager$LoggerWeakRef;->setParentRef(Ljava/lang/ref/WeakReference;)V
-Ljava/util/logging/LogManager$LogNode;-><init>(Ljava/util/logging/LogManager$LogNode;Ljava/util/logging/LogManager$LoggerContext;)V
-Ljava/util/logging/LogManager$LogNode;->children:Ljava/util/HashMap;
-Ljava/util/logging/LogManager$LogNode;->context:Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogManager$LogNode;->loggerRef:Ljava/util/logging/LogManager$LoggerWeakRef;
-Ljava/util/logging/LogManager$LogNode;->parent:Ljava/util/logging/LogManager$LogNode;
-Ljava/util/logging/LogManager$LogNode;->walkAndSetParent(Ljava/util/logging/Logger;)V
-Ljava/util/logging/LogManager$RootLogger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
-Ljava/util/logging/LogManager$SystemLoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager;-><init>(Ljava/lang/Void;)V
-Ljava/util/logging/LogManager;->checkPermission()V
-Ljava/util/logging/LogManager;->checkSubclassPermissions()Ljava/lang/Void;
-Ljava/util/logging/LogManager;->contexts()Ljava/util/List;
-Ljava/util/logging/LogManager;->contextsMap:Ljava/util/WeakHashMap;
-Ljava/util/logging/LogManager;->controlPermission:Ljava/security/Permission;
-Ljava/util/logging/LogManager;->deathImminent:Z
-Ljava/util/logging/LogManager;->defaultLevel:Ljava/util/logging/Level;
-Ljava/util/logging/LogManager;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager;->demandSystemLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager;->doSetLevel(Ljava/util/logging/Logger;Ljava/util/logging/Level;)V
-Ljava/util/logging/LogManager;->doSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V
-Ljava/util/logging/LogManager;->drainLoggerRefQueueBounded()V
-Ljava/util/logging/LogManager;->ensureLogManagerInitialized()V
-Ljava/util/logging/LogManager;->getBooleanProperty(Ljava/lang/String;Z)Z
-Ljava/util/logging/LogManager;->getClassInstance(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/util/logging/LogManager;->getFilterProperty(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter;
-Ljava/util/logging/LogManager;->getIntProperty(Ljava/lang/String;I)I
-Ljava/util/logging/LogManager;->getLevelProperty(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
-Ljava/util/logging/LogManager;->getStringProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/logging/LogManager;->getSystemContext()Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogManager;->getUserContext()Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogManager;->initializationDone:Z
-Ljava/util/logging/LogManager;->initializedCalled:Z
-Ljava/util/logging/LogManager;->initializedGlobalHandlers:Z
-Ljava/util/logging/LogManager;->initializeGlobalHandlers()V
-Ljava/util/logging/LogManager;->listenerMap:Ljava/util/Map;
-Ljava/util/logging/LogManager;->loadLoggerHandlers(Ljava/util/logging/Logger;Ljava/lang/String;Ljava/lang/String;)V
-Ljava/util/logging/LogManager;->loggerRefQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/util/logging/LogManager;->loggingMXBean:Ljava/util/logging/LoggingMXBean;
-Ljava/util/logging/LogManager;->manager:Ljava/util/logging/LogManager;
-Ljava/util/logging/LogManager;->MAX_ITERATIONS:I
-Ljava/util/logging/LogManager;->parseClassNames(Ljava/lang/String;)[Ljava/lang/String;
-Ljava/util/logging/LogManager;->props:Ljava/util/Properties;
-Ljava/util/logging/LogManager;->readPrimordialConfiguration()V
-Ljava/util/logging/LogManager;->readPrimordialConfiguration:Z
-Ljava/util/logging/LogManager;->resetLogger(Ljava/util/logging/Logger;)V
-Ljava/util/logging/LogManager;->rootLogger:Ljava/util/logging/Logger;
-Ljava/util/logging/LogManager;->setLevelsOnExistingLoggers()V
-Ljava/util/logging/LogManager;->systemContext:Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogManager;->userContext:Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogRecord;->defaultThreadID()I
-Ljava/util/logging/LogRecord;->globalSequenceNumber:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/logging/LogRecord;->inferCaller()V
-Ljava/util/logging/LogRecord;->isLoggerImplFrame(Ljava/lang/String;)Z
-Ljava/util/logging/LogRecord;->level:Ljava/util/logging/Level;
-Ljava/util/logging/LogRecord;->loggerName:Ljava/lang/String;
-Ljava/util/logging/LogRecord;->message:Ljava/lang/String;
-Ljava/util/logging/LogRecord;->millis:J
-Ljava/util/logging/LogRecord;->MIN_SEQUENTIAL_THREAD_ID:I
-Ljava/util/logging/LogRecord;->needToInferCaller:Z
-Ljava/util/logging/LogRecord;->nextThreadId:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/logging/LogRecord;->parameters:[Ljava/lang/Object;
-Ljava/util/logging/LogRecord;->resourceBundle:Ljava/util/ResourceBundle;
-Ljava/util/logging/LogRecord;->resourceBundleName:Ljava/lang/String;
-Ljava/util/logging/LogRecord;->sequenceNumber:J
-Ljava/util/logging/LogRecord;->sourceClassName:Ljava/lang/String;
-Ljava/util/logging/LogRecord;->sourceMethodName:Ljava/lang/String;
-Ljava/util/logging/LogRecord;->threadID:I
-Ljava/util/logging/LogRecord;->threadIds:Ljava/lang/ThreadLocal;
-Ljava/util/logging/LogRecord;->thrown:Ljava/lang/Throwable;
-Ljava/util/logging/MemoryHandler;->buffer:[Ljava/util/logging/LogRecord;
-Ljava/util/logging/MemoryHandler;->configure()V
-Ljava/util/logging/MemoryHandler;->count:I
-Ljava/util/logging/MemoryHandler;->DEFAULT_SIZE:I
-Ljava/util/logging/MemoryHandler;->init()V
-Ljava/util/logging/MemoryHandler;->pushLevel:Ljava/util/logging/Level;
-Ljava/util/logging/MemoryHandler;->size:I
-Ljava/util/logging/MemoryHandler;->start:I
-Ljava/util/logging/MemoryHandler;->target:Ljava/util/logging/Handler;
-Ljava/util/logging/SimpleFormatter;->dat:Ljava/util/Date;
-Ljava/util/logging/SimpleFormatter;->format:Ljava/lang/String;
-Ljava/util/logging/SocketHandler;->configure()V
-Ljava/util/logging/SocketHandler;->connect()V
-Ljava/util/logging/SocketHandler;->host:Ljava/lang/String;
-Ljava/util/logging/SocketHandler;->port:I
-Ljava/util/logging/SocketHandler;->sock:Ljava/net/Socket;
-Ljava/util/logging/StreamHandler;->configure()V
-Ljava/util/logging/StreamHandler;->doneHeader:Z
-Ljava/util/logging/StreamHandler;->flushAndClose()V
-Ljava/util/logging/StreamHandler;->output:Ljava/io/OutputStream;
-Ljava/util/logging/StreamHandler;->writer:Ljava/io/Writer;
-Ljava/util/logging/XMLFormatter;->a2(Ljava/lang/StringBuilder;I)V
-Ljava/util/logging/XMLFormatter;->appendISO8601(Ljava/lang/StringBuilder;J)V
-Ljava/util/logging/XMLFormatter;->escape(Ljava/lang/StringBuilder;Ljava/lang/String;)V
-Ljava/util/logging/XMLFormatter;->manager:Ljava/util/logging/LogManager;
-Ljava/util/LongSummaryStatistics;->count:J
-Ljava/util/LongSummaryStatistics;->max:J
-Ljava/util/LongSummaryStatistics;->min:J
-Ljava/util/LongSummaryStatistics;->sum:J
-Ljava/util/MissingFormatArgumentException;->s:Ljava/lang/String;
-Ljava/util/MissingFormatWidthException;->s:Ljava/lang/String;
-Ljava/util/MissingResourceException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/util/MissingResourceException;->className:Ljava/lang/String;
-Ljava/util/MissingResourceException;->key:Ljava/lang/String;
-Ljava/util/Objects;-><init>()V
-Ljava/util/Observable;->changed:Z
-Ljava/util/Observable;->obs:Ljava/util/Vector;
-Ljava/util/Optional;-><init>()V
-Ljava/util/Optional;-><init>(Ljava/lang/Object;)V
-Ljava/util/Optional;->EMPTY:Ljava/util/Optional;
-Ljava/util/Optional;->value:Ljava/lang/Object;
-Ljava/util/OptionalDouble;-><init>()V
-Ljava/util/OptionalDouble;-><init>(D)V
-Ljava/util/OptionalDouble;->EMPTY:Ljava/util/OptionalDouble;
-Ljava/util/OptionalDouble;->isPresent:Z
-Ljava/util/OptionalDouble;->value:D
-Ljava/util/OptionalInt;-><init>()V
-Ljava/util/OptionalInt;-><init>(I)V
-Ljava/util/OptionalInt;->EMPTY:Ljava/util/OptionalInt;
-Ljava/util/OptionalInt;->isPresent:Z
-Ljava/util/OptionalInt;->value:I
-Ljava/util/OptionalLong;-><init>()V
-Ljava/util/OptionalLong;-><init>(J)V
-Ljava/util/OptionalLong;->EMPTY:Ljava/util/OptionalLong;
-Ljava/util/OptionalLong;->isPresent:Z
-Ljava/util/OptionalLong;->value:J
-Ljava/util/prefs/AbstractPreferences$EventDispatchThread;-><init>()V
-Ljava/util/prefs/AbstractPreferences;->absolutePath:Ljava/lang/String;
-Ljava/util/prefs/AbstractPreferences;->EMPTY_ABSTRACT_PREFS_ARRAY:[Ljava/util/prefs/AbstractPreferences;
-Ljava/util/prefs/AbstractPreferences;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
-Ljava/util/prefs/AbstractPreferences;->enqueueNodeAddedEvent(Ljava/util/prefs/Preferences;)V
-Ljava/util/prefs/AbstractPreferences;->enqueueNodeRemovedEvent(Ljava/util/prefs/Preferences;)V
-Ljava/util/prefs/AbstractPreferences;->enqueuePreferenceChangeEvent(Ljava/lang/String;Ljava/lang/String;)V
-Ljava/util/prefs/AbstractPreferences;->eventDispatchThread:Ljava/lang/Thread;
-Ljava/util/prefs/AbstractPreferences;->eventQueue:Ljava/util/List;
-Ljava/util/prefs/AbstractPreferences;->flush2()V
-Ljava/util/prefs/AbstractPreferences;->kidCache:Ljava/util/Map;
-Ljava/util/prefs/AbstractPreferences;->name:Ljava/lang/String;
-Ljava/util/prefs/AbstractPreferences;->node(Ljava/util/StringTokenizer;)Ljava/util/prefs/Preferences;
-Ljava/util/prefs/AbstractPreferences;->nodeExists(Ljava/util/StringTokenizer;)Z
-Ljava/util/prefs/AbstractPreferences;->nodeListeners()[Ljava/util/prefs/NodeChangeListener;
-Ljava/util/prefs/AbstractPreferences;->nodeListeners:Ljava/util/ArrayList;
-Ljava/util/prefs/AbstractPreferences;->parent:Ljava/util/prefs/AbstractPreferences;
-Ljava/util/prefs/AbstractPreferences;->prefListeners()[Ljava/util/prefs/PreferenceChangeListener;
-Ljava/util/prefs/AbstractPreferences;->prefListeners:Ljava/util/ArrayList;
-Ljava/util/prefs/AbstractPreferences;->removed:Z
-Ljava/util/prefs/AbstractPreferences;->removeNode2()V
-Ljava/util/prefs/AbstractPreferences;->root:Ljava/util/prefs/AbstractPreferences;
-Ljava/util/prefs/AbstractPreferences;->startEventDispatchThreadIfNecessary()V
-Ljava/util/prefs/AbstractPreferences;->sync2()V
-Ljava/util/prefs/FileSystemPreferences$Change;->replay()V
-Ljava/util/prefs/FileSystemPreferences$NodeCreate;->replay()V
-Ljava/util/prefs/FileSystemPreferences$Put;->key:Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences$Put;->replay()V
-Ljava/util/prefs/FileSystemPreferences$Put;->value:Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences$Remove;->key:Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences$Remove;->replay()V
-Ljava/util/prefs/FileSystemPreferences;-><init>(Ljava/lang/String;Ljava/io/File;Z)V
-Ljava/util/prefs/FileSystemPreferences;-><init>(Ljava/util/prefs/FileSystemPreferences;Ljava/lang/String;)V
-Ljava/util/prefs/FileSystemPreferences;-><init>(Z)V
-Ljava/util/prefs/FileSystemPreferences;->byteArray(Ljava/lang/String;)[B
-Ljava/util/prefs/FileSystemPreferences;->changeLog:Ljava/util/List;
-Ljava/util/prefs/FileSystemPreferences;->checkLockFile0ErrorCode(I)V
-Ljava/util/prefs/FileSystemPreferences;->chmod(Ljava/lang/String;I)I
-Ljava/util/prefs/FileSystemPreferences;->dir:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->dirName(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences;->EACCES:I
-Ljava/util/prefs/FileSystemPreferences;->EAGAIN:I
-Ljava/util/prefs/FileSystemPreferences;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences;->ERROR_CODE:I
-Ljava/util/prefs/FileSystemPreferences;->getLogger()Lsun/util/logging/PlatformLogger;
-Ljava/util/prefs/FileSystemPreferences;->getSystemRoot()Ljava/util/prefs/Preferences;
-Ljava/util/prefs/FileSystemPreferences;->getUserRoot()Ljava/util/prefs/Preferences;
-Ljava/util/prefs/FileSystemPreferences;->initCacheIfNecessary()V
-Ljava/util/prefs/FileSystemPreferences;->INIT_SLEEP_TIME:I
-Ljava/util/prefs/FileSystemPreferences;->isDirChar(C)Z
-Ljava/util/prefs/FileSystemPreferences;->isSystemRootModified:Z
-Ljava/util/prefs/FileSystemPreferences;->isSystemRootWritable:Z
-Ljava/util/prefs/FileSystemPreferences;->isUserNode:Z
-Ljava/util/prefs/FileSystemPreferences;->isUserRootModified:Z
-Ljava/util/prefs/FileSystemPreferences;->isUserRootWritable:Z
-Ljava/util/prefs/FileSystemPreferences;->lastSyncTime:J
-Ljava/util/prefs/FileSystemPreferences;->loadCache()V
-Ljava/util/prefs/FileSystemPreferences;->lockFile(Z)Z
-Ljava/util/prefs/FileSystemPreferences;->lockFile0(Ljava/lang/String;IZ)[I
-Ljava/util/prefs/FileSystemPreferences;->LOCK_HANDLE:I
-Ljava/util/prefs/FileSystemPreferences;->MAX_ATTEMPTS:I
-Ljava/util/prefs/FileSystemPreferences;->nodeCreate:Ljava/util/prefs/FileSystemPreferences$NodeCreate;
-Ljava/util/prefs/FileSystemPreferences;->nodeName(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences;->prefsCache:Ljava/util/Map;
-Ljava/util/prefs/FileSystemPreferences;->prefsFile:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->replayChanges()V
-Ljava/util/prefs/FileSystemPreferences;->setupSystemRoot()V
-Ljava/util/prefs/FileSystemPreferences;->setupUserRoot()V
-Ljava/util/prefs/FileSystemPreferences;->syncSpiPrivileged()V
-Ljava/util/prefs/FileSystemPreferences;->syncWorld()V
-Ljava/util/prefs/FileSystemPreferences;->systemLockFile:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->systemRoot:Ljava/util/prefs/Preferences;
-Ljava/util/prefs/FileSystemPreferences;->systemRootDir:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->systemRootLockHandle:I
-Ljava/util/prefs/FileSystemPreferences;->systemRootModFile:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->systemRootModTime:J
-Ljava/util/prefs/FileSystemPreferences;->tmpFile:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->unlockFile()V
-Ljava/util/prefs/FileSystemPreferences;->unlockFile0(I)I
-Ljava/util/prefs/FileSystemPreferences;->userLockFile:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->userRoot:Ljava/util/prefs/Preferences;
-Ljava/util/prefs/FileSystemPreferences;->userRootDir:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->userRootLockHandle:I
-Ljava/util/prefs/FileSystemPreferences;->userRootModFile:Ljava/io/File;
-Ljava/util/prefs/FileSystemPreferences;->userRootModTime:J
-Ljava/util/prefs/FileSystemPreferences;->USER_READ_WRITE:I
-Ljava/util/prefs/FileSystemPreferences;->USER_RWX:I
-Ljava/util/prefs/FileSystemPreferences;->USER_RWX_ALL_RX:I
-Ljava/util/prefs/FileSystemPreferences;->USER_RW_ALL_READ:I
-Ljava/util/prefs/FileSystemPreferences;->writeBackCache()V
-Ljava/util/prefs/NodeChangeEvent;->child:Ljava/util/prefs/Preferences;
-Ljava/util/prefs/PreferenceChangeEvent;->key:Ljava/lang/String;
-Ljava/util/prefs/PreferenceChangeEvent;->newValue:Ljava/lang/String;
-Ljava/util/prefs/Preferences;->factory:Ljava/util/prefs/PreferencesFactory;
-Ljava/util/prefs/Preferences;->findPreferencesFactory()Ljava/util/prefs/PreferencesFactory;
-Ljava/util/prefs/Preferences;->nodeName(Ljava/lang/Class;)Ljava/lang/String;
-Ljava/util/prefs/Preferences;->prefsPerm:Ljava/security/Permission;
-Ljava/util/prefs/Preferences;->setPreferencesFactory(Ljava/util/prefs/PreferencesFactory;)Ljava/util/prefs/PreferencesFactory;
-Ljava/util/PriorityQueue$Itr;->cursor:I
-Ljava/util/PriorityQueue$Itr;->expectedModCount:I
-Ljava/util/PriorityQueue$Itr;->forgetMeNot:Ljava/util/ArrayDeque;
-Ljava/util/PriorityQueue$Itr;->lastRet:I
-Ljava/util/PriorityQueue$Itr;->lastRetElt:Ljava/lang/Object;
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;-><init>(Ljava/util/PriorityQueue;III)V
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->expectedModCount:I
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->fence:I
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->getFence()I
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->index:I
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->pq:Ljava/util/PriorityQueue;
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/PriorityQueue;->comparator:Ljava/util/Comparator;
-Ljava/util/PriorityQueue;->DEFAULT_INITIAL_CAPACITY:I
-Ljava/util/PriorityQueue;->grow(I)V
-Ljava/util/PriorityQueue;->heapify()V
-Ljava/util/PriorityQueue;->hugeCapacity(I)I
-Ljava/util/PriorityQueue;->indexOf(Ljava/lang/Object;)I
-Ljava/util/PriorityQueue;->initElementsFromCollection(Ljava/util/Collection;)V
-Ljava/util/PriorityQueue;->initFromCollection(Ljava/util/Collection;)V
-Ljava/util/PriorityQueue;->initFromPriorityQueue(Ljava/util/PriorityQueue;)V
-Ljava/util/PriorityQueue;->MAX_ARRAY_SIZE:I
-Ljava/util/PriorityQueue;->removeAt(I)Ljava/lang/Object;
-Ljava/util/PriorityQueue;->removeEq(Ljava/lang/Object;)Z
-Ljava/util/PriorityQueue;->siftDown(ILjava/lang/Object;)V
-Ljava/util/PriorityQueue;->siftDownComparable(ILjava/lang/Object;)V
-Ljava/util/PriorityQueue;->siftDownUsingComparator(ILjava/lang/Object;)V
-Ljava/util/PriorityQueue;->siftUp(ILjava/lang/Object;)V
-Ljava/util/PriorityQueue;->siftUpComparable(ILjava/lang/Object;)V
-Ljava/util/PriorityQueue;->siftUpUsingComparator(ILjava/lang/Object;)V
-Ljava/util/Properties$LineReader;->inByteBuf:[B
-Ljava/util/Properties$LineReader;->inCharBuf:[C
-Ljava/util/Properties$LineReader;->inLimit:I
-Ljava/util/Properties$LineReader;->inOff:I
-Ljava/util/Properties$LineReader;->inStream:Ljava/io/InputStream;
-Ljava/util/Properties$LineReader;->lineBuf:[C
-Ljava/util/Properties$LineReader;->reader:Ljava/io/Reader;
-Ljava/util/Properties$LineReader;->readLine()I
-Ljava/util/Properties;->enumerate(Ljava/util/Hashtable;)V
-Ljava/util/Properties;->enumerateStringProperties(Ljava/util/Hashtable;)V
-Ljava/util/Properties;->hexDigit:[C
-Ljava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V
-Ljava/util/Properties;->loadConvert([CII[C)Ljava/lang/String;
-Ljava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V
-Ljava/util/Properties;->toHex(I)C
-Ljava/util/Properties;->writeComments(Ljava/io/BufferedWriter;Ljava/lang/String;)V
-Ljava/util/PropertyResourceBundle;->lookup:Ljava/util/Map;
-Ljava/util/Random$RandomDoublesSpliterator;-><init>(Ljava/util/Random;JJDD)V
-Ljava/util/Random$RandomDoublesSpliterator;->bound:D
-Ljava/util/Random$RandomDoublesSpliterator;->fence:J
-Ljava/util/Random$RandomDoublesSpliterator;->index:J
-Ljava/util/Random$RandomDoublesSpliterator;->origin:D
-Ljava/util/Random$RandomDoublesSpliterator;->rng:Ljava/util/Random;
-Ljava/util/Random$RandomIntsSpliterator;-><init>(Ljava/util/Random;JJII)V
-Ljava/util/Random$RandomIntsSpliterator;->bound:I
-Ljava/util/Random$RandomIntsSpliterator;->fence:J
-Ljava/util/Random$RandomIntsSpliterator;->index:J
-Ljava/util/Random$RandomIntsSpliterator;->origin:I
-Ljava/util/Random$RandomIntsSpliterator;->rng:Ljava/util/Random;
-Ljava/util/Random$RandomLongsSpliterator;-><init>(Ljava/util/Random;JJJJ)V
-Ljava/util/Random$RandomLongsSpliterator;->bound:J
-Ljava/util/Random$RandomLongsSpliterator;->fence:J
-Ljava/util/Random$RandomLongsSpliterator;->index:J
-Ljava/util/Random$RandomLongsSpliterator;->origin:J
-Ljava/util/Random$RandomLongsSpliterator;->rng:Ljava/util/Random;
-Ljava/util/Random;->addend:J
-Ljava/util/Random;->BadBound:Ljava/lang/String;
-Ljava/util/Random;->BadRange:Ljava/lang/String;
-Ljava/util/Random;->BadSize:Ljava/lang/String;
-Ljava/util/Random;->DOUBLE_UNIT:D
-Ljava/util/Random;->haveNextNextGaussian:Z
-Ljava/util/Random;->initialScramble(J)J
-Ljava/util/Random;->internalNextDouble(DD)D
-Ljava/util/Random;->internalNextInt(II)I
-Ljava/util/Random;->internalNextLong(JJ)J
-Ljava/util/Random;->mask:J
-Ljava/util/Random;->multiplier:J
-Ljava/util/Random;->nextNextGaussian:D
-Ljava/util/Random;->resetSeed(J)V
-Ljava/util/Random;->seed:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/Random;->seedOffset:J
-Ljava/util/Random;->seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/Random;->unsafe:Lsun/misc/Unsafe;
-Ljava/util/regex/Matcher$OffsetBasedMatchResult;-><init>(Ljava/lang/String;[I)V
-Ljava/util/regex/Matcher$OffsetBasedMatchResult;->input:Ljava/lang/String;
-Ljava/util/regex/Matcher$OffsetBasedMatchResult;->offsets:[I
-Ljava/util/regex/Matcher;-><init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V
-Ljava/util/regex/Matcher;->address:J
-Ljava/util/regex/Matcher;->anchoringBounds:Z
-Ljava/util/regex/Matcher;->appendEvaluated(Ljava/lang/StringBuffer;Ljava/lang/String;)V
-Ljava/util/regex/Matcher;->ensureMatch()V
-Ljava/util/regex/Matcher;->findImpl(JI[I)Z
-Ljava/util/regex/Matcher;->findNextImpl(J[I)Z
-Ljava/util/regex/Matcher;->getMatchedGroupIndex(JLjava/lang/String;)I
-Ljava/util/regex/Matcher;->getMatchedGroupIndex0(JLjava/lang/String;)I
-Ljava/util/regex/Matcher;->getNativeFinalizer()J
-Ljava/util/regex/Matcher;->groupCountImpl(J)I
-Ljava/util/regex/Matcher;->hitEndImpl(J)Z
-Ljava/util/regex/Matcher;->input:Ljava/lang/String;
-Ljava/util/regex/Matcher;->lookingAtImpl(J[I)Z
-Ljava/util/regex/Matcher;->matchesImpl(J[I)Z
-Ljava/util/regex/Matcher;->matchFound:Z
-Ljava/util/regex/Matcher;->matchOffsets:[I
-Ljava/util/regex/Matcher;->nativeFinalizer:Ljava/lang/Runnable;
-Ljava/util/regex/Matcher;->nativeSize()I
-Ljava/util/regex/Matcher;->openImpl(J)J
-Ljava/util/regex/Matcher;->originalInput:Ljava/lang/CharSequence;
-Ljava/util/regex/Matcher;->pattern:Ljava/util/regex/Pattern;
-Ljava/util/regex/Matcher;->regionEnd:I
-Ljava/util/regex/Matcher;->regionStart:I
-Ljava/util/regex/Matcher;->registry:Llibcore/util/NativeAllocationRegistry;
-Ljava/util/regex/Matcher;->requireEndImpl(J)Z
-Ljava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;II)Ljava/util/regex/Matcher;
-Ljava/util/regex/Matcher;->resetForInput()V
-Ljava/util/regex/Matcher;->setInputImpl(JLjava/lang/String;II)V
-Ljava/util/regex/Matcher;->transparentBounds:Z
-Ljava/util/regex/Matcher;->useAnchoringBoundsImpl(JZ)V
-Ljava/util/regex/Matcher;->useTransparentBoundsImpl(JZ)V
-Ljava/util/regex/Pattern;-><init>(Ljava/lang/String;I)V
-Ljava/util/regex/Pattern;->address:J
-Ljava/util/regex/Pattern;->compile()V
-Ljava/util/regex/Pattern;->compileImpl(Ljava/lang/String;I)J
-Ljava/util/regex/Pattern;->fastSplit(Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String;
-Ljava/util/regex/Pattern;->FASTSPLIT_METACHARACTERS:Ljava/lang/String;
-Ljava/util/regex/Pattern;->flags:I
-Ljava/util/regex/Pattern;->getNativeFinalizer()J
-Ljava/util/regex/Pattern;->nativeSize()I
-Ljava/util/regex/Pattern;->pattern:Ljava/lang/String;
-Ljava/util/regex/Pattern;->registry:Llibcore/util/NativeAllocationRegistry;
-Ljava/util/regex/PatternSyntaxException;->desc:Ljava/lang/String;
-Ljava/util/regex/PatternSyntaxException;->index:I
-Ljava/util/regex/PatternSyntaxException;->nl:Ljava/lang/String;
-Ljava/util/regex/PatternSyntaxException;->pattern:Ljava/lang/String;
-Ljava/util/ResourceBundle$BundleReference;-><init>(Ljava/util/ResourceBundle;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
-Ljava/util/ResourceBundle$BundleReference;->cacheKey:Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$BundleReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$CacheKey;-><init>(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)V
-Ljava/util/ResourceBundle$CacheKey;->calculateHashCode()V
-Ljava/util/ResourceBundle$CacheKey;->cause:Ljava/lang/Throwable;
-Ljava/util/ResourceBundle$CacheKey;->expirationTime:J
-Ljava/util/ResourceBundle$CacheKey;->format:Ljava/lang/String;
-Ljava/util/ResourceBundle$CacheKey;->getCause()Ljava/lang/Throwable;
-Ljava/util/ResourceBundle$CacheKey;->getFormat()Ljava/lang/String;
-Ljava/util/ResourceBundle$CacheKey;->getLoader()Ljava/lang/ClassLoader;
-Ljava/util/ResourceBundle$CacheKey;->getLocale()Ljava/util/Locale;
-Ljava/util/ResourceBundle$CacheKey;->getName()Ljava/lang/String;
-Ljava/util/ResourceBundle$CacheKey;->hashCodeCache:I
-Ljava/util/ResourceBundle$CacheKey;->loaderRef:Ljava/util/ResourceBundle$LoaderReference;
-Ljava/util/ResourceBundle$CacheKey;->loadTime:J
-Ljava/util/ResourceBundle$CacheKey;->locale:Ljava/util/Locale;
-Ljava/util/ResourceBundle$CacheKey;->name:Ljava/lang/String;
-Ljava/util/ResourceBundle$CacheKey;->setCause(Ljava/lang/Throwable;)V
-Ljava/util/ResourceBundle$CacheKey;->setFormat(Ljava/lang/String;)V
-Ljava/util/ResourceBundle$CacheKey;->setLocale(Ljava/util/Locale;)Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$CacheKey;->setName(Ljava/lang/String;)Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$CacheKeyReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$Control$CandidateListCache;-><init>()V
-Ljava/util/ResourceBundle$Control$CandidateListCache;->createObject(Lsun/util/locale/BaseLocale;)Ljava/util/List;
-Ljava/util/ResourceBundle$Control$CandidateListCache;->getDefaultList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
-Ljava/util/ResourceBundle$Control;->CANDIDATES_CACHE:Ljava/util/ResourceBundle$Control$CandidateListCache;
-Ljava/util/ResourceBundle$Control;->INSTANCE:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$Control;->toResourceName0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/ResourceBundle$LoaderReference;-><init>(Ljava/lang/ClassLoader;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
-Ljava/util/ResourceBundle$LoaderReference;->cacheKey:Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$LoaderReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$NoFallbackControl;-><init>(Ljava/util/List;)V
-Ljava/util/ResourceBundle$NoFallbackControl;->CLASS_ONLY_NO_FALLBACK:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$NoFallbackControl;->NO_FALLBACK:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$NoFallbackControl;->PROPERTIES_ONLY_NO_FALLBACK:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$RBClassLoader;-><init>()V
-Ljava/util/ResourceBundle$RBClassLoader;->INSTANCE:Ljava/util/ResourceBundle$RBClassLoader;
-Ljava/util/ResourceBundle$RBClassLoader;->loader:Ljava/lang/ClassLoader;
-Ljava/util/ResourceBundle$SingleFormatControl;-><init>(Ljava/util/List;)V
-Ljava/util/ResourceBundle$SingleFormatControl;->CLASS_ONLY:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$SingleFormatControl;->formats:Ljava/util/List;
-Ljava/util/ResourceBundle$SingleFormatControl;->PROPERTIES_ONLY:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle;->cacheKey:Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle;->cacheList:Ljava/util/concurrent/ConcurrentMap;
-Ljava/util/ResourceBundle;->checkList(Ljava/util/List;)Z
-Ljava/util/ResourceBundle;->expired:Z
-Ljava/util/ResourceBundle;->findBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/List;ILjava/util/ResourceBundle$Control;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
-Ljava/util/ResourceBundle;->findBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
-Ljava/util/ResourceBundle;->getBundleImpl(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
-Ljava/util/ResourceBundle;->getDefaultControl(Ljava/lang/String;)Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle;->getLoader(Ljava/lang/ClassLoader;)Ljava/lang/ClassLoader;
-Ljava/util/ResourceBundle;->hasValidParentChain(Ljava/util/ResourceBundle;)Z
-Ljava/util/ResourceBundle;->INITIAL_CACHE_SIZE:I
-Ljava/util/ResourceBundle;->isValidBundle(Ljava/util/ResourceBundle;)Z
-Ljava/util/ResourceBundle;->keySet:Ljava/util/Set;
-Ljava/util/ResourceBundle;->loadBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/ResourceBundle$Control;Z)Ljava/util/ResourceBundle;
-Ljava/util/ResourceBundle;->locale:Ljava/util/Locale;
-Ljava/util/ResourceBundle;->name:Ljava/lang/String;
-Ljava/util/ResourceBundle;->NONEXISTENT_BUNDLE:Ljava/util/ResourceBundle;
-Ljava/util/ResourceBundle;->putBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
-Ljava/util/ResourceBundle;->referenceQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/util/ResourceBundle;->setExpirationTime(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)V
-Ljava/util/ResourceBundle;->throwMissingResourceException(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Throwable;)V
-Ljava/util/Scanner;-><init>(Ljava/io/File;Ljava/nio/charset/CharsetDecoder;)V
-Ljava/util/Scanner;-><init>(Ljava/lang/Readable;Ljava/util/regex/Pattern;)V
-Ljava/util/Scanner;-><init>(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)V
-Ljava/util/Scanner;->BOOLEAN_PATTERN:Ljava/lang/String;
-Ljava/util/Scanner;->boolPattern()Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->boolPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->buf:Ljava/nio/CharBuffer;
-Ljava/util/Scanner;->BUFFER_SIZE:I
-Ljava/util/Scanner;->buildFloatAndDecimalPattern()V
-Ljava/util/Scanner;->buildIntegerPatternString()Ljava/lang/String;
-Ljava/util/Scanner;->cacheResult()V
-Ljava/util/Scanner;->cacheResult(Ljava/lang/String;)V
-Ljava/util/Scanner;->clearCaches()V
-Ljava/util/Scanner;->closed:Z
-Ljava/util/Scanner;->decimalPattern()Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->decimalPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->decimalSeparator:Ljava/lang/String;
-Ljava/util/Scanner;->defaultRadix:I
-Ljava/util/Scanner;->delimPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->digits:Ljava/lang/String;
-Ljava/util/Scanner;->ensureOpen()V
-Ljava/util/Scanner;->findPatternInBuffer(Ljava/util/regex/Pattern;I)Ljava/lang/String;
-Ljava/util/Scanner;->FIND_ANY_PATTERN:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->floatPattern()Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->floatPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->getCachedResult()Ljava/lang/String;
-Ljava/util/Scanner;->getCompleteTokenInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
-Ljava/util/Scanner;->groupSeparator:Ljava/lang/String;
-Ljava/util/Scanner;->hasNextPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->hasNextPosition:I
-Ljava/util/Scanner;->hasNextResult:Ljava/lang/String;
-Ljava/util/Scanner;->hasTokenInBuffer()Z
-Ljava/util/Scanner;->infinityString:Ljava/lang/String;
-Ljava/util/Scanner;->integerPattern()Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->integerPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->lastException:Ljava/io/IOException;
-Ljava/util/Scanner;->linePattern()Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->linePattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->LINE_PATTERN:Ljava/lang/String;
-Ljava/util/Scanner;->LINE_SEPARATOR_PATTERN:Ljava/lang/String;
-Ljava/util/Scanner;->locale:Ljava/util/Locale;
-Ljava/util/Scanner;->makeReadable(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/Readable;
-Ljava/util/Scanner;->makeReadable(Ljava/nio/channels/ReadableByteChannel;)Ljava/lang/Readable;
-Ljava/util/Scanner;->makeReadable(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;)Ljava/lang/Readable;
-Ljava/util/Scanner;->makeSpace()Z
-Ljava/util/Scanner;->matcher:Ljava/util/regex/Matcher;
-Ljava/util/Scanner;->matchPatternInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
-Ljava/util/Scanner;->matchValid:Z
-Ljava/util/Scanner;->nanString:Ljava/lang/String;
-Ljava/util/Scanner;->needInput:Z
-Ljava/util/Scanner;->negativePrefix:Ljava/lang/String;
-Ljava/util/Scanner;->negativeSuffix:Ljava/lang/String;
-Ljava/util/Scanner;->non0Digit:Ljava/lang/String;
-Ljava/util/Scanner;->NON_ASCII_DIGIT:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->patternCache:Lsun/misc/LRUCache;
-Ljava/util/Scanner;->position:I
-Ljava/util/Scanner;->positivePrefix:Ljava/lang/String;
-Ljava/util/Scanner;->positiveSuffix:Ljava/lang/String;
-Ljava/util/Scanner;->processFloatToken(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Scanner;->processIntegerToken(Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/Scanner;->radix:I
-Ljava/util/Scanner;->readInput()V
-Ljava/util/Scanner;->revertState()V
-Ljava/util/Scanner;->revertState(Z)Z
-Ljava/util/Scanner;->savedScannerPosition:I
-Ljava/util/Scanner;->saveState()V
-Ljava/util/Scanner;->separatorPattern()Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->separatorPattern:Ljava/util/regex/Pattern;
-Ljava/util/Scanner;->setRadix(I)V
-Ljava/util/Scanner;->SIMPLE_GROUP_INDEX:I
-Ljava/util/Scanner;->skipped:Z
-Ljava/util/Scanner;->source:Ljava/lang/Readable;
-Ljava/util/Scanner;->sourceClosed:Z
-Ljava/util/Scanner;->throwFor()V
-Ljava/util/Scanner;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
-Ljava/util/Scanner;->toDecoder(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;
-Ljava/util/Scanner;->translateSavedIndexes(I)V
-Ljava/util/Scanner;->typeCache:Ljava/lang/Object;
-Ljava/util/Scanner;->useTypeCache()V
-Ljava/util/Scanner;->WHITESPACE_PATTERN:Ljava/util/regex/Pattern;
-Ljava/util/ServiceLoader$LazyIterator;->configs:Ljava/util/Enumeration;
-Ljava/util/ServiceLoader$LazyIterator;->hasNextService()Z
-Ljava/util/ServiceLoader$LazyIterator;->loader:Ljava/lang/ClassLoader;
-Ljava/util/ServiceLoader$LazyIterator;->nextName:Ljava/lang/String;
-Ljava/util/ServiceLoader$LazyIterator;->nextService()Ljava/lang/Object;
-Ljava/util/ServiceLoader$LazyIterator;->pending:Ljava/util/Iterator;
-Ljava/util/ServiceLoader$LazyIterator;->service:Ljava/lang/Class;
-Ljava/util/ServiceLoader;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V
-Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;)V
-Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/util/ServiceLoader;->fail(Ljava/lang/Class;Ljava/net/URL;ILjava/lang/String;)V
-Ljava/util/ServiceLoader;->loader:Ljava/lang/ClassLoader;
-Ljava/util/ServiceLoader;->loadFromSystemProperty(Ljava/lang/Class;)Ljava/lang/Object;
-Ljava/util/ServiceLoader;->lookupIterator:Ljava/util/ServiceLoader$LazyIterator;
-Ljava/util/ServiceLoader;->parse(Ljava/lang/Class;Ljava/net/URL;)Ljava/util/Iterator;
-Ljava/util/ServiceLoader;->parseLine(Ljava/lang/Class;Ljava/net/URL;Ljava/io/BufferedReader;ILjava/util/List;)I
-Ljava/util/ServiceLoader;->PREFIX:Ljava/lang/String;
-Ljava/util/ServiceLoader;->providers:Ljava/util/LinkedHashMap;
-Ljava/util/ServiceLoader;->service:Ljava/lang/Class;
-Ljava/util/SimpleTimeZone;->cacheEnd:J
-Ljava/util/SimpleTimeZone;->cacheStart:J
-Ljava/util/SimpleTimeZone;->cacheYear:J
-Ljava/util/SimpleTimeZone;->currentSerialVersion:I
-Ljava/util/SimpleTimeZone;->decodeEndRule()V
-Ljava/util/SimpleTimeZone;->decodeRules()V
-Ljava/util/SimpleTimeZone;->decodeStartRule()V
-Ljava/util/SimpleTimeZone;->DOM_MODE:I
-Ljava/util/SimpleTimeZone;->DOW_GE_DOM_MODE:I
-Ljava/util/SimpleTimeZone;->DOW_IN_MONTH_MODE:I
-Ljava/util/SimpleTimeZone;->DOW_LE_DOM_MODE:I
-Ljava/util/SimpleTimeZone;->dstSavings:I
-Ljava/util/SimpleTimeZone;->endDay:I
-Ljava/util/SimpleTimeZone;->endDayOfWeek:I
-Ljava/util/SimpleTimeZone;->endMode:I
-Ljava/util/SimpleTimeZone;->endMonth:I
-Ljava/util/SimpleTimeZone;->endTime:I
-Ljava/util/SimpleTimeZone;->endTimeMode:I
-Ljava/util/SimpleTimeZone;->gcal:Lsun/util/calendar/Gregorian;
-Ljava/util/SimpleTimeZone;->getEnd(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;I)J
-Ljava/util/SimpleTimeZone;->getOffset(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;IJ)I
-Ljava/util/SimpleTimeZone;->getOffsets(J[I)I
-Ljava/util/SimpleTimeZone;->getStart(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;I)J
-Ljava/util/SimpleTimeZone;->getTransition(Lsun/util/calendar/BaseCalendar;Lsun/util/calendar/BaseCalendar$Date;IIIIII)J
-Ljava/util/SimpleTimeZone;->invalidateCache()V
-Ljava/util/SimpleTimeZone;->makeRulesCompatible()V
-Ljava/util/SimpleTimeZone;->millisPerDay:I
-Ljava/util/SimpleTimeZone;->millisPerHour:I
-Ljava/util/SimpleTimeZone;->monthLength:[B
-Ljava/util/SimpleTimeZone;->packRules()[B
-Ljava/util/SimpleTimeZone;->packTimes()[I
-Ljava/util/SimpleTimeZone;->rawOffset:I
-Ljava/util/SimpleTimeZone;->serialVersionOnStream:I
-Ljava/util/SimpleTimeZone;->startDay:I
-Ljava/util/SimpleTimeZone;->startDayOfWeek:I
-Ljava/util/SimpleTimeZone;->startMode:I
-Ljava/util/SimpleTimeZone;->startMonth:I
-Ljava/util/SimpleTimeZone;->startTime:I
-Ljava/util/SimpleTimeZone;->startTimeMode:I
-Ljava/util/SimpleTimeZone;->startYear:I
-Ljava/util/SimpleTimeZone;->staticLeapMonthLength:[B
-Ljava/util/SimpleTimeZone;->staticMonthLength:[B
-Ljava/util/SimpleTimeZone;->unpackRules([B)V
-Ljava/util/SimpleTimeZone;->unpackTimes([I)V
-Ljava/util/SimpleTimeZone;->useDaylight:Z
-Ljava/util/Spliterators$AbstractDoubleSpliterator$HoldingDoubleConsumer;-><init>()V
-Ljava/util/Spliterators$AbstractDoubleSpliterator$HoldingDoubleConsumer;->value:D
-Ljava/util/Spliterators$AbstractDoubleSpliterator;->batch:I
-Ljava/util/Spliterators$AbstractDoubleSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$AbstractDoubleSpliterator;->characteristics:I
-Ljava/util/Spliterators$AbstractDoubleSpliterator;->est:J
-Ljava/util/Spliterators$AbstractDoubleSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$AbstractIntSpliterator$HoldingIntConsumer;-><init>()V
-Ljava/util/Spliterators$AbstractIntSpliterator$HoldingIntConsumer;->value:I
-Ljava/util/Spliterators$AbstractIntSpliterator;->batch:I
-Ljava/util/Spliterators$AbstractIntSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$AbstractIntSpliterator;->characteristics:I
-Ljava/util/Spliterators$AbstractIntSpliterator;->est:J
-Ljava/util/Spliterators$AbstractIntSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$AbstractLongSpliterator$HoldingLongConsumer;-><init>()V
-Ljava/util/Spliterators$AbstractLongSpliterator$HoldingLongConsumer;->value:J
-Ljava/util/Spliterators$AbstractLongSpliterator;->batch:I
-Ljava/util/Spliterators$AbstractLongSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$AbstractLongSpliterator;->characteristics:I
-Ljava/util/Spliterators$AbstractLongSpliterator;->est:J
-Ljava/util/Spliterators$AbstractLongSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$AbstractSpliterator$HoldingConsumer;-><init>()V
-Ljava/util/Spliterators$AbstractSpliterator$HoldingConsumer;->value:Ljava/lang/Object;
-Ljava/util/Spliterators$AbstractSpliterator;->batch:I
-Ljava/util/Spliterators$AbstractSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$AbstractSpliterator;->characteristics:I
-Ljava/util/Spliterators$AbstractSpliterator;->est:J
-Ljava/util/Spliterators$AbstractSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;I)V
-Ljava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;III)V
-Ljava/util/Spliterators$ArraySpliterator;->array:[Ljava/lang/Object;
-Ljava/util/Spliterators$ArraySpliterator;->characteristics:I
-Ljava/util/Spliterators$ArraySpliterator;->fence:I
-Ljava/util/Spliterators$ArraySpliterator;->index:I
-Ljava/util/Spliterators$DoubleArraySpliterator;-><init>([DI)V
-Ljava/util/Spliterators$DoubleArraySpliterator;-><init>([DIII)V
-Ljava/util/Spliterators$DoubleArraySpliterator;->array:[D
-Ljava/util/Spliterators$DoubleArraySpliterator;->characteristics:I
-Ljava/util/Spliterators$DoubleArraySpliterator;->fence:I
-Ljava/util/Spliterators$DoubleArraySpliterator;->index:I
-Ljava/util/Spliterators$DoubleIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfDouble;I)V
-Ljava/util/Spliterators$DoubleIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfDouble;JI)V
-Ljava/util/Spliterators$DoubleIteratorSpliterator;->batch:I
-Ljava/util/Spliterators$DoubleIteratorSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$DoubleIteratorSpliterator;->characteristics:I
-Ljava/util/Spliterators$DoubleIteratorSpliterator;->est:J
-Ljava/util/Spliterators$DoubleIteratorSpliterator;->it:Ljava/util/PrimitiveIterator$OfDouble;
-Ljava/util/Spliterators$DoubleIteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$EmptySpliterator$OfDouble;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator$OfInt;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator$OfLong;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator$OfRef;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator;->characteristics()I
-Ljava/util/Spliterators$EmptySpliterator;->estimateSize()J
-Ljava/util/Spliterators$EmptySpliterator;->forEachRemaining(Ljava/lang/Object;)V
-Ljava/util/Spliterators$EmptySpliterator;->tryAdvance(Ljava/lang/Object;)Z
-Ljava/util/Spliterators$EmptySpliterator;->trySplit()Ljava/util/Spliterator;
-Ljava/util/Spliterators$IntArraySpliterator;-><init>([II)V
-Ljava/util/Spliterators$IntArraySpliterator;-><init>([IIII)V
-Ljava/util/Spliterators$IntArraySpliterator;->array:[I
-Ljava/util/Spliterators$IntArraySpliterator;->characteristics:I
-Ljava/util/Spliterators$IntArraySpliterator;->fence:I
-Ljava/util/Spliterators$IntArraySpliterator;->index:I
-Ljava/util/Spliterators$IntIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfInt;I)V
-Ljava/util/Spliterators$IntIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfInt;JI)V
-Ljava/util/Spliterators$IntIteratorSpliterator;->batch:I
-Ljava/util/Spliterators$IntIteratorSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$IntIteratorSpliterator;->characteristics:I
-Ljava/util/Spliterators$IntIteratorSpliterator;->est:J
-Ljava/util/Spliterators$IntIteratorSpliterator;->it:Ljava/util/PrimitiveIterator$OfInt;
-Ljava/util/Spliterators$IntIteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Collection;I)V
-Ljava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Iterator;I)V
-Ljava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Iterator;JI)V
-Ljava/util/Spliterators$IteratorSpliterator;->batch:I
-Ljava/util/Spliterators$IteratorSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$IteratorSpliterator;->characteristics:I
-Ljava/util/Spliterators$IteratorSpliterator;->collection:Ljava/util/Collection;
-Ljava/util/Spliterators$IteratorSpliterator;->est:J
-Ljava/util/Spliterators$IteratorSpliterator;->it:Ljava/util/Iterator;
-Ljava/util/Spliterators$IteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$LongArraySpliterator;-><init>([JI)V
-Ljava/util/Spliterators$LongArraySpliterator;-><init>([JIII)V
-Ljava/util/Spliterators$LongArraySpliterator;->array:[J
-Ljava/util/Spliterators$LongArraySpliterator;->characteristics:I
-Ljava/util/Spliterators$LongArraySpliterator;->fence:I
-Ljava/util/Spliterators$LongArraySpliterator;->index:I
-Ljava/util/Spliterators$LongIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfLong;I)V
-Ljava/util/Spliterators$LongIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfLong;JI)V
-Ljava/util/Spliterators$LongIteratorSpliterator;->batch:I
-Ljava/util/Spliterators$LongIteratorSpliterator;->BATCH_UNIT:I
-Ljava/util/Spliterators$LongIteratorSpliterator;->characteristics:I
-Ljava/util/Spliterators$LongIteratorSpliterator;->est:J
-Ljava/util/Spliterators$LongIteratorSpliterator;->it:Ljava/util/PrimitiveIterator$OfLong;
-Ljava/util/Spliterators$LongIteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators;-><init>()V
-Ljava/util/Spliterators;->checkFromToBounds(III)V
-Ljava/util/Spliterators;->EMPTY_DOUBLE_SPLITERATOR:Ljava/util/Spliterator$OfDouble;
-Ljava/util/Spliterators;->EMPTY_INT_SPLITERATOR:Ljava/util/Spliterator$OfInt;
-Ljava/util/Spliterators;->EMPTY_LONG_SPLITERATOR:Ljava/util/Spliterator$OfLong;
-Ljava/util/Spliterators;->EMPTY_SPLITERATOR:Ljava/util/Spliterator;
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;-><init>(Ljava/util/SplittableRandom;JJDD)V
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;->bound:D
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;->fence:J
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;->index:J
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;->origin:D
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;->rng:Ljava/util/SplittableRandom;
-Ljava/util/SplittableRandom$RandomIntsSpliterator;-><init>(Ljava/util/SplittableRandom;JJII)V
-Ljava/util/SplittableRandom$RandomIntsSpliterator;->bound:I
-Ljava/util/SplittableRandom$RandomIntsSpliterator;->fence:J
-Ljava/util/SplittableRandom$RandomIntsSpliterator;->index:J
-Ljava/util/SplittableRandom$RandomIntsSpliterator;->origin:I
-Ljava/util/SplittableRandom$RandomIntsSpliterator;->rng:Ljava/util/SplittableRandom;
-Ljava/util/SplittableRandom$RandomLongsSpliterator;-><init>(Ljava/util/SplittableRandom;JJJJ)V
-Ljava/util/SplittableRandom$RandomLongsSpliterator;->bound:J
-Ljava/util/SplittableRandom$RandomLongsSpliterator;->fence:J
-Ljava/util/SplittableRandom$RandomLongsSpliterator;->index:J
-Ljava/util/SplittableRandom$RandomLongsSpliterator;->origin:J
-Ljava/util/SplittableRandom$RandomLongsSpliterator;->rng:Ljava/util/SplittableRandom;
-Ljava/util/SplittableRandom;-><init>(JJ)V
-Ljava/util/SplittableRandom;->BAD_BOUND:Ljava/lang/String;
-Ljava/util/SplittableRandom;->BAD_RANGE:Ljava/lang/String;
-Ljava/util/SplittableRandom;->BAD_SIZE:Ljava/lang/String;
-Ljava/util/SplittableRandom;->defaultGen:Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/SplittableRandom;->DOUBLE_UNIT:D
-Ljava/util/SplittableRandom;->gamma:J
-Ljava/util/SplittableRandom;->GOLDEN_GAMMA:J
-Ljava/util/SplittableRandom;->internalNextDouble(DD)D
-Ljava/util/SplittableRandom;->internalNextInt(II)I
-Ljava/util/SplittableRandom;->internalNextLong(JJ)J
-Ljava/util/SplittableRandom;->mix32(J)I
-Ljava/util/SplittableRandom;->mix64(J)J
-Ljava/util/SplittableRandom;->mixGamma(J)J
-Ljava/util/SplittableRandom;->nextSeed()J
-Ljava/util/SplittableRandom;->seed:J
-Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-Ljava/util/stream/AbstractPipeline;->combinedFlags:I
-Ljava/util/stream/AbstractPipeline;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
-Ljava/util/stream/AbstractPipeline;->copyIntoWithCancel(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
-Ljava/util/stream/AbstractPipeline;->depth:I
-Ljava/util/stream/AbstractPipeline;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/AbstractPipeline;->evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object;
-Ljava/util/stream/AbstractPipeline;->evaluateToArrayNode(Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/AbstractPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
-Ljava/util/stream/AbstractPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
-Ljava/util/stream/AbstractPipeline;->getOutputShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/AbstractPipeline;->getSourceShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I
-Ljava/util/stream/AbstractPipeline;->getStreamFlags()I
-Ljava/util/stream/AbstractPipeline;->isOrdered()Z
-Ljava/util/stream/AbstractPipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator;
-Ljava/util/stream/AbstractPipeline;->linkedOrConsumed:Z
-Ljava/util/stream/AbstractPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
-Ljava/util/stream/AbstractPipeline;->MSG_CONSUMED:Ljava/lang/String;
-Ljava/util/stream/AbstractPipeline;->MSG_STREAM_LINKED:Ljava/lang/String;
-Ljava/util/stream/AbstractPipeline;->nextStage:Ljava/util/stream/AbstractPipeline;
-Ljava/util/stream/AbstractPipeline;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/AbstractPipeline;->opEvaluateParallelLazy(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/util/Spliterator;
-Ljava/util/stream/AbstractPipeline;->opIsStateful()Z
-Ljava/util/stream/AbstractPipeline;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/AbstractPipeline;->parallel:Z
-Ljava/util/stream/AbstractPipeline;->previousStage:Ljava/util/stream/AbstractPipeline;
-Ljava/util/stream/AbstractPipeline;->sourceAnyStateful:Z
-Ljava/util/stream/AbstractPipeline;->sourceCloseAction:Ljava/lang/Runnable;
-Ljava/util/stream/AbstractPipeline;->sourceOrOpFlags:I
-Ljava/util/stream/AbstractPipeline;->sourceSpliterator(I)Ljava/util/Spliterator;
-Ljava/util/stream/AbstractPipeline;->sourceSpliterator:Ljava/util/Spliterator;
-Ljava/util/stream/AbstractPipeline;->sourceStage:Ljava/util/stream/AbstractPipeline;
-Ljava/util/stream/AbstractPipeline;->sourceStageSpliterator()Ljava/util/Spliterator;
-Ljava/util/stream/AbstractPipeline;->sourceSupplier:Ljava/util/function/Supplier;
-Ljava/util/stream/AbstractPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
-Ljava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/AbstractPipeline;->wrapSpliterator(Ljava/util/Spliterator;)Ljava/util/Spliterator;
-Ljava/util/stream/AbstractSpinedBuffer;-><init>()V
-Ljava/util/stream/AbstractSpinedBuffer;-><init>(I)V
-Ljava/util/stream/AbstractSpinedBuffer;->chunkSize(I)I
-Ljava/util/stream/AbstractSpinedBuffer;->clear()V
-Ljava/util/stream/AbstractSpinedBuffer;->count()J
-Ljava/util/stream/AbstractSpinedBuffer;->elementIndex:I
-Ljava/util/stream/AbstractSpinedBuffer;->initialChunkPower:I
-Ljava/util/stream/AbstractSpinedBuffer;->isEmpty()Z
-Ljava/util/stream/AbstractSpinedBuffer;->MAX_CHUNK_POWER:I
-Ljava/util/stream/AbstractSpinedBuffer;->MIN_CHUNK_POWER:I
-Ljava/util/stream/AbstractSpinedBuffer;->MIN_CHUNK_SIZE:I
-Ljava/util/stream/AbstractSpinedBuffer;->MIN_SPINE_SIZE:I
-Ljava/util/stream/AbstractSpinedBuffer;->priorElementCount:[J
-Ljava/util/stream/AbstractSpinedBuffer;->spineIndex:I
-Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;Ljava/util/Set;)V
-Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V
-Ljava/util/stream/Collectors$CollectorImpl;->accumulator:Ljava/util/function/BiConsumer;
-Ljava/util/stream/Collectors$CollectorImpl;->characteristics:Ljava/util/Set;
-Ljava/util/stream/Collectors$CollectorImpl;->combiner:Ljava/util/function/BinaryOperator;
-Ljava/util/stream/Collectors$CollectorImpl;->finisher:Ljava/util/function/Function;
-Ljava/util/stream/Collectors$CollectorImpl;->supplier:Ljava/util/function/Supplier;
-Ljava/util/stream/Collectors$Partition;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-Ljava/util/stream/Collectors$Partition;->forFalse:Ljava/lang/Object;
-Ljava/util/stream/Collectors$Partition;->forTrue:Ljava/lang/Object;
-Ljava/util/stream/Collectors;-><init>()V
-Ljava/util/stream/Collectors;->boxSupplier(Ljava/lang/Object;)Ljava/util/function/Supplier;
-Ljava/util/stream/Collectors;->castingIdentity()Ljava/util/function/Function;
-Ljava/util/stream/Collectors;->CH_CONCURRENT_ID:Ljava/util/Set;
-Ljava/util/stream/Collectors;->CH_CONCURRENT_NOID:Ljava/util/Set;
-Ljava/util/stream/Collectors;->CH_ID:Ljava/util/Set;
-Ljava/util/stream/Collectors;->CH_NOID:Ljava/util/Set;
-Ljava/util/stream/Collectors;->CH_UNORDERED_ID:Ljava/util/Set;
-Ljava/util/stream/Collectors;->computeFinalSum([D)D
-Ljava/util/stream/Collectors;->mapMerger(Ljava/util/function/BinaryOperator;)Ljava/util/function/BinaryOperator;
-Ljava/util/stream/Collectors;->sumWithCompensation([DD)[D
-Ljava/util/stream/Collectors;->throwingMerger()Ljava/util/function/BinaryOperator;
-Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/DoublePipeline$Head;->opIsStateful()Z
-Ljava/util/stream/DoublePipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/DoublePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/DoublePipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/DoublePipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/DoublePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/DoublePipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/DoublePipeline;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/DoublePipeline;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/DoublePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-Ljava/util/stream/DoublePipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfDouble;
-Ljava/util/stream/DoublePipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/DoubleConsumer;
-Ljava/util/stream/DoublePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/DoublePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
-Ljava/util/stream/DoublePipeline;->getOutputShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/DoublePipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator$OfDouble;
-Ljava/util/stream/DoublePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
-Ljava/util/stream/DoublePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/IntPipeline$Head;->opIsStateful()Z
-Ljava/util/stream/IntPipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/IntPipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/IntPipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/IntPipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/IntPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/IntPipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/IntPipeline;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/IntPipeline;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/IntPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-Ljava/util/stream/IntPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt;
-Ljava/util/stream/IntPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/IntConsumer;
-Ljava/util/stream/IntPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/IntPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
-Ljava/util/stream/IntPipeline;->getOutputShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/IntPipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator$OfInt;
-Ljava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
-Ljava/util/stream/IntPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/LongPipeline$Head;->opIsStateful()Z
-Ljava/util/stream/LongPipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/LongPipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/LongPipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/LongPipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/LongPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/LongPipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/LongPipeline;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/LongPipeline;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/LongPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-Ljava/util/stream/LongPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfLong;
-Ljava/util/stream/LongPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/LongConsumer;
-Ljava/util/stream/LongPipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/LongPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
-Ljava/util/stream/LongPipeline;->getOutputShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/LongPipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator$OfLong;
-Ljava/util/stream/LongPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
-Ljava/util/stream/LongPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/Node$Builder$OfDouble;->build()Ljava/util/stream/Node$OfDouble;
-Ljava/util/stream/Node$Builder$OfInt;->build()Ljava/util/stream/Node$OfInt;
-Ljava/util/stream/Node$Builder$OfLong;->build()Ljava/util/stream/Node$OfLong;
-Ljava/util/stream/Node$Builder;->build()Ljava/util/stream/Node;
-Ljava/util/stream/Node$OfDouble;->copyInto([Ljava/lang/Double;I)V
-Ljava/util/stream/Node$OfDouble;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/Node$OfDouble;->getShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/Node$OfDouble;->newArray(I)[D
-Ljava/util/stream/Node$OfDouble;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfDouble;
-Ljava/util/stream/Node$OfInt;->copyInto([Ljava/lang/Integer;I)V
-Ljava/util/stream/Node$OfInt;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/Node$OfInt;->getShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/Node$OfInt;->newArray(I)[I
-Ljava/util/stream/Node$OfInt;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfInt;
-Ljava/util/stream/Node$OfLong;->copyInto([Ljava/lang/Long;I)V
-Ljava/util/stream/Node$OfLong;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/Node$OfLong;->getShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/Node$OfLong;->newArray(I)[J
-Ljava/util/stream/Node$OfLong;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfLong;
-Ljava/util/stream/Node$OfPrimitive;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
-Ljava/util/stream/Node$OfPrimitive;->asPrimitiveArray()Ljava/lang/Object;
-Ljava/util/stream/Node$OfPrimitive;->copyInto(Ljava/lang/Object;I)V
-Ljava/util/stream/Node$OfPrimitive;->forEach(Ljava/lang/Object;)V
-Ljava/util/stream/Node$OfPrimitive;->getChild(I)Ljava/util/stream/Node$OfPrimitive;
-Ljava/util/stream/Node$OfPrimitive;->newArray(I)Ljava/lang/Object;
-Ljava/util/stream/Node$OfPrimitive;->spliterator()Ljava/util/Spliterator$OfPrimitive;
-Ljava/util/stream/Node$OfPrimitive;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfPrimitive;
-Ljava/util/stream/Node;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
-Ljava/util/stream/Node;->copyInto([Ljava/lang/Object;I)V
-Ljava/util/stream/Node;->count()J
-Ljava/util/stream/Node;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/Node;->getChild(I)Ljava/util/stream/Node;
-Ljava/util/stream/Node;->getChildCount()I
-Ljava/util/stream/Node;->getShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/Node;->spliterator()Ljava/util/Spliterator;
-Ljava/util/stream/Node;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/PipelineHelper;-><init>()V
-Ljava/util/stream/PipelineHelper;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
-Ljava/util/stream/PipelineHelper;->copyIntoWithCancel(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
-Ljava/util/stream/PipelineHelper;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/PipelineHelper;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
-Ljava/util/stream/PipelineHelper;->getSourceShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/PipelineHelper;->getStreamAndOpFlags()I
-Ljava/util/stream/PipelineHelper;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
-Ljava/util/stream/PipelineHelper;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
-Ljava/util/stream/PipelineHelper;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/PipelineHelper;->wrapSpliterator(Ljava/util/Spliterator;)Ljava/util/Spliterator;
-Ljava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/ReferencePipeline$Head;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/ReferencePipeline$Head;->forEachOrdered(Ljava/util/function/Consumer;)V
-Ljava/util/stream/ReferencePipeline$Head;->opIsStateful()Z
-Ljava/util/stream/ReferencePipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/ReferencePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/ReferencePipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/ReferencePipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/ReferencePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-Ljava/util/stream/ReferencePipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/ReferencePipeline;-><init>(Ljava/util/function/Supplier;IZ)V
-Ljava/util/stream/ReferencePipeline;-><init>(Ljava/util/Spliterator;IZ)V
-Ljava/util/stream/ReferencePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-Ljava/util/stream/ReferencePipeline;->allMatch(Ljava/util/function/Predicate;)Z
-Ljava/util/stream/ReferencePipeline;->anyMatch(Ljava/util/function/Predicate;)Z
-Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;
-Ljava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;
-Ljava/util/stream/ReferencePipeline;->evaluateToNode(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
-Ljava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream;
-Ljava/util/stream/ReferencePipeline;->flatMapToDouble(Ljava/util/function/Function;)Ljava/util/stream/DoubleStream;
-Ljava/util/stream/ReferencePipeline;->flatMapToInt(Ljava/util/function/Function;)Ljava/util/stream/IntStream;
-Ljava/util/stream/ReferencePipeline;->flatMapToLong(Ljava/util/function/Function;)Ljava/util/stream/LongStream;
-Ljava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/ReferencePipeline;->forEachOrdered(Ljava/util/function/Consumer;)V
-Ljava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
-Ljava/util/stream/ReferencePipeline;->getOutputShape()Ljava/util/stream/StreamShape;
-Ljava/util/stream/ReferencePipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator;
-Ljava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
-Ljava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;
-Ljava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;
-Ljava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
-Ljava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
-Ljava/util/stream/ReferencePipeline;->max(Ljava/util/Comparator;)Ljava/util/Optional;
-Ljava/util/stream/ReferencePipeline;->min(Ljava/util/Comparator;)Ljava/util/Optional;
-Ljava/util/stream/ReferencePipeline;->noneMatch(Ljava/util/function/Predicate;)Z
-Ljava/util/stream/ReferencePipeline;->peek(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
-Ljava/util/stream/ReferencePipeline;->reduce(Ljava/lang/Object;Ljava/util/function/BiFunction;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;
-Ljava/util/stream/ReferencePipeline;->reduce(Ljava/lang/Object;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;
-Ljava/util/stream/ReferencePipeline;->reduce(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
-Ljava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;
-Ljava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/Sink$ChainedDouble;-><init>(Ljava/util/stream/Sink;)V
-Ljava/util/stream/Sink$ChainedDouble;->begin(J)V
-Ljava/util/stream/Sink$ChainedDouble;->cancellationRequested()Z
-Ljava/util/stream/Sink$ChainedDouble;->downstream:Ljava/util/stream/Sink;
-Ljava/util/stream/Sink$ChainedDouble;->end()V
-Ljava/util/stream/Sink$ChainedInt;-><init>(Ljava/util/stream/Sink;)V
-Ljava/util/stream/Sink$ChainedInt;->begin(J)V
-Ljava/util/stream/Sink$ChainedInt;->cancellationRequested()Z
-Ljava/util/stream/Sink$ChainedInt;->downstream:Ljava/util/stream/Sink;
-Ljava/util/stream/Sink$ChainedInt;->end()V
-Ljava/util/stream/Sink$ChainedLong;-><init>(Ljava/util/stream/Sink;)V
-Ljava/util/stream/Sink$ChainedLong;->begin(J)V
-Ljava/util/stream/Sink$ChainedLong;->cancellationRequested()Z
-Ljava/util/stream/Sink$ChainedLong;->downstream:Ljava/util/stream/Sink;
-Ljava/util/stream/Sink$ChainedLong;->end()V
-Ljava/util/stream/Sink$ChainedReference;-><init>(Ljava/util/stream/Sink;)V
-Ljava/util/stream/Sink$ChainedReference;->begin(J)V
-Ljava/util/stream/Sink$ChainedReference;->cancellationRequested()Z
-Ljava/util/stream/Sink$ChainedReference;->downstream:Ljava/util/stream/Sink;
-Ljava/util/stream/Sink$ChainedReference;->end()V
-Ljava/util/stream/Sink$OfDouble;->accept(Ljava/lang/Double;)V
-Ljava/util/stream/Sink$OfInt;->accept(Ljava/lang/Integer;)V
-Ljava/util/stream/Sink$OfLong;->accept(Ljava/lang/Long;)V
-Ljava/util/stream/Sink;->accept(D)V
-Ljava/util/stream/Sink;->accept(I)V
-Ljava/util/stream/Sink;->accept(J)V
-Ljava/util/stream/Sink;->begin(J)V
-Ljava/util/stream/Sink;->cancellationRequested()Z
-Ljava/util/stream/Sink;->end()V
-Ljava/util/stream/SpinedBuffer$OfDouble;-><init>()V
-Ljava/util/stream/SpinedBuffer$OfDouble;-><init>(I)V
-Ljava/util/stream/SpinedBuffer$OfDouble;->arrayForEach([DIILjava/util/function/DoubleConsumer;)V
-Ljava/util/stream/SpinedBuffer$OfDouble;->arrayLength([D)I
-Ljava/util/stream/SpinedBuffer$OfDouble;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/SpinedBuffer$OfDouble;->get(J)D
-Ljava/util/stream/SpinedBuffer$OfDouble;->newArray(I)[D
-Ljava/util/stream/SpinedBuffer$OfDouble;->newArrayArray(I)[[D
-Ljava/util/stream/SpinedBuffer$OfInt;-><init>()V
-Ljava/util/stream/SpinedBuffer$OfInt;-><init>(I)V
-Ljava/util/stream/SpinedBuffer$OfInt;->arrayForEach([IIILjava/util/function/IntConsumer;)V
-Ljava/util/stream/SpinedBuffer$OfInt;->arrayLength([I)I
-Ljava/util/stream/SpinedBuffer$OfInt;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/SpinedBuffer$OfInt;->get(J)I
-Ljava/util/stream/SpinedBuffer$OfInt;->newArray(I)[I
-Ljava/util/stream/SpinedBuffer$OfInt;->newArrayArray(I)[[I
-Ljava/util/stream/SpinedBuffer$OfLong;-><init>()V
-Ljava/util/stream/SpinedBuffer$OfLong;-><init>(I)V
-Ljava/util/stream/SpinedBuffer$OfLong;->arrayForEach([JIILjava/util/function/LongConsumer;)V
-Ljava/util/stream/SpinedBuffer$OfLong;->arrayLength([J)I
-Ljava/util/stream/SpinedBuffer$OfLong;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/SpinedBuffer$OfLong;->get(J)J
-Ljava/util/stream/SpinedBuffer$OfLong;->newArray(I)[J
-Ljava/util/stream/SpinedBuffer$OfLong;->newArrayArray(I)[[J
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->arrayForOne(Ljava/lang/Object;ILjava/lang/Object;)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->arraySpliterator(Ljava/lang/Object;II)Ljava/util/Spliterator$OfPrimitive;
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->lastSpineElementFence:I
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->lastSpineIndex:I
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->newSpliterator(IIII)Ljava/util/Spliterator$OfPrimitive;
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->splChunk:Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->splElementIndex:I
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->splSpineIndex:I
-Ljava/util/stream/SpinedBuffer$OfPrimitive;-><init>()V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;-><init>(I)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->arrayForEach(Ljava/lang/Object;IILjava/lang/Object;)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->arrayLength(Ljava/lang/Object;)I
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->asPrimitiveArray()Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->capacity()J
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->chunkFor(J)I
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->clear()V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->copyInto(Ljava/lang/Object;I)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->curChunk:Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->ensureCapacity(J)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->forEach(Ljava/lang/Object;)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->increaseCapacity()V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->inflateSpine()V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->newArray(I)Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->newArrayArray(I)[Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->preAccept()V
-Ljava/util/stream/SpinedBuffer$OfPrimitive;->spine:[Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer;-><init>()V
-Ljava/util/stream/SpinedBuffer;-><init>(I)V
-Ljava/util/stream/SpinedBuffer;->accept(Ljava/lang/Object;)V
-Ljava/util/stream/SpinedBuffer;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer;->capacity()J
-Ljava/util/stream/SpinedBuffer;->clear()V
-Ljava/util/stream/SpinedBuffer;->copyInto([Ljava/lang/Object;I)V
-Ljava/util/stream/SpinedBuffer;->curChunk:[Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer;->ensureCapacity(J)V
-Ljava/util/stream/SpinedBuffer;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/stream/SpinedBuffer;->get(J)Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer;->increaseCapacity()V
-Ljava/util/stream/SpinedBuffer;->inflateSpine()V
-Ljava/util/stream/SpinedBuffer;->spine:[[Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer;->SPLITERATOR_CHARACTERISTICS:I
-Ljava/util/stream/StreamOpFlag$MaskBuilder;-><init>(Ljava/util/Map;)V
-Ljava/util/stream/StreamOpFlag$MaskBuilder;->build()Ljava/util/Map;
-Ljava/util/stream/StreamOpFlag$MaskBuilder;->clear(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag$MaskBuilder;->map:Ljava/util/Map;
-Ljava/util/stream/StreamOpFlag$MaskBuilder;->mask(Ljava/util/stream/StreamOpFlag$Type;Ljava/lang/Integer;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag$MaskBuilder;->set(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag$MaskBuilder;->setAndClear(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag$Type;->OP:Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;->SPLITERATOR:Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;->STREAM:Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;->TERMINAL_OP:Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;->UPSTREAM_TERMINAL_OP:Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;->valueOf(Ljava/lang/String;)Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;->values()[Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag;->bitPosition:I
-Ljava/util/stream/StreamOpFlag;->canSet(Ljava/util/stream/StreamOpFlag$Type;)Z
-Ljava/util/stream/StreamOpFlag;->clear()I
-Ljava/util/stream/StreamOpFlag;->clear:I
-Ljava/util/stream/StreamOpFlag;->CLEAR_BITS:I
-Ljava/util/stream/StreamOpFlag;->combineOpFlags(II)I
-Ljava/util/stream/StreamOpFlag;->createFlagMask()I
-Ljava/util/stream/StreamOpFlag;->createMask(Ljava/util/stream/StreamOpFlag$Type;)I
-Ljava/util/stream/StreamOpFlag;->DISTINCT:Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;->FLAG_MASK:I
-Ljava/util/stream/StreamOpFlag;->FLAG_MASK_IS:I
-Ljava/util/stream/StreamOpFlag;->FLAG_MASK_NOT:I
-Ljava/util/stream/StreamOpFlag;->fromCharacteristics(I)I
-Ljava/util/stream/StreamOpFlag;->fromCharacteristics(Ljava/util/Spliterator;)I
-Ljava/util/stream/StreamOpFlag;->getMask(I)I
-Ljava/util/stream/StreamOpFlag;->INITIAL_OPS_VALUE:I
-Ljava/util/stream/StreamOpFlag;->isCleared(I)Z
-Ljava/util/stream/StreamOpFlag;->isKnown(I)Z
-Ljava/util/stream/StreamOpFlag;->isPreserved(I)Z
-Ljava/util/stream/StreamOpFlag;->isStreamFlag()Z
-Ljava/util/stream/StreamOpFlag;->IS_DISTINCT:I
-Ljava/util/stream/StreamOpFlag;->IS_ORDERED:I
-Ljava/util/stream/StreamOpFlag;->IS_SHORT_CIRCUIT:I
-Ljava/util/stream/StreamOpFlag;->IS_SIZED:I
-Ljava/util/stream/StreamOpFlag;->IS_SORTED:I
-Ljava/util/stream/StreamOpFlag;->maskTable:Ljava/util/Map;
-Ljava/util/stream/StreamOpFlag;->NOT_DISTINCT:I
-Ljava/util/stream/StreamOpFlag;->NOT_ORDERED:I
-Ljava/util/stream/StreamOpFlag;->NOT_SIZED:I
-Ljava/util/stream/StreamOpFlag;->NOT_SORTED:I
-Ljava/util/stream/StreamOpFlag;->OP_MASK:I
-Ljava/util/stream/StreamOpFlag;->ORDERED:Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;->preserve:I
-Ljava/util/stream/StreamOpFlag;->PRESERVE_BITS:I
-Ljava/util/stream/StreamOpFlag;->set()I
-Ljava/util/stream/StreamOpFlag;->set(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag;->set:I
-Ljava/util/stream/StreamOpFlag;->SET_BITS:I
-Ljava/util/stream/StreamOpFlag;->SHORT_CIRCUIT:Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;->SIZED:Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;->SORTED:Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;->SPLITERATOR_CHARACTERISTICS_MASK:I
-Ljava/util/stream/StreamOpFlag;->STREAM_MASK:I
-Ljava/util/stream/StreamOpFlag;->TERMINAL_OP_MASK:I
-Ljava/util/stream/StreamOpFlag;->toCharacteristics(I)I
-Ljava/util/stream/StreamOpFlag;->toStreamFlags(I)I
-Ljava/util/stream/StreamOpFlag;->UPSTREAM_TERMINAL_OP_MASK:I
-Ljava/util/stream/StreamOpFlag;->valueOf(Ljava/lang/String;)Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;->values()[Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamShape;->DOUBLE_VALUE:Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamShape;->INT_VALUE:Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamShape;->LONG_VALUE:Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamShape;->REFERENCE:Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamShape;->valueOf(Ljava/lang/String;)Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamShape;->values()[Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamSupport;-><init>()V
-Ljava/util/stream/TerminalOp;->evaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
-Ljava/util/stream/TerminalOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
-Ljava/util/stream/TerminalOp;->getOpFlags()I
-Ljava/util/stream/TerminalOp;->inputShape()Ljava/util/stream/StreamShape;
-Ljava/util/StringJoiner;->delimiter:Ljava/lang/String;
-Ljava/util/StringJoiner;->emptyValue:Ljava/lang/String;
-Ljava/util/StringJoiner;->prefix:Ljava/lang/String;
-Ljava/util/StringJoiner;->prepareBuilder()Ljava/lang/StringBuilder;
-Ljava/util/StringJoiner;->suffix:Ljava/lang/String;
-Ljava/util/StringJoiner;->value:Ljava/lang/StringBuilder;
-Ljava/util/StringTokenizer;->currentPosition:I
-Ljava/util/StringTokenizer;->delimiterCodePoints:[I
-Ljava/util/StringTokenizer;->delimiters:Ljava/lang/String;
-Ljava/util/StringTokenizer;->delimsChanged:Z
-Ljava/util/StringTokenizer;->hasSurrogates:Z
-Ljava/util/StringTokenizer;->isDelimiter(I)Z
-Ljava/util/StringTokenizer;->maxDelimCodePoint:I
-Ljava/util/StringTokenizer;->maxPosition:I
-Ljava/util/StringTokenizer;->newPosition:I
-Ljava/util/StringTokenizer;->retDelims:Z
-Ljava/util/StringTokenizer;->scanToken(I)I
-Ljava/util/StringTokenizer;->setMaxDelimCodePoint()V
-Ljava/util/StringTokenizer;->skipDelimiters(I)I
-Ljava/util/StringTokenizer;->str:Ljava/lang/String;
-Ljava/util/TaskQueue;-><init>()V
-Ljava/util/TaskQueue;->add(Ljava/util/TimerTask;)V
-Ljava/util/TaskQueue;->clear()V
-Ljava/util/TaskQueue;->fixDown(I)V
-Ljava/util/TaskQueue;->fixUp(I)V
-Ljava/util/TaskQueue;->get(I)Ljava/util/TimerTask;
-Ljava/util/TaskQueue;->getMin()Ljava/util/TimerTask;
-Ljava/util/TaskQueue;->heapify()V
-Ljava/util/TaskQueue;->isEmpty()Z
-Ljava/util/TaskQueue;->queue:[Ljava/util/TimerTask;
-Ljava/util/TaskQueue;->quickRemove(I)V
-Ljava/util/TaskQueue;->removeMin()V
-Ljava/util/TaskQueue;->rescheduleMin(J)V
-Ljava/util/TaskQueue;->size()I
-Ljava/util/TaskQueue;->size:I
-Ljava/util/Timer;->nextSerialNumber:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/Timer;->queue:Ljava/util/TaskQueue;
-Ljava/util/Timer;->sched(Ljava/util/TimerTask;JJ)V
-Ljava/util/Timer;->serialNumber()I
-Ljava/util/Timer;->thread:Ljava/util/TimerThread;
-Ljava/util/Timer;->threadReaper:Ljava/lang/Object;
-Ljava/util/TimerTask;->CANCELLED:I
-Ljava/util/TimerTask;->EXECUTED:I
-Ljava/util/TimerTask;->lock:Ljava/lang/Object;
-Ljava/util/TimerTask;->nextExecutionTime:J
-Ljava/util/TimerTask;->SCHEDULED:I
-Ljava/util/TimerTask;->state:I
-Ljava/util/TimerTask;->VIRGIN:I
-Ljava/util/TimerThread;-><init>(Ljava/util/TaskQueue;)V
-Ljava/util/TimerThread;->mainLoop()V
-Ljava/util/TimerThread;->newTasksMayBeScheduled:Z
-Ljava/util/TimerThread;->queue:Ljava/util/TaskQueue;
-Ljava/util/TimeZone$NoImagePreloadHolder;-><init>()V
-Ljava/util/TimeZone$NoImagePreloadHolder;->CUSTOM_ZONE_ID_PATTERN:Ljava/util/regex/Pattern;
-Ljava/util/TimeZone;->appendNumber(Ljava/lang/StringBuilder;II)V
-Ljava/util/TimeZone;->createGmtOffsetString(ZZI)Ljava/lang/String;
-Ljava/util/TimeZone;->defaultTimeZone:Ljava/util/TimeZone;
-Ljava/util/TimeZone;->getCustomTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
-Ljava/util/TimeZone;->getDefaultRef()Ljava/util/TimeZone;
-Ljava/util/TimeZone;->getOffsets(J[I)I
-Ljava/util/TimeZone;->getSystemGMTOffsetID()Ljava/lang/String;
-Ljava/util/TimeZone;->getSystemTimeZoneID(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/TimeZone;->GMT:Ljava/util/TimeZone;
-Ljava/util/TimeZone;->ID:Ljava/lang/String;
-Ljava/util/TimeZone;->NO_TIMEZONE:Ljava/util/TimeZone;
-Ljava/util/TimeZone;->UTC:Ljava/util/TimeZone;
-Ljava/util/TreeMap$AscendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
-Ljava/util/TreeMap$AscendingSubMap;->descendingKeyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap$AscendingSubMap;->keySpliterator()Ljava/util/Spliterator;
-Ljava/util/TreeMap$AscendingSubMap;->subCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$AscendingSubMap;->subFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$AscendingSubMap;->subHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$AscendingSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$AscendingSubMap;->subLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$AscendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingKeySpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
-Ljava/util/TreeMap$DescendingKeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/TreeMap$DescendingKeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
-Ljava/util/TreeMap$DescendingSubMap;->descendingKeyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap$DescendingSubMap;->keyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap$DescendingSubMap;->keySpliterator()Ljava/util/Spliterator;
-Ljava/util/TreeMap$DescendingSubMap;->reverseComparator:Ljava/util/Comparator;
-Ljava/util/TreeMap$DescendingSubMap;->subCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingSubMap;->subFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingSubMap;->subHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingSubMap;->subLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$EntrySpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
-Ljava/util/TreeMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/TreeMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$KeySet;-><init>(Ljava/util/NavigableMap;)V
-Ljava/util/TreeMap$KeySet;->m:Ljava/util/NavigableMap;
-Ljava/util/TreeMap$KeySpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
-Ljava/util/TreeMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/TreeMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$NavigableSubMap$EntrySetView;->size:I
-Ljava/util/TreeMap$NavigableSubMap$EntrySetView;->sizeModCount:I
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->expectedModCount:I
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->fenceKey:Ljava/lang/Object;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->lastReturned:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->next:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeAscending()V
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeDescending()V
-Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$NavigableSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
-Ljava/util/TreeMap$NavigableSubMap;->absCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absHighest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absHighFence()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->absLowFence()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->descendingKeyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap$NavigableSubMap;->descendingMapView:Ljava/util/NavigableMap;
-Ljava/util/TreeMap$NavigableSubMap;->entrySetView:Ljava/util/TreeMap$NavigableSubMap$EntrySetView;
-Ljava/util/TreeMap$NavigableSubMap;->fromStart:Z
-Ljava/util/TreeMap$NavigableSubMap;->hi:Ljava/lang/Object;
-Ljava/util/TreeMap$NavigableSubMap;->hiInclusive:Z
-Ljava/util/TreeMap$NavigableSubMap;->inClosedRange(Ljava/lang/Object;)Z
-Ljava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;)Z
-Ljava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;Z)Z
-Ljava/util/TreeMap$NavigableSubMap;->keyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap$NavigableSubMap;->keySpliterator()Ljava/util/Spliterator;
-Ljava/util/TreeMap$NavigableSubMap;->lo:Ljava/lang/Object;
-Ljava/util/TreeMap$NavigableSubMap;->loInclusive:Z
-Ljava/util/TreeMap$NavigableSubMap;->m:Ljava/util/TreeMap;
-Ljava/util/TreeMap$NavigableSubMap;->navigableKeySetView:Ljava/util/TreeMap$KeySet;
-Ljava/util/TreeMap$NavigableSubMap;->subCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->subFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->subHigher(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->subLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$NavigableSubMap;->toEnd:Z
-Ljava/util/TreeMap$NavigableSubMap;->tooHigh(Ljava/lang/Object;)Z
-Ljava/util/TreeMap$NavigableSubMap;->tooLow(Ljava/lang/Object;)Z
-Ljava/util/TreeMap$PrivateEntryIterator;->expectedModCount:I
-Ljava/util/TreeMap$PrivateEntryIterator;->lastReturned:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$PrivateEntryIterator;->next:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$PrivateEntryIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$PrivateEntryIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$SubMap;->fromKey:Ljava/lang/Object;
-Ljava/util/TreeMap$SubMap;->fromStart:Z
-Ljava/util/TreeMap$SubMap;->toEnd:Z
-Ljava/util/TreeMap$SubMap;->toKey:Ljava/lang/Object;
-Ljava/util/TreeMap$TreeMapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$TreeMapEntry;->color:Z
-Ljava/util/TreeMap$TreeMapEntry;->key:Ljava/lang/Object;
-Ljava/util/TreeMap$TreeMapEntry;->left:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$TreeMapEntry;->parent:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$TreeMapEntry;->right:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$TreeMapEntry;->value:Ljava/lang/Object;
-Ljava/util/TreeMap$TreeMapSpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
-Ljava/util/TreeMap$TreeMapSpliterator;->current:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$TreeMapSpliterator;->est:I
-Ljava/util/TreeMap$TreeMapSpliterator;->estimateSize()J
-Ljava/util/TreeMap$TreeMapSpliterator;->expectedModCount:I
-Ljava/util/TreeMap$TreeMapSpliterator;->fence:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$TreeMapSpliterator;->getEstimate()I
-Ljava/util/TreeMap$TreeMapSpliterator;->side:I
-Ljava/util/TreeMap$TreeMapSpliterator;->tree:Ljava/util/TreeMap;
-Ljava/util/TreeMap$ValueSpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
-Ljava/util/TreeMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/TreeMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap;->addAllForTreeSet(Ljava/util/SortedSet;Ljava/lang/Object;)V
-Ljava/util/TreeMap;->BLACK:Z
-Ljava/util/TreeMap;->buildFromSorted(IIIILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->buildFromSorted(ILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)V
-Ljava/util/TreeMap;->colorOf(Ljava/util/TreeMap$TreeMapEntry;)Z
-Ljava/util/TreeMap;->comparator:Ljava/util/Comparator;
-Ljava/util/TreeMap;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-Ljava/util/TreeMap;->computeRedLevel(I)I
-Ljava/util/TreeMap;->deleteEntry(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap;->descendingKeyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap;->descendingKeySpliterator()Ljava/util/Spliterator;
-Ljava/util/TreeMap;->descendingMap:Ljava/util/NavigableMap;
-Ljava/util/TreeMap;->entrySet:Ljava/util/TreeMap$EntrySet;
-Ljava/util/TreeMap;->exportEntry(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/Map$Entry;
-Ljava/util/TreeMap;->fixAfterDeletion(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap;->fixAfterInsertion(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap;->getCeilingEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getEntryUsingComparator(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getFirstEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getFloorEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getHigherEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getLastEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->getLowerEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->key(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
-Ljava/util/TreeMap;->keyIterator()Ljava/util/Iterator;
-Ljava/util/TreeMap;->keyOrNull(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
-Ljava/util/TreeMap;->keySpliterator()Ljava/util/Spliterator;
-Ljava/util/TreeMap;->keySpliteratorFor(Ljava/util/NavigableMap;)Ljava/util/Spliterator;
-Ljava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->modCount:I
-Ljava/util/TreeMap;->navigableKeySet:Ljava/util/TreeMap$KeySet;
-Ljava/util/TreeMap;->parentOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->readTreeSet(ILjava/io/ObjectInputStream;Ljava/lang/Object;)V
-Ljava/util/TreeMap;->RED:Z
-Ljava/util/TreeMap;->rightOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->root:Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->rotateLeft(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap;->rotateRight(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap;->setColor(Ljava/util/TreeMap$TreeMapEntry;Z)V
-Ljava/util/TreeMap;->size:I
-Ljava/util/TreeMap;->successor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap;->UNBOUNDED:Ljava/lang/Object;
-Ljava/util/TreeMap;->valEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/TreeSet;-><init>(Ljava/util/NavigableMap;)V
-Ljava/util/TreeSet;->m:Ljava/util/NavigableMap;
-Ljava/util/TreeSet;->PRESENT:Ljava/lang/Object;
-Ljava/util/UnknownFormatConversionException;->s:Ljava/lang/String;
-Ljava/util/UnknownFormatFlagsException;->flags:Ljava/lang/String;
-Ljava/util/UUID$Holder;-><init>()V
-Ljava/util/UUID$Holder;->numberGenerator:Ljava/security/SecureRandom;
-Ljava/util/UUID;-><init>([B)V
-Ljava/util/UUID;->digits(JI)Ljava/lang/String;
-Ljava/util/Vector$Itr;->checkForComodification()V
-Ljava/util/Vector$Itr;->cursor:I
-Ljava/util/Vector$Itr;->expectedModCount:I
-Ljava/util/Vector$Itr;->lastRet:I
-Ljava/util/Vector$Itr;->limit:I
-Ljava/util/Vector$VectorSpliterator;-><init>(Ljava/util/Vector;[Ljava/lang/Object;III)V
-Ljava/util/Vector$VectorSpliterator;->array:[Ljava/lang/Object;
-Ljava/util/Vector$VectorSpliterator;->expectedModCount:I
-Ljava/util/Vector$VectorSpliterator;->fence:I
-Ljava/util/Vector$VectorSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/Vector$VectorSpliterator;->getFence()I
-Ljava/util/Vector$VectorSpliterator;->index:I
-Ljava/util/Vector$VectorSpliterator;->list:Ljava/util/Vector;
-Ljava/util/Vector$VectorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/Vector;->ensureCapacityHelper(I)V
-Ljava/util/Vector;->grow(I)V
-Ljava/util/Vector;->hugeCapacity(I)I
-Ljava/util/Vector;->MAX_ARRAY_SIZE:I
-Ljava/util/WeakHashMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;ILjava/util/WeakHashMap$Entry;)V
-Ljava/util/WeakHashMap$Entry;->hash:I
-Ljava/util/WeakHashMap$Entry;->next:Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap$Entry;->value:Ljava/lang/Object;
-Ljava/util/WeakHashMap$EntrySet;->deepCopy()Ljava/util/List;
-Ljava/util/WeakHashMap$EntrySpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
-Ljava/util/WeakHashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/WeakHashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/WeakHashMap$HashIterator;->currentKey:Ljava/lang/Object;
-Ljava/util/WeakHashMap$HashIterator;->entry:Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap$HashIterator;->expectedModCount:I
-Ljava/util/WeakHashMap$HashIterator;->index:I
-Ljava/util/WeakHashMap$HashIterator;->lastReturned:Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap$HashIterator;->nextEntry()Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap$HashIterator;->nextKey:Ljava/lang/Object;
-Ljava/util/WeakHashMap$KeySpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
-Ljava/util/WeakHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/WeakHashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/WeakHashMap$ValueSpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
-Ljava/util/WeakHashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-Ljava/util/WeakHashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->current:Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->est:I
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->estimateSize()J
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->expectedModCount:I
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->fence:I
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->getFence()I
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->index:I
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;->map:Ljava/util/WeakHashMap;
-Ljava/util/WeakHashMap;->containsNullValue()Z
-Ljava/util/WeakHashMap;->DEFAULT_INITIAL_CAPACITY:I
-Ljava/util/WeakHashMap;->DEFAULT_LOAD_FACTOR:F
-Ljava/util/WeakHashMap;->entrySet:Ljava/util/Set;
-Ljava/util/WeakHashMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
-Ljava/util/WeakHashMap;->expungeStaleEntries()V
-Ljava/util/WeakHashMap;->getEntry(Ljava/lang/Object;)Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap;->getTable()[Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap;->hash(Ljava/lang/Object;)I
-Ljava/util/WeakHashMap;->indexFor(II)I
-Ljava/util/WeakHashMap;->loadFactor:F
-Ljava/util/WeakHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/WeakHashMap;->MAXIMUM_CAPACITY:I
-Ljava/util/WeakHashMap;->modCount:I
-Ljava/util/WeakHashMap;->newTable(I)[Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap;->NULL_KEY:Ljava/lang/Object;
-Ljava/util/WeakHashMap;->queue:Ljava/lang/ref/ReferenceQueue;
-Ljava/util/WeakHashMap;->removeMapping(Ljava/lang/Object;)Z
-Ljava/util/WeakHashMap;->resize(I)V
-Ljava/util/WeakHashMap;->size:I
-Ljava/util/WeakHashMap;->table:[Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap;->threshold:I
-Ljava/util/WeakHashMap;->transfer([Ljava/util/WeakHashMap$Entry;[Ljava/util/WeakHashMap$Entry;)V
-Ljava/util/WeakHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
-Ljava/util/zip/Adler32;->adler:I
-Ljava/util/zip/Adler32;->updateByteBuffer(IJII)I
-Ljava/util/zip/Adler32;->updateBytes(I[BII)I
-Ljava/util/zip/CheckedInputStream;->cksum:Ljava/util/zip/Checksum;
-Ljava/util/zip/CheckedOutputStream;->cksum:Ljava/util/zip/Checksum;
-Ljava/util/zip/CRC32;->crc:I
-Ljava/util/zip/CRC32;->updateByteBuffer(IJII)I
-Ljava/util/zip/CRC32;->updateBytes(I[BII)I
-Ljava/util/zip/Deflater;->bytesRead:J
-Ljava/util/zip/Deflater;->bytesWritten:J
-Ljava/util/zip/Deflater;->deflateBytes(J[BIII)I
-Ljava/util/zip/Deflater;->end(J)V
-Ljava/util/zip/Deflater;->ensureOpen()V
-Ljava/util/zip/Deflater;->getAdler(J)I
-Ljava/util/zip/Deflater;->guard:Ldalvik/system/CloseGuard;
-Ljava/util/zip/Deflater;->init(IIZ)J
-Ljava/util/zip/Deflater;->reset(J)V
-Ljava/util/zip/Deflater;->setDictionary(J[BII)V
-Ljava/util/zip/Deflater;->zsRef:Ljava/util/zip/ZStreamRef;
-Ljava/util/zip/DeflaterInputStream;->ensureOpen()V
-Ljava/util/zip/DeflaterInputStream;->rbuf:[B
-Ljava/util/zip/DeflaterInputStream;->reachEOF:Z
-Ljava/util/zip/DeflaterInputStream;->usesDefaultDeflater:Z
-Ljava/util/zip/DeflaterOutputStream;->closed:Z
-Ljava/util/zip/DeflaterOutputStream;->syncFlush:Z
-Ljava/util/zip/DeflaterOutputStream;->usesDefaultDeflater:Z
-Ljava/util/zip/GZIPInputStream;->closed:Z
-Ljava/util/zip/GZIPInputStream;->ensureOpen()V
-Ljava/util/zip/GZIPInputStream;->FCOMMENT:I
-Ljava/util/zip/GZIPInputStream;->FEXTRA:I
-Ljava/util/zip/GZIPInputStream;->FHCRC:I
-Ljava/util/zip/GZIPInputStream;->FNAME:I
-Ljava/util/zip/GZIPInputStream;->FTEXT:I
-Ljava/util/zip/GZIPInputStream;->readHeader(Ljava/io/InputStream;)I
-Ljava/util/zip/GZIPInputStream;->readTrailer()Z
-Ljava/util/zip/GZIPInputStream;->readUByte(Ljava/io/InputStream;)I
-Ljava/util/zip/GZIPInputStream;->readUInt(Ljava/io/InputStream;)J
-Ljava/util/zip/GZIPInputStream;->readUShort(Ljava/io/InputStream;)I
-Ljava/util/zip/GZIPInputStream;->skipBytes(Ljava/io/InputStream;I)V
-Ljava/util/zip/GZIPInputStream;->tmpbuf:[B
-Ljava/util/zip/GZIPOutputStream;->GZIP_MAGIC:I
-Ljava/util/zip/GZIPOutputStream;->TRAILER_SIZE:I
-Ljava/util/zip/GZIPOutputStream;->writeHeader()V
-Ljava/util/zip/GZIPOutputStream;->writeInt(I[BI)V
-Ljava/util/zip/GZIPOutputStream;->writeShort(I[BI)V
-Ljava/util/zip/GZIPOutputStream;->writeTrailer([BI)V
-Ljava/util/zip/Inflater;->bytesRead:J
-Ljava/util/zip/Inflater;->bytesWritten:J
-Ljava/util/zip/Inflater;->defaultBuf:[B
-Ljava/util/zip/Inflater;->end(J)V
-Ljava/util/zip/Inflater;->ended()Z
-Ljava/util/zip/Inflater;->ensureOpen()V
-Ljava/util/zip/Inflater;->getAdler(J)I
-Ljava/util/zip/Inflater;->guard:Ldalvik/system/CloseGuard;
-Ljava/util/zip/Inflater;->inflateBytes(J[BII)I
-Ljava/util/zip/Inflater;->init(Z)J
-Ljava/util/zip/Inflater;->reset(J)V
-Ljava/util/zip/Inflater;->setDictionary(J[BII)V
-Ljava/util/zip/Inflater;->zsRef:Ljava/util/zip/ZStreamRef;
-Ljava/util/zip/InflaterInputStream;->b:[B
-Ljava/util/zip/InflaterInputStream;->ensureOpen()V
-Ljava/util/zip/InflaterInputStream;->reachEOF:Z
-Ljava/util/zip/InflaterInputStream;->singleByteBuf:[B
-Ljava/util/zip/InflaterOutputStream;->closed:Z
-Ljava/util/zip/InflaterOutputStream;->ensureOpen()V
-Ljava/util/zip/InflaterOutputStream;->usesDefaultInflater:Z
-Ljava/util/zip/InflaterOutputStream;->wbuf:[B
-Ljava/util/zip/ZipCoder;-><init>(Ljava/nio/charset/Charset;)V
-Ljava/util/zip/ZipCoder;->cs:Ljava/nio/charset/Charset;
-Ljava/util/zip/ZipCoder;->dec:Ljava/nio/charset/CharsetDecoder;
-Ljava/util/zip/ZipCoder;->decoder()Ljava/nio/charset/CharsetDecoder;
-Ljava/util/zip/ZipCoder;->enc:Ljava/nio/charset/CharsetEncoder;
-Ljava/util/zip/ZipCoder;->encoder()Ljava/nio/charset/CharsetEncoder;
-Ljava/util/zip/ZipCoder;->get(Ljava/nio/charset/Charset;)Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipCoder;->getBytes(Ljava/lang/String;)[B
-Ljava/util/zip/ZipCoder;->getBytesUTF8(Ljava/lang/String;)[B
-Ljava/util/zip/ZipCoder;->isUTF8()Z
-Ljava/util/zip/ZipCoder;->isUTF8:Z
-Ljava/util/zip/ZipCoder;->toString([B)Ljava/lang/String;
-Ljava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;
-Ljava/util/zip/ZipCoder;->toStringUTF8([BI)Ljava/lang/String;
-Ljava/util/zip/ZipCoder;->utf8:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipEntry;-><init>()V
-Ljava/util/zip/ZipEntry;->atime:Ljava/nio/file/attribute/FileTime;
-Ljava/util/zip/ZipEntry;->comment:Ljava/lang/String;
-Ljava/util/zip/ZipEntry;->crc:J
-Ljava/util/zip/ZipEntry;->csize:J
-Ljava/util/zip/ZipEntry;->ctime:Ljava/nio/file/attribute/FileTime;
-Ljava/util/zip/ZipEntry;->dataOffset:J
-Ljava/util/zip/ZipEntry;->DOSTIME_BEFORE_1980:J
-Ljava/util/zip/ZipEntry;->extra:[B
-Ljava/util/zip/ZipEntry;->flag:I
-Ljava/util/zip/ZipEntry;->getDataOffset()J
-Ljava/util/zip/ZipEntry;->mtime:Ljava/nio/file/attribute/FileTime;
-Ljava/util/zip/ZipEntry;->name:Ljava/lang/String;
-Ljava/util/zip/ZipEntry;->setExtra0([BZ)V
-Ljava/util/zip/ZipEntry;->size:J
-Ljava/util/zip/ZipEntry;->UPPER_DOSTIME_BOUND:J
-Ljava/util/zip/ZipEntry;->xdostime:J
-Ljava/util/zip/ZipFile$ZipEntryIterator;->i:I
-Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;->closeRequested:Z
-Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;->eof:Z
-Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;->zfin:Ljava/util/zip/ZipFile$ZipFileInputStream;
-Ljava/util/zip/ZipFile$ZipFileInputStream;->jzentry:J
-Ljava/util/zip/ZipFile$ZipFileInputStream;->pos:J
-Ljava/util/zip/ZipFile$ZipFileInputStream;->rem:J
-Ljava/util/zip/ZipFile$ZipFileInputStream;->size()J
-Ljava/util/zip/ZipFile$ZipFileInputStream;->size:J
-Ljava/util/zip/ZipFile$ZipFileInputStream;->zfisCloseRequested:Z
-Ljava/util/zip/ZipFile;->closeRequested:Z
-Ljava/util/zip/ZipFile;->DEFLATED:I
-Ljava/util/zip/ZipFile;->ensureOpen()V
-Ljava/util/zip/ZipFile;->ensureOpenOrZipException()V
-Ljava/util/zip/ZipFile;->fileToRemoveOnClose:Ljava/io/File;
-Ljava/util/zip/ZipFile;->freeEntry(JJ)V
-Ljava/util/zip/ZipFile;->getCommentBytes(J)[B
-Ljava/util/zip/ZipFile;->getEntryBytes(JI)[B
-Ljava/util/zip/ZipFile;->getEntryCrc(J)J
-Ljava/util/zip/ZipFile;->getEntryCSize(J)J
-Ljava/util/zip/ZipFile;->getEntryFlag(J)I
-Ljava/util/zip/ZipFile;->getEntryMethod(J)I
-Ljava/util/zip/ZipFile;->getEntrySize(J)J
-Ljava/util/zip/ZipFile;->getEntryTime(J)J
-Ljava/util/zip/ZipFile;->getFileDescriptor()I
-Ljava/util/zip/ZipFile;->getFileDescriptor(J)I
-Ljava/util/zip/ZipFile;->getInflater()Ljava/util/zip/Inflater;
-Ljava/util/zip/ZipFile;->getNextEntry(JI)J
-Ljava/util/zip/ZipFile;->getTotal(J)I
-Ljava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;J)Ljava/util/zip/ZipEntry;
-Ljava/util/zip/ZipFile;->getZipMessage(J)Ljava/lang/String;
-Ljava/util/zip/ZipFile;->guard:Ldalvik/system/CloseGuard;
-Ljava/util/zip/ZipFile;->inflaterCache:Ljava/util/Deque;
-Ljava/util/zip/ZipFile;->JZENTRY_COMMENT:I
-Ljava/util/zip/ZipFile;->JZENTRY_EXTRA:I
-Ljava/util/zip/ZipFile;->JZENTRY_NAME:I
-Ljava/util/zip/ZipFile;->locsig:Z
-Ljava/util/zip/ZipFile;->name:Ljava/lang/String;
-Ljava/util/zip/ZipFile;->open(Ljava/lang/String;IJZ)J
-Ljava/util/zip/ZipFile;->read(JJJ[BII)I
-Ljava/util/zip/ZipFile;->releaseInflater(Ljava/util/zip/Inflater;)V
-Ljava/util/zip/ZipFile;->startsWithLOC(J)Z
-Ljava/util/zip/ZipFile;->startsWithLocHeader()Z
-Ljava/util/zip/ZipFile;->STORED:I
-Ljava/util/zip/ZipFile;->streams:Ljava/util/Map;
-Ljava/util/zip/ZipFile;->total:I
-Ljava/util/zip/ZipFile;->usemmap:Z
-Ljava/util/zip/ZipFile;->zc:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipInputStream;->b:[B
-Ljava/util/zip/ZipInputStream;->closed:Z
-Ljava/util/zip/ZipInputStream;->crc:Ljava/util/zip/CRC32;
-Ljava/util/zip/ZipInputStream;->DEFLATED:I
-Ljava/util/zip/ZipInputStream;->ensureOpen()V
-Ljava/util/zip/ZipInputStream;->entry:Ljava/util/zip/ZipEntry;
-Ljava/util/zip/ZipInputStream;->entryEOF:Z
-Ljava/util/zip/ZipInputStream;->readEnd(Ljava/util/zip/ZipEntry;)V
-Ljava/util/zip/ZipInputStream;->readFully([BII)V
-Ljava/util/zip/ZipInputStream;->readLOC()Ljava/util/zip/ZipEntry;
-Ljava/util/zip/ZipInputStream;->remaining:J
-Ljava/util/zip/ZipInputStream;->STORED:I
-Ljava/util/zip/ZipInputStream;->zc:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipOutputStream$XEntry;-><init>(Ljava/util/zip/ZipEntry;J)V
-Ljava/util/zip/ZipOutputStream$XEntry;->entry:Ljava/util/zip/ZipEntry;
-Ljava/util/zip/ZipOutputStream$XEntry;->offset:J
-Ljava/util/zip/ZipOutputStream;->closed:Z
-Ljava/util/zip/ZipOutputStream;->comment:[B
-Ljava/util/zip/ZipOutputStream;->crc:Ljava/util/zip/CRC32;
-Ljava/util/zip/ZipOutputStream;->current:Ljava/util/zip/ZipOutputStream$XEntry;
-Ljava/util/zip/ZipOutputStream;->ensureOpen()V
-Ljava/util/zip/ZipOutputStream;->finished:Z
-Ljava/util/zip/ZipOutputStream;->getExtraLen([B)I
-Ljava/util/zip/ZipOutputStream;->inhibitZip64:Z
-Ljava/util/zip/ZipOutputStream;->locoff:J
-Ljava/util/zip/ZipOutputStream;->version(Ljava/util/zip/ZipEntry;)I
-Ljava/util/zip/ZipOutputStream;->writeByte(I)V
-Ljava/util/zip/ZipOutputStream;->writeBytes([BII)V
-Ljava/util/zip/ZipOutputStream;->writeCEN(Ljava/util/zip/ZipOutputStream$XEntry;)V
-Ljava/util/zip/ZipOutputStream;->writeEND(JJ)V
-Ljava/util/zip/ZipOutputStream;->writeEXT(Ljava/util/zip/ZipEntry;)V
-Ljava/util/zip/ZipOutputStream;->writeExtra([B)V
-Ljava/util/zip/ZipOutputStream;->writeInt(J)V
-Ljava/util/zip/ZipOutputStream;->writeLOC(Ljava/util/zip/ZipOutputStream$XEntry;)V
-Ljava/util/zip/ZipOutputStream;->writeLong(J)V
-Ljava/util/zip/ZipOutputStream;->writeShort(I)V
-Ljava/util/zip/ZipOutputStream;->xentries:Ljava/util/Vector;
-Ljava/util/zip/ZipOutputStream;->zc:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZStreamRef;-><init>(J)V
-Ljava/util/zip/ZStreamRef;->address()J
-Ljava/util/zip/ZStreamRef;->address:J
-Ljava/util/zip/ZStreamRef;->clear()V
-Ljavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
-Ljavax/crypto/Cipher$CipherSpiAndProvider;->cipherSpi:Ljavax/crypto/CipherSpi;
-Ljavax/crypto/Cipher$CipherSpiAndProvider;->provider:Ljava/security/Provider;
-Ljavax/crypto/Cipher$InitParams;-><init>(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/SecureRandom;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;)V
-Ljavax/crypto/Cipher$InitParams;->initType:Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$InitParams;->key:Ljava/security/Key;
-Ljavax/crypto/Cipher$InitParams;->opmode:I
-Ljavax/crypto/Cipher$InitParams;->params:Ljava/security/AlgorithmParameters;
-Ljavax/crypto/Cipher$InitParams;->random:Ljava/security/SecureRandom;
-Ljavax/crypto/Cipher$InitParams;->spec:Ljava/security/spec/AlgorithmParameterSpec;
-Ljavax/crypto/Cipher$InitType;->ALGORITHM_PARAMS:Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$InitType;->ALGORITHM_PARAM_SPEC:Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$InitType;->KEY:Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$InitType;->valueOf(Ljava/lang/String;)Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$InitType;->values()[Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$NeedToSet;->BOTH:Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$NeedToSet;->MODE:Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$NeedToSet;->NONE:Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$NeedToSet;->PADDING:Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$NeedToSet;->valueOf(Ljava/lang/String;)Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$NeedToSet;->values()[Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->getCurrentSpi(Ljavax/crypto/CipherSpi;)Ljavax/crypto/CipherSpi;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->initSpiLock:Ljava/lang/Object;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->setCipherSpiImplAndProvider(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->specifiedProvider:Ljava/security/Provider;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->specifiedSpi:Ljavax/crypto/CipherSpi;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/Cipher$InitParams;Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
-Ljavax/crypto/Cipher$Transform;-><init>(Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;)V
-Ljavax/crypto/Cipher$Transform;->name:Ljava/lang/String;
-Ljavax/crypto/Cipher$Transform;->needToSet:Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;Ljava/lang/String;[Ljava/lang/String;)V
-Ljavax/crypto/Cipher;->ATTRIBUTE_MODES:Ljava/lang/String;
-Ljavax/crypto/Cipher;->ATTRIBUTE_PADDINGS:Ljava/lang/String;
-Ljavax/crypto/Cipher;->checkCipherState()V
-Ljavax/crypto/Cipher;->checkOpmode(I)V
-Ljavax/crypto/Cipher;->chooseProvider(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
-Ljavax/crypto/Cipher;->createCipher(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
-Ljavax/crypto/Cipher;->exmech:Ljavax/crypto/ExemptionMechanism;
-Ljavax/crypto/Cipher;->getAlgorithmParameterSpec(Ljava/security/AlgorithmParameters;)Ljava/security/spec/AlgorithmParameterSpec;
-Ljavax/crypto/Cipher;->getCurrentSpi()Ljavax/crypto/CipherSpi;
-Ljavax/crypto/Cipher;->getOpmodeString(I)Ljava/lang/String;
-Ljavax/crypto/Cipher;->initialized:Z
-Ljavax/crypto/Cipher;->KEY_USAGE_EXTENSION_OID:Ljava/lang/String;
-Ljavax/crypto/Cipher;->matchAttribute(Ljava/security/Provider$Service;Ljava/lang/String;Ljava/lang/String;)Z
-Ljavax/crypto/Cipher;->opmode:I
-Ljavax/crypto/Cipher;->provider:Ljava/security/Provider;
-Ljavax/crypto/Cipher;->spi:Ljavax/crypto/CipherSpi;
-Ljavax/crypto/Cipher;->spiAndProviderUpdater:Ljavax/crypto/Cipher$SpiAndProviderUpdater;
-Ljavax/crypto/Cipher;->tokenizedTransformation:[Ljava/lang/String;
-Ljavax/crypto/Cipher;->tokenizeTransformation(Ljava/lang/String;)[Ljava/lang/String;
-Ljavax/crypto/Cipher;->transformation:Ljava/lang/String;
-Ljavax/crypto/Cipher;->tryCombinations(Ljavax/crypto/Cipher$InitParams;Ljava/security/Provider;[Ljava/lang/String;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
-Ljavax/crypto/Cipher;->tryTransformWithProvider(Ljavax/crypto/Cipher$InitParams;[Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;Ljava/security/Provider$Service;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
-Ljavax/crypto/Cipher;->updateProviderIfNeeded()V
-Ljavax/crypto/CipherInputStream;->cipher:Ljavax/crypto/Cipher;
-Ljavax/crypto/CipherInputStream;->closed:Z
-Ljavax/crypto/CipherInputStream;->done:Z
-Ljavax/crypto/CipherInputStream;->getMoreData()I
-Ljavax/crypto/CipherInputStream;->ibuffer:[B
-Ljavax/crypto/CipherInputStream;->input:Ljava/io/InputStream;
-Ljavax/crypto/CipherInputStream;->obuffer:[B
-Ljavax/crypto/CipherInputStream;->ofinish:I
-Ljavax/crypto/CipherInputStream;->ostart:I
-Ljavax/crypto/CipherOutputStream;->cipher:Ljavax/crypto/Cipher;
-Ljavax/crypto/CipherOutputStream;->closed:Z
-Ljavax/crypto/CipherOutputStream;->ibuffer:[B
-Ljavax/crypto/CipherOutputStream;->obuffer:[B
-Ljavax/crypto/CipherOutputStream;->output:Ljava/io/OutputStream;
-Ljavax/crypto/CipherSpi;->bufferCrypt(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I
-Ljavax/crypto/CipherSpi;->getTempArraySize(I)I
-Ljavax/crypto/EncryptedPrivateKeyInfo;->algid:Lsun/security/x509/AlgorithmId;
-Ljavax/crypto/EncryptedPrivateKeyInfo;->checkPKCS8Encoding([B)V
-Ljavax/crypto/EncryptedPrivateKeyInfo;->checkTag(Lsun/security/util/DerValue;BLjava/lang/String;)V
-Ljavax/crypto/EncryptedPrivateKeyInfo;->encoded:[B
-Ljavax/crypto/EncryptedPrivateKeyInfo;->encryptedData:[B
-Ljavax/crypto/EncryptedPrivateKeyInfo;->getKeySpecImpl(Ljava/security/Key;Ljava/security/Provider;)Ljava/security/spec/PKCS8EncodedKeySpec;
-Ljavax/crypto/ExemptionMechanism;->done:Z
-Ljavax/crypto/ExemptionMechanism;->exmechSpi:Ljavax/crypto/ExemptionMechanismSpi;
-Ljavax/crypto/ExemptionMechanism;->initialized:Z
-Ljavax/crypto/ExemptionMechanism;->keyStored:Ljava/security/Key;
-Ljavax/crypto/ExemptionMechanism;->mechanism:Ljava/lang/String;
-Ljavax/crypto/ExemptionMechanism;->provider:Ljava/security/Provider;
-Ljavax/crypto/KeyAgreement;-><init>(Ljava/lang/String;)V
-Ljavax/crypto/KeyAgreement;->algorithm:Ljava/lang/String;
-Ljavax/crypto/KeyAgreement;->chooseFirstProvider()V
-Ljavax/crypto/KeyAgreement;->chooseProvider(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
-Ljavax/crypto/KeyAgreement;->implInit(Ljavax/crypto/KeyAgreementSpi;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
-Ljavax/crypto/KeyAgreement;->I_NO_PARAMS:I
-Ljavax/crypto/KeyAgreement;->I_PARAMS:I
-Ljavax/crypto/KeyAgreement;->lock:Ljava/lang/Object;
-Ljavax/crypto/KeyAgreement;->provider:Ljava/security/Provider;
-Ljavax/crypto/KeyAgreement;->spi:Ljavax/crypto/KeyAgreementSpi;
-Ljavax/crypto/KeyAgreement;->warnCount:I
-Ljavax/crypto/KeyGenerator;-><init>(Ljava/lang/String;)V
-Ljavax/crypto/KeyGenerator;->algorithm:Ljava/lang/String;
-Ljavax/crypto/KeyGenerator;->disableFailover()V
-Ljavax/crypto/KeyGenerator;->initKeySize:I
-Ljavax/crypto/KeyGenerator;->initParams:Ljava/security/spec/AlgorithmParameterSpec;
-Ljavax/crypto/KeyGenerator;->initRandom:Ljava/security/SecureRandom;
-Ljavax/crypto/KeyGenerator;->initType:I
-Ljavax/crypto/KeyGenerator;->I_NONE:I
-Ljavax/crypto/KeyGenerator;->I_PARAMS:I
-Ljavax/crypto/KeyGenerator;->I_RANDOM:I
-Ljavax/crypto/KeyGenerator;->I_SIZE:I
-Ljavax/crypto/KeyGenerator;->lock:Ljava/lang/Object;
-Ljavax/crypto/KeyGenerator;->nextSpi(Ljavax/crypto/KeyGeneratorSpi;Z)Ljavax/crypto/KeyGeneratorSpi;
-Ljavax/crypto/KeyGenerator;->provider:Ljava/security/Provider;
-Ljavax/crypto/KeyGenerator;->serviceIterator:Ljava/util/Iterator;
-Ljavax/crypto/KeyGenerator;->spi:Ljavax/crypto/KeyGeneratorSpi;
-Ljavax/crypto/Mac;-><init>(Ljava/lang/String;)V
-Ljavax/crypto/Mac;->algorithm:Ljava/lang/String;
-Ljavax/crypto/Mac;->chooseFirstProvider()V
-Ljavax/crypto/Mac;->chooseProvider(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
-Ljavax/crypto/Mac;->getCurrentSpi()Ljavax/crypto/MacSpi;
-Ljavax/crypto/Mac;->initialized:Z
-Ljavax/crypto/Mac;->lock:Ljava/lang/Object;
-Ljavax/crypto/Mac;->provider:Ljava/security/Provider;
-Ljavax/crypto/Mac;->spi:Ljavax/crypto/MacSpi;
-Ljavax/crypto/Mac;->warnCount:I
-Ljavax/crypto/SealedObject;->encryptedContent:[B
-Ljavax/crypto/SealedObject;->paramsAlg:Ljava/lang/String;
-Ljavax/crypto/SealedObject;->sealAlg:Ljava/lang/String;
-Ljavax/crypto/SealedObject;->unseal(Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;
-Ljavax/crypto/SecretKeyFactory;-><init>(Ljava/lang/String;)V
-Ljavax/crypto/SecretKeyFactory;->algorithm:Ljava/lang/String;
-Ljavax/crypto/SecretKeyFactory;->lock:Ljava/lang/Object;
-Ljavax/crypto/SecretKeyFactory;->nextSpi(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
-Ljavax/crypto/SecretKeyFactory;->provider:Ljava/security/Provider;
-Ljavax/crypto/SecretKeyFactory;->serviceIterator:Ljava/util/Iterator;
-Ljavax/crypto/SecretKeyFactory;->spi:Ljavax/crypto/SecretKeyFactorySpi;
-Ljavax/crypto/spec/DESedeKeySpec;->key:[B
-Ljavax/crypto/spec/DESKeySpec;->key:[B
-Ljavax/crypto/spec/DESKeySpec;->WEAK_KEYS:[[B
-Ljavax/crypto/spec/DHGenParameterSpec;->exponentSize:I
-Ljavax/crypto/spec/DHGenParameterSpec;->primeSize:I
-Ljavax/crypto/spec/DHParameterSpec;->g:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHParameterSpec;->l:I
-Ljavax/crypto/spec/DHParameterSpec;->p:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHPrivateKeySpec;->g:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHPrivateKeySpec;->p:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHPrivateKeySpec;->x:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHPublicKeySpec;->g:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHPublicKeySpec;->p:Ljava/math/BigInteger;
-Ljavax/crypto/spec/DHPublicKeySpec;->y:Ljava/math/BigInteger;
-Ljavax/crypto/spec/GCMParameterSpec;->init(I[BII)V
-Ljavax/crypto/spec/GCMParameterSpec;->iv:[B
-Ljavax/crypto/spec/GCMParameterSpec;->tLen:I
-Ljavax/crypto/spec/IvParameterSpec;->iv:[B
-Ljavax/crypto/spec/OAEPParameterSpec;-><init>()V
-Ljavax/crypto/spec/OAEPParameterSpec;->mdName:Ljava/lang/String;
-Ljavax/crypto/spec/OAEPParameterSpec;->mgfName:Ljava/lang/String;
-Ljavax/crypto/spec/OAEPParameterSpec;->mgfSpec:Ljava/security/spec/AlgorithmParameterSpec;
-Ljavax/crypto/spec/OAEPParameterSpec;->pSrc:Ljavax/crypto/spec/PSource;
-Ljavax/crypto/spec/PBEKeySpec;->iterationCount:I
-Ljavax/crypto/spec/PBEKeySpec;->keyLength:I
-Ljavax/crypto/spec/PBEKeySpec;->password:[C
-Ljavax/crypto/spec/PBEKeySpec;->salt:[B
-Ljavax/crypto/spec/PBEParameterSpec;->iterationCount:I
-Ljavax/crypto/spec/PBEParameterSpec;->paramSpec:Ljava/security/spec/AlgorithmParameterSpec;
-Ljavax/crypto/spec/PBEParameterSpec;->salt:[B
-Ljavax/crypto/spec/PSource$PSpecified;->p:[B
-Ljavax/crypto/spec/PSource;->pSrcName:Ljava/lang/String;
-Ljavax/crypto/spec/RC2ParameterSpec;->effectiveKeyBits:I
-Ljavax/crypto/spec/RC2ParameterSpec;->iv:[B
-Ljavax/crypto/spec/RC5ParameterSpec;->iv:[B
-Ljavax/crypto/spec/RC5ParameterSpec;->rounds:I
-Ljavax/crypto/spec/RC5ParameterSpec;->version:I
-Ljavax/crypto/spec/RC5ParameterSpec;->wordSize:I
-Ljavax/crypto/spec/SecretKeySpec;->algorithm:Ljava/lang/String;
-Ljavax/crypto/spec/SecretKeySpec;->key:[B
-Ljavax/microedition/khronos/egl/EGLContext;->EGL_INSTANCE:Ljavax/microedition/khronos/egl/EGL;
-Ljavax/net/ServerSocketFactory;->theFactory:Ljavax/net/ServerSocketFactory;
-Ljavax/net/SocketFactory;->setDefault(Ljavax/net/SocketFactory;)V
-Ljavax/net/SocketFactory;->theFactory:Ljavax/net/SocketFactory;
-Ljavax/net/ssl/CertPathTrustManagerParameters;->parameters:Ljava/security/cert/CertPathParameters;
-Ljavax/net/ssl/HandshakeCompletedEvent;->session:Ljavax/net/ssl/SSLSession;
-Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;-><init>()V
-Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;->defaultHostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
-Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;->originalDefaultHostnameVerifierClass:Ljava/lang/Class;
-Ljavax/net/ssl/HttpsURLConnection;->defaultSSLSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
-Ljavax/net/ssl/HttpsURLConnection;->sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
-Ljavax/net/ssl/KeyManagerFactory;->algorithm:Ljava/lang/String;
-Ljavax/net/ssl/KeyManagerFactory;->factorySpi:Ljavax/net/ssl/KeyManagerFactorySpi;
-Ljavax/net/ssl/KeyManagerFactory;->provider:Ljava/security/Provider;
-Ljavax/net/ssl/KeyStoreBuilderParameters;->parameters:Ljava/util/List;
-Ljavax/net/ssl/SNIHostName$SNIHostNameMatcher;-><init>(Ljava/lang/String;)V
-Ljavax/net/ssl/SNIHostName$SNIHostNameMatcher;->pattern:Ljava/util/regex/Pattern;
-Ljavax/net/ssl/SNIHostName;->checkHostName()V
-Ljavax/net/ssl/SNIHostName;->hostname:Ljava/lang/String;
-Ljavax/net/ssl/SNIMatcher;->type:I
-Ljavax/net/ssl/SNIServerName;->encoded:[B
-Ljavax/net/ssl/SNIServerName;->HEXES:[C
-Ljavax/net/ssl/SNIServerName;->toHexString([B)Ljava/lang/String;
-Ljavax/net/ssl/SNIServerName;->type:I
-Ljavax/net/ssl/SSLContext;->contextSpi:Ljavax/net/ssl/SSLContextSpi;
-Ljavax/net/ssl/SSLContext;->defaultContext:Ljavax/net/ssl/SSLContext;
-Ljavax/net/ssl/SSLContext;->protocol:Ljava/lang/String;
-Ljavax/net/ssl/SSLContext;->provider:Ljava/security/Provider;
-Ljavax/net/ssl/SSLContextSpi;->getDefaultSocket()Ljavax/net/ssl/SSLSocket;
-Ljavax/net/ssl/SSLEngine;->peerHost:Ljava/lang/String;
-Ljavax/net/ssl/SSLEngine;->peerPort:I
-Ljavax/net/ssl/SSLEngineResult;->bytesConsumed:I
-Ljavax/net/ssl/SSLEngineResult;->bytesProduced:I
-Ljavax/net/ssl/SSLEngineResult;->handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
-Ljavax/net/ssl/SSLEngineResult;->status:Ljavax/net/ssl/SSLEngineResult$Status;
-Ljavax/net/ssl/SSLParameters;->algorithmConstraints:Ljava/security/AlgorithmConstraints;
-Ljavax/net/ssl/SSLParameters;->cipherSuites:[Ljava/lang/String;
-Ljavax/net/ssl/SSLParameters;->clone([Ljava/lang/String;)[Ljava/lang/String;
-Ljavax/net/ssl/SSLParameters;->identificationAlgorithm:Ljava/lang/String;
-Ljavax/net/ssl/SSLParameters;->needClientAuth:Z
-Ljavax/net/ssl/SSLParameters;->preferLocalCipherSuites:Z
-Ljavax/net/ssl/SSLParameters;->protocols:[Ljava/lang/String;
-Ljavax/net/ssl/SSLParameters;->sniMatchers:Ljava/util/Map;
-Ljavax/net/ssl/SSLParameters;->sniNames:Ljava/util/Map;
-Ljavax/net/ssl/SSLParameters;->wantClientAuth:Z
-Ljavax/net/ssl/SSLServerSocketFactory;->lastVersion:I
-Ljavax/net/ssl/SSLServerSocketFactory;->log(Ljava/lang/String;)V
-Ljavax/net/ssl/SSLSessionBindingEvent;->name:Ljava/lang/String;
-Ljavax/net/ssl/SSLSocketFactory;->DEBUG:Z
-Ljavax/net/ssl/SSLSocketFactory;->getSecurityProperty(Ljava/lang/String;)Ljava/lang/String;
-Ljavax/net/ssl/SSLSocketFactory;->lastVersion:I
-Ljavax/net/ssl/SSLSocketFactory;->log(Ljava/lang/String;)V
-Ljavax/net/ssl/StandardConstants;-><init>()V
-Ljavax/net/ssl/TrustManagerFactory;->algorithm:Ljava/lang/String;
-Ljavax/net/ssl/TrustManagerFactory;->factorySpi:Ljavax/net/ssl/TrustManagerFactorySpi;
-Ljavax/net/ssl/TrustManagerFactory;->provider:Ljava/security/Provider;
-Ljavax/security/auth/callback/PasswordCallback;->echoOn:Z
-Ljavax/security/auth/callback/PasswordCallback;->inputPassword:[C
-Ljavax/security/auth/callback/PasswordCallback;->prompt:Ljava/lang/String;
-Ljavax/security/auth/callback/UnsupportedCallbackException;->callback:Ljavax/security/auth/callback/Callback;
-Ljavax/security/auth/PrivateCredentialPermission;-><init>(Ljava/lang/String;Ljava/util/Set;)V
-Ljavax/security/auth/Subject$AuthPermissionHolder;-><init>()V
-Ljavax/security/auth/Subject$AuthPermissionHolder;->DO_AS_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$AuthPermissionHolder;->DO_AS_PRIVILEGED_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$AuthPermissionHolder;->GET_SUBJECT_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$AuthPermissionHolder;->MODIFY_PRINCIPALS_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$AuthPermissionHolder;->MODIFY_PRIVATE_CREDENTIALS_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$AuthPermissionHolder;->MODIFY_PUBLIC_CREDENTIALS_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$AuthPermissionHolder;->SET_READ_ONLY_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$ClassSet;->add(Ljava/lang/Object;)Z
-Ljavax/security/auth/Subject$ClassSet;->c:Ljava/lang/Class;
-Ljavax/security/auth/Subject$ClassSet;->populateSet()V
-Ljavax/security/auth/Subject$ClassSet;->set:Ljava/util/Set;
-Ljavax/security/auth/Subject$ClassSet;->which:I
-Ljavax/security/auth/Subject$SecureSet;-><init>(Ljavax/security/auth/Subject;I)V
-Ljavax/security/auth/Subject$SecureSet;-><init>(Ljavax/security/auth/Subject;ILjava/util/Set;)V
-Ljavax/security/auth/Subject$SecureSet;->elements:Ljava/util/LinkedList;
-Ljavax/security/auth/Subject$SecureSet;->subject:Ljavax/security/auth/Subject;
-Ljavax/security/auth/Subject$SecureSet;->which:I
-Ljavax/security/auth/Subject;->createContext(Ljavax/security/auth/Subject;Ljava/security/AccessControlContext;)Ljava/security/AccessControlContext;
-Ljavax/security/auth/Subject;->getCredHashCode(Ljava/lang/Object;)I
-Ljavax/security/auth/Subject;->NULL_PD_ARRAY:[Ljava/security/ProtectionDomain;
-Ljavax/security/auth/Subject;->principals:Ljava/util/Set;
-Ljavax/security/auth/Subject;->PRINCIPAL_SET:I
-Ljavax/security/auth/Subject;->privCredentials:Ljava/util/Set;
-Ljavax/security/auth/Subject;->PRIV_CREDENTIAL_SET:I
-Ljavax/security/auth/Subject;->pubCredentials:Ljava/util/Set;
-Ljavax/security/auth/Subject;->PUB_CREDENTIAL_SET:I
-Ljavax/security/auth/Subject;->readOnly:Z
-Ljavax/security/auth/Subject;->toString(Z)Ljava/lang/String;
-Ljavax/security/auth/x500/X500Principal;-><init>(Lsun/security/x509/X500Name;)V
-Ljavax/security/auth/x500/X500Principal;->thisX500Name:Lsun/security/x509/X500Name;
-Ljavax/security/cert/X509Certificate;->DEFAULT_X509_CERT_CLASS:Ljava/lang/String;
-Ljavax/security/cert/X509Certificate;->getInst(Ljava/lang/Object;)Ljavax/security/cert/X509Certificate;
-Ljavax/security/cert/X509Certificate;->X509Provider:Ljava/lang/String;
-Ljavax/security/cert/X509Certificate;->X509_PROVIDER:Ljava/lang/String;
-Ljavax/sql/ConnectionEvent;->ex:Ljava/sql/SQLException;
-Ljavax/sql/StatementEvent;->exception:Ljava/sql/SQLException;
-Ljavax/sql/StatementEvent;->statement:Ljava/sql/PreparedStatement;
-Ljavax/xml/datatype/DatatypeConfigurationException;->causeOnJDK13OrBelow:Ljava/lang/Throwable;
-Ljavax/xml/datatype/DatatypeConfigurationException;->initCauseByReflection(Ljava/lang/Throwable;)V
-Ljavax/xml/datatype/DatatypeConfigurationException;->isJDK14OrAbove:Z
-Ljavax/xml/datatype/DatatypeConfigurationException;->printStackTrace0(Ljava/io/PrintWriter;)V
-Ljavax/xml/datatype/DatatypeConstants$Field;-><init>(Ljava/lang/String;I)V
-Ljavax/xml/datatype/DatatypeConstants$Field;->id:I
-Ljavax/xml/datatype/DatatypeConstants$Field;->str:Ljava/lang/String;
-Ljavax/xml/datatype/DatatypeConstants;-><init>()V
-Ljavax/xml/datatype/Duration;->getCalendarTimeInMillis(Ljava/util/Calendar;)J
-Ljavax/xml/datatype/Duration;->getFieldValueAsInt(Ljavax/xml/datatype/DatatypeConstants$Field;)I
-Ljavax/xml/datatype/Duration;->toString(Ljava/math/BigDecimal;)Ljava/lang/String;
-Ljavax/xml/namespace/QName;->compatibilitySerialVersionUID:J
-Ljavax/xml/namespace/QName;->defaultSerialVersionUID:J
-Ljavax/xml/namespace/QName;->localPart:Ljava/lang/String;
-Ljavax/xml/namespace/QName;->namespaceURI:Ljava/lang/String;
-Ljavax/xml/namespace/QName;->prefix:Ljava/lang/String;
-Ljavax/xml/namespace/QName;->qNameAsString:Ljava/lang/String;
-Ljavax/xml/parsers/DocumentBuilder;->DEBUG:Z
-Ljavax/xml/parsers/DocumentBuilderFactory;->coalescing:Z
-Ljavax/xml/parsers/DocumentBuilderFactory;->expandEntityRef:Z
-Ljavax/xml/parsers/DocumentBuilderFactory;->ignoreComments:Z
-Ljavax/xml/parsers/DocumentBuilderFactory;->namespaceAware:Z
-Ljavax/xml/parsers/DocumentBuilderFactory;->validating:Z
-Ljavax/xml/parsers/DocumentBuilderFactory;->whitespace:Z
-Ljavax/xml/parsers/FactoryConfigurationError;->exception:Ljava/lang/Exception;
-Ljavax/xml/parsers/SAXParser;->DEBUG:Z
-Ljavax/xml/parsers/SAXParserFactory;->namespaceAware:Z
-Ljavax/xml/parsers/SAXParserFactory;->validating:Z
-Ljavax/xml/transform/dom/DOMResult;->nextSibling:Lorg/w3c/dom/Node;
-Ljavax/xml/transform/dom/DOMResult;->node:Lorg/w3c/dom/Node;
-Ljavax/xml/transform/dom/DOMResult;->systemId:Ljava/lang/String;
-Ljavax/xml/transform/dom/DOMSource;->node:Lorg/w3c/dom/Node;
-Ljavax/xml/transform/dom/DOMSource;->systemID:Ljava/lang/String;
-Ljavax/xml/transform/OutputKeys;-><init>()V
-Ljavax/xml/transform/sax/SAXResult;->handler:Lorg/xml/sax/ContentHandler;
-Ljavax/xml/transform/sax/SAXResult;->lexhandler:Lorg/xml/sax/ext/LexicalHandler;
-Ljavax/xml/transform/sax/SAXResult;->systemId:Ljava/lang/String;
-Ljavax/xml/transform/sax/SAXSource;->inputSource:Lorg/xml/sax/InputSource;
-Ljavax/xml/transform/sax/SAXSource;->reader:Lorg/xml/sax/XMLReader;
-Ljavax/xml/transform/stream/StreamResult;->outputStream:Ljava/io/OutputStream;
-Ljavax/xml/transform/stream/StreamResult;->systemId:Ljava/lang/String;
-Ljavax/xml/transform/stream/StreamResult;->writer:Ljava/io/Writer;
-Ljavax/xml/transform/stream/StreamSource;->inputStream:Ljava/io/InputStream;
-Ljavax/xml/transform/stream/StreamSource;->publicId:Ljava/lang/String;
-Ljavax/xml/transform/stream/StreamSource;->reader:Ljava/io/Reader;
-Ljavax/xml/transform/stream/StreamSource;->systemId:Ljava/lang/String;
-Ljavax/xml/transform/TransformerException;->containedException:Ljava/lang/Throwable;
-Ljavax/xml/transform/TransformerException;->locator:Ljavax/xml/transform/SourceLocator;
-Ljavax/xml/transform/TransformerFactoryConfigurationError;->exception:Ljava/lang/Exception;
-Ljavax/xml/XMLConstants;-><init>()V
-Ljavax/xml/xpath/XPathConstants;-><init>()V
-Ljavax/xml/xpath/XPathException;->cause:Ljava/lang/Throwable;
-Llibcore/util/BasicLruCache;->maxSize:I
-Llibcore/util/BasicLruCache;->trimToSize(I)V
-Llibcore/util/NativeAllocationRegistry$CleanerRunner;-><init>(Lsun/misc/Cleaner;)V
-Llibcore/util/NativeAllocationRegistry$CleanerRunner;->cleaner:Lsun/misc/Cleaner;
-Llibcore/util/NativeAllocationRegistry$CleanerThunk;->nativePtr:J
-Llibcore/util/NativeAllocationRegistry$CleanerThunk;->setNativePtr(J)V
-Llibcore/util/NativeAllocationRegistry;->classLoader:Ljava/lang/ClassLoader;
-Llibcore/util/NativeAllocationRegistry;->freeFunction:J
-Llibcore/util/NativeAllocationRegistry;->registerNativeAllocation(J)V
-Llibcore/util/NativeAllocationRegistry;->registerNativeFree(J)V
-Llibcore/util/NativeAllocationRegistry;->size:J
-Llibcore/util/ZoneInfo$CheckedArithmeticException;-><init>()V
-Llibcore/util/ZoneInfo$OffsetInterval;-><init>(IIII)V
-Llibcore/util/ZoneInfo$OffsetInterval;->containsWallTime(J)Z
-Llibcore/util/ZoneInfo$OffsetInterval;->create(Llibcore/util/ZoneInfo;I)Llibcore/util/ZoneInfo$OffsetInterval;
-Llibcore/util/ZoneInfo$OffsetInterval;->endWallTimeSeconds:I
-Llibcore/util/ZoneInfo$OffsetInterval;->getEndWallTimeSeconds()J
-Llibcore/util/ZoneInfo$OffsetInterval;->getIsDst()I
-Llibcore/util/ZoneInfo$OffsetInterval;->getStartWallTimeSeconds()J
-Llibcore/util/ZoneInfo$OffsetInterval;->getTotalOffsetSeconds()I
-Llibcore/util/ZoneInfo$OffsetInterval;->isDst:I
-Llibcore/util/ZoneInfo$OffsetInterval;->startWallTimeSeconds:I
-Llibcore/util/ZoneInfo$OffsetInterval;->totalOffsetSeconds:I
-Llibcore/util/ZoneInfo$WallTime;->calendar:Ljava/util/GregorianCalendar;
-Llibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
-Llibcore/util/ZoneInfo$WallTime;->copyFieldsToCalendar()V
-Llibcore/util/ZoneInfo$WallTime;->doWallTimeSearch(Llibcore/util/ZoneInfo;IIZ)Ljava/lang/Integer;
-Llibcore/util/ZoneInfo$WallTime;->getOffsetsOfType(Llibcore/util/ZoneInfo;II)[I
-Llibcore/util/ZoneInfo$WallTime;->gmtOffsetSeconds:I
-Llibcore/util/ZoneInfo$WallTime;->hour:I
-Llibcore/util/ZoneInfo$WallTime;->isDst:I
-Llibcore/util/ZoneInfo$WallTime;->minute:I
-Llibcore/util/ZoneInfo$WallTime;->month:I
-Llibcore/util/ZoneInfo$WallTime;->monthDay:I
-Llibcore/util/ZoneInfo$WallTime;->second:I
-Llibcore/util/ZoneInfo$WallTime;->tryOffsetAdjustments(Llibcore/util/ZoneInfo;ILlibcore/util/ZoneInfo$OffsetInterval;II)Ljava/lang/Integer;
-Llibcore/util/ZoneInfo$WallTime;->weekDay:I
-Llibcore/util/ZoneInfo$WallTime;->year:I
-Llibcore/util/ZoneInfo$WallTime;->yearDay:I
-Llibcore/util/ZoneInfo;-><init>(Ljava/lang/String;[J[B[I[BJ)V
-Llibcore/util/ZoneInfo;->checkedAdd(JI)I
-Llibcore/util/ZoneInfo;->checkedSubtract(II)I
-Llibcore/util/ZoneInfo;->findOffsetIndexForTimeInMilliseconds(J)I
-Llibcore/util/ZoneInfo;->findOffsetIndexForTimeInSeconds(J)I
-Llibcore/util/ZoneInfo;->LEAP:[I
-Llibcore/util/ZoneInfo;->mDstSavings:I
-Llibcore/util/ZoneInfo;->mEarliestRawOffset:I
-Llibcore/util/ZoneInfo;->MILLISECONDS_PER_400_YEARS:J
-Llibcore/util/ZoneInfo;->MILLISECONDS_PER_DAY:J
-Llibcore/util/ZoneInfo;->mIsDsts:[B
-Llibcore/util/ZoneInfo;->mOffsets:[I
-Llibcore/util/ZoneInfo;->mRawOffset:I
-Llibcore/util/ZoneInfo;->mTypes:[B
-Llibcore/util/ZoneInfo;->mUseDst:Z
-Llibcore/util/ZoneInfo;->NORMAL:[I
-Llibcore/util/ZoneInfo;->roundDownMillisToSeconds(J)J
-Llibcore/util/ZoneInfo;->roundUpMillisToSeconds(J)J
-Llibcore/util/ZoneInfo;->UNIX_OFFSET:J
Lorg/apache/http/conn/ssl/AbstractVerifier;->IPV4_PATTERN:Ljava/util/regex/Pattern;
Lorg/apache/http/conn/ssl/AbstractVerifier;->isIPv4Address(Ljava/lang/String;)Z
Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;-><init>()V
@@ -112510,629 +94147,3 @@ Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;->DEFAULT_FACTORY:Lor
Lorg/apache/http/params/HttpConnectionParams;-><init>()V
Lorg/ccil/cowan/tagsoup/AttributesImpl;->badIndex(I)V
Lorg/ccil/cowan/tagsoup/AttributesImpl;->ensureCapacity(I)V
-Lorg/json/JSONArray;->checkedPut(Ljava/lang/Object;)V
-Lorg/json/JSONStringer$Scope;->DANGLING_KEY:Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->EMPTY_ARRAY:Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->EMPTY_OBJECT:Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->NONEMPTY_ARRAY:Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->NONEMPTY_OBJECT:Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->NULL:Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->valueOf(Ljava/lang/String;)Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;->values()[Lorg/json/JSONStringer$Scope;
-Lorg/w3c/dom/ls/LSSerializer;->getFilter()Lorg/w3c/dom/ls/LSSerializerFilter;
-Lorg/w3c/dom/ls/LSSerializer;->setFilter(Lorg/w3c/dom/ls/LSSerializerFilter;)V
-Lorg/w3c/dom/traversal/NodeFilter;->FILTER_ACCEPT:S
-Lorg/w3c/dom/traversal/NodeFilter;->FILTER_REJECT:S
-Lorg/w3c/dom/traversal/NodeFilter;->FILTER_SKIP:S
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ALL:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ATTRIBUTE:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_CDATA_SECTION:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_COMMENT:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_DOCUMENT:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_DOCUMENT_FRAGMENT:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_DOCUMENT_TYPE:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ELEMENT:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ENTITY:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_ENTITY_REFERENCE:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_NOTATION:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_PROCESSING_INSTRUCTION:I
-Lorg/w3c/dom/traversal/NodeFilter;->SHOW_TEXT:I
-Lorg/w3c/dom/traversal/NodeIterator;->getExpandEntityReferences()Z
-Lorg/w3c/dom/traversal/NodeIterator;->getFilter()Lorg/w3c/dom/traversal/NodeFilter;
-Lorg/w3c/dom/traversal/NodeIterator;->getRoot()Lorg/w3c/dom/Node;
-Lorg/w3c/dom/traversal/NodeIterator;->getWhatToShow()I
-Lorg/w3c/dom/traversal/NodeIterator;->previousNode()Lorg/w3c/dom/Node;
-Lorg/xml/sax/helpers/AttributeListImpl;->names:Ljava/util/ArrayList;
-Lorg/xml/sax/helpers/AttributeListImpl;->types:Ljava/util/ArrayList;
-Lorg/xml/sax/helpers/AttributeListImpl;->values:Ljava/util/ArrayList;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->attributeNameTable:Ljava/util/Hashtable;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->clear()V
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->copyTables()V
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->declarations:Ljava/util/ArrayList;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->declarePrefix(Ljava/lang/String;Ljava/lang/String;)V
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->declSeen:Z
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->declsOK:Z
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->defaultNS:Ljava/lang/String;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->elementNameTable:Ljava/util/Hashtable;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->getDeclaredPrefixes()Ljava/util/Enumeration;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->getPrefix(Ljava/lang/String;)Ljava/lang/String;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->getPrefixes()Ljava/util/Enumeration;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->getURI(Ljava/lang/String;)Ljava/lang/String;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->parent:Lorg/xml/sax/helpers/NamespaceSupport$Context;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->prefixTable:Ljava/util/Hashtable;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->processName(Ljava/lang/String;Z)[Ljava/lang/String;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->setParent(Lorg/xml/sax/helpers/NamespaceSupport$Context;)V
-Lorg/xml/sax/helpers/NamespaceSupport$Context;->uriTable:Ljava/util/Hashtable;
-Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;->qAtts:Lorg/xml/sax/AttributeList;
-Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;->setAttributeList(Lorg/xml/sax/AttributeList;)V
-Lorg/xml/sax/helpers/ParserAdapter;->FEATURES:Ljava/lang/String;
-Lorg/xml/sax/helpers/ParserAdapter;->NAMESPACES:Ljava/lang/String;
-Lorg/xml/sax/helpers/ParserAdapter;->NAMESPACE_PREFIXES:Ljava/lang/String;
-Lorg/xml/sax/helpers/ParserAdapter;->XMLNS_URIs:Ljava/lang/String;
-Lorg/xml/sax/helpers/ParserFactory;-><init>()V
-Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;-><init>()V
-Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;->attributes:Lorg/xml/sax/Attributes;
-Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;->setAttributes(Lorg/xml/sax/Attributes;)V
-Lorg/xml/sax/helpers/XMLReaderFactory;-><init>()V
-Lorg/xml/sax/helpers/XMLReaderFactory;->property:Ljava/lang/String;
-Lorg/xmlpull/v1/XmlPullParserFactory;->getParserInstance()Lorg/xmlpull/v1/XmlPullParser;
-Lorg/xmlpull/v1/XmlPullParserFactory;->getSerializerInstance()Lorg/xmlpull/v1/XmlSerializer;
-Lorg/xmlpull/v1/XmlPullParserFactory;->newInstantiationException(Ljava/lang/String;Ljava/util/ArrayList;)Lorg/xmlpull/v1/XmlPullParserException;
-Lsun/misc/Cleaner;-><init>(Ljava/lang/Object;Ljava/lang/Runnable;)V
-Lsun/misc/Cleaner;->add(Lsun/misc/Cleaner;)Lsun/misc/Cleaner;
-Lsun/misc/Cleaner;->dummyQueue:Ljava/lang/ref/ReferenceQueue;
-Lsun/misc/Cleaner;->first:Lsun/misc/Cleaner;
-Lsun/misc/Cleaner;->next:Lsun/misc/Cleaner;
-Lsun/misc/Cleaner;->prev:Lsun/misc/Cleaner;
-Lsun/misc/Cleaner;->remove(Lsun/misc/Cleaner;)Z
-Lsun/misc/Cleaner;->thunk:Ljava/lang/Runnable;
-Lsun/misc/JarIndex;->addMapping(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/misc/JarIndex;->addToList(Ljava/lang/String;Ljava/lang/String;Ljava/util/HashMap;)V
-Lsun/misc/JarIndex;->indexMap:Ljava/util/HashMap;
-Lsun/misc/JarIndex;->jarFiles:[Ljava/lang/String;
-Lsun/misc/JarIndex;->jarMap:Ljava/util/HashMap;
-Lsun/misc/JarIndex;->metaInfFilenames:Z
-Lsun/misc/JarIndex;->parseJars([Ljava/lang/String;)V
-Lsun/misc/LRUCache;->oa:[Ljava/lang/Object;
-Lsun/misc/LRUCache;->size:I
-Lsun/misc/MetaIndex;-><init>(Ljava/util/List;Z)V
-Lsun/misc/MetaIndex;->contents:[Ljava/lang/String;
-Lsun/misc/MetaIndex;->getJarMap()Ljava/util/Map;
-Lsun/misc/MetaIndex;->isClassOnlyJar:Z
-Lsun/misc/MetaIndex;->jarMap:Ljava/util/Map;
-Lsun/misc/Resource;->cachedInputStream()Ljava/io/InputStream;
-Lsun/misc/Resource;->cis:Ljava/io/InputStream;
-Lsun/misc/Unsafe;-><init>()V
-Lsun/misc/Unsafe;->getArrayBaseOffsetForComponentType(Ljava/lang/Class;)I
-Lsun/misc/Unsafe;->getArrayIndexScaleForComponentType(Ljava/lang/Class;)I
-Lsun/misc/URLClassPath$FileLoader;-><init>(Ljava/net/URL;)V
-Lsun/misc/URLClassPath$FileLoader;->dir:Ljava/io/File;
-Lsun/misc/URLClassPath$FileLoader;->findResource(Ljava/lang/String;Z)Ljava/net/URL;
-Lsun/misc/URLClassPath$FileLoader;->getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$JarLoader;-><init>(Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap;Ljava/security/AccessControlContext;)V
-Lsun/misc/URLClassPath$JarLoader;->acc:Ljava/security/AccessControlContext;
-Lsun/misc/URLClassPath$JarLoader;->checkJar(Ljava/util/jar/JarFile;)Ljava/util/jar/JarFile;
-Lsun/misc/URLClassPath$JarLoader;->checkResource(Ljava/lang/String;ZLjava/util/jar/JarEntry;)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$JarLoader;->closed:Z
-Lsun/misc/URLClassPath$JarLoader;->csu:Ljava/net/URL;
-Lsun/misc/URLClassPath$JarLoader;->ensureOpen()V
-Lsun/misc/URLClassPath$JarLoader;->findResource(Ljava/lang/String;Z)Ljava/net/URL;
-Lsun/misc/URLClassPath$JarLoader;->getClassPath()[Ljava/net/URL;
-Lsun/misc/URLClassPath$JarLoader;->getIndex()Lsun/misc/JarIndex;
-Lsun/misc/URLClassPath$JarLoader;->getJarFile(Ljava/net/URL;)Ljava/util/jar/JarFile;
-Lsun/misc/URLClassPath$JarLoader;->getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$JarLoader;->getResource(Ljava/lang/String;ZLjava/util/Set;)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$JarLoader;->handler:Ljava/net/URLStreamHandler;
-Lsun/misc/URLClassPath$JarLoader;->index:Lsun/misc/JarIndex;
-Lsun/misc/URLClassPath$JarLoader;->isOptimizable(Ljava/net/URL;)Z
-Lsun/misc/URLClassPath$JarLoader;->jar:Ljava/util/jar/JarFile;
-Lsun/misc/URLClassPath$JarLoader;->lmap:Ljava/util/HashMap;
-Lsun/misc/URLClassPath$JarLoader;->metaIndex:Lsun/misc/MetaIndex;
-Lsun/misc/URLClassPath$JarLoader;->parseClassPath(Ljava/net/URL;Ljava/lang/String;)[Ljava/net/URL;
-Lsun/misc/URLClassPath$JarLoader;->parseExtensionsDependencies()V
-Lsun/misc/URLClassPath$JarLoader;->validIndex(Ljava/lang/String;)Z
-Lsun/misc/URLClassPath$Loader;-><init>(Ljava/net/URL;)V
-Lsun/misc/URLClassPath$Loader;->base:Ljava/net/URL;
-Lsun/misc/URLClassPath$Loader;->findResource(Ljava/lang/String;Z)Ljava/net/URL;
-Lsun/misc/URLClassPath$Loader;->getBaseURL()Ljava/net/URL;
-Lsun/misc/URLClassPath$Loader;->getClassPath()[Ljava/net/URL;
-Lsun/misc/URLClassPath$Loader;->getResource(Ljava/lang/String;)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$Loader;->getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$Loader;->jarfile:Ljava/util/jar/JarFile;
-Lsun/misc/URLClassPath;->acc:Ljava/security/AccessControlContext;
-Lsun/misc/URLClassPath;->check(Ljava/net/URL;)V
-Lsun/misc/URLClassPath;->closed:Z
-Lsun/misc/URLClassPath;->DEBUG:Z
-Lsun/misc/URLClassPath;->DEBUG_LOOKUP_CACHE:Z
-Lsun/misc/URLClassPath;->disableAllLookupCaches()V
-Lsun/misc/URLClassPath;->DISABLE_ACC_CHECKING:Z
-Lsun/misc/URLClassPath;->DISABLE_JAR_CHECKING:Z
-Lsun/misc/URLClassPath;->ensureLoaderOpened(I)Z
-Lsun/misc/URLClassPath;->getLoader(I)Lsun/misc/URLClassPath$Loader;
-Lsun/misc/URLClassPath;->getLoader(Ljava/net/URL;)Lsun/misc/URLClassPath$Loader;
-Lsun/misc/URLClassPath;->getLookupCache(Ljava/lang/String;)[I
-Lsun/misc/URLClassPath;->getLookupCacheForClassLoader(Ljava/lang/ClassLoader;Ljava/lang/String;)[I
-Lsun/misc/URLClassPath;->getLookupCacheURLs(Ljava/lang/ClassLoader;)[Ljava/net/URL;
-Lsun/misc/URLClassPath;->getNextLoader([II)Lsun/misc/URLClassPath$Loader;
-Lsun/misc/URLClassPath;->initLookupCache(Ljava/lang/ClassLoader;)V
-Lsun/misc/URLClassPath;->jarHandler:Ljava/net/URLStreamHandler;
-Lsun/misc/URLClassPath;->JAVA_VERSION:Ljava/lang/String;
-Lsun/misc/URLClassPath;->knownToNotExist(Ljava/lang/String;)Z
-Lsun/misc/URLClassPath;->knownToNotExist0(Ljava/lang/ClassLoader;Ljava/lang/String;)Z
-Lsun/misc/URLClassPath;->lookupCacheEnabled:Z
-Lsun/misc/URLClassPath;->lookupCacheLoader:Ljava/lang/ClassLoader;
-Lsun/misc/URLClassPath;->lookupCacheURLs:[Ljava/net/URL;
-Lsun/misc/URLClassPath;->path:Ljava/util/ArrayList;
-Lsun/misc/URLClassPath;->push([Ljava/net/URL;)V
-Lsun/misc/URLClassPath;->USER_AGENT_JAVA_VERSION:Ljava/lang/String;
-Lsun/misc/URLClassPath;->validateLookupCache(ILjava/lang/String;)V
-Lsun/security/pkcs/ContentInfo;->content:Lsun/security/util/DerValue;
-Lsun/security/pkcs/ContentInfo;->contentType:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/ContentInfo;->crdata:[I
-Lsun/security/pkcs/ContentInfo;->data:[I
-Lsun/security/pkcs/ContentInfo;->ddata:[I
-Lsun/security/pkcs/ContentInfo;->edata:[I
-Lsun/security/pkcs/ContentInfo;->nsdata:[I
-Lsun/security/pkcs/ContentInfo;->OLD_DATA:[I
-Lsun/security/pkcs/ContentInfo;->OLD_SDATA:[I
-Lsun/security/pkcs/ContentInfo;->pkcs7:[I
-Lsun/security/pkcs/ContentInfo;->sdata:[I
-Lsun/security/pkcs/ContentInfo;->sedata:[I
-Lsun/security/pkcs/ContentInfo;->tstInfo:[I
-Lsun/security/pkcs/PKCS7$VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V
-Lsun/security/pkcs/PKCS7$VerbatimX509Certificate;->encodedVerbatim:[B
-Lsun/security/pkcs/PKCS7$WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
-Lsun/security/pkcs/PKCS7$WrappedX509Certificate;->wrapped:Ljava/security/cert/X509Certificate;
-Lsun/security/pkcs/PKCS7;->certificates:[Ljava/security/cert/X509Certificate;
-Lsun/security/pkcs/PKCS7;->certIssuerNames:[Ljava/security/Principal;
-Lsun/security/pkcs/PKCS7;->contentInfo:Lsun/security/pkcs/ContentInfo;
-Lsun/security/pkcs/PKCS7;->contentType:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS7;->crls:[Ljava/security/cert/X509CRL;
-Lsun/security/pkcs/PKCS7;->digestAlgorithmIds:[Lsun/security/x509/AlgorithmId;
-Lsun/security/pkcs/PKCS7;->oldStyle:Z
-Lsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;)V
-Lsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;Z)V
-Lsun/security/pkcs/PKCS7;->parseNetscapeCertChain(Lsun/security/util/DerValue;)V
-Lsun/security/pkcs/PKCS7;->parseOldSignedData(Lsun/security/util/DerValue;)V
-Lsun/security/pkcs/PKCS7;->parseSignedData(Lsun/security/util/DerValue;)V
-Lsun/security/pkcs/PKCS7;->populateCertIssuerNames()V
-Lsun/security/pkcs/PKCS7;->signerInfos:[Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/PKCS7;->version:Ljava/math/BigInteger;
-Lsun/security/pkcs/PKCS9Attribute;->BYTE_ARRAY_CLASS:Ljava/lang/Class;
-Lsun/security/pkcs/PKCS9Attribute;->debug:Lsun/security/util/Debug;
-Lsun/security/pkcs/PKCS9Attribute;->index:I
-Lsun/security/pkcs/PKCS9Attribute;->indexOf(Ljava/lang/Object;[Ljava/lang/Object;I)I
-Lsun/security/pkcs/PKCS9Attribute;->init(Lsun/security/util/ObjectIdentifier;Ljava/lang/Object;)V
-Lsun/security/pkcs/PKCS9Attribute;->NAME_OID_TABLE:Ljava/util/Hashtable;
-Lsun/security/pkcs/PKCS9Attribute;->oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attribute;->OID_NAME_TABLE:Ljava/util/Hashtable;
-Lsun/security/pkcs/PKCS9Attribute;->PKCS9_OIDS:[Lsun/security/util/ObjectIdentifier;
-Lsun/security/pkcs/PKCS9Attribute;->PKCS9_VALUE_TAGS:[[Ljava/lang/Byte;
-Lsun/security/pkcs/PKCS9Attribute;->RSA_PROPRIETARY_STR:Ljava/lang/String;
-Lsun/security/pkcs/PKCS9Attribute;->SINGLE_VALUED:[Z
-Lsun/security/pkcs/PKCS9Attribute;->SMIME_SIGNING_DESC_STR:Ljava/lang/String;
-Lsun/security/pkcs/PKCS9Attribute;->throwSingleValuedException()V
-Lsun/security/pkcs/PKCS9Attribute;->throwTagException(Ljava/lang/Byte;)V
-Lsun/security/pkcs/PKCS9Attribute;->value:Ljava/lang/Object;
-Lsun/security/pkcs/PKCS9Attribute;->VALUE_CLASSES:[Ljava/lang/Class;
-Lsun/security/pkcs/PKCS9Attributes;->attributes:Ljava/util/Hashtable;
-Lsun/security/pkcs/PKCS9Attributes;->castToDerEncoder([Ljava/lang/Object;)[Lsun/security/util/DerEncoder;
-Lsun/security/pkcs/PKCS9Attributes;->decode(Lsun/security/util/DerInputStream;)[B
-Lsun/security/pkcs/PKCS9Attributes;->derEncoding:[B
-Lsun/security/pkcs/PKCS9Attributes;->generateDerEncoding()[B
-Lsun/security/pkcs/PKCS9Attributes;->ignoreUnsupportedAttributes:Z
-Lsun/security/pkcs/PKCS9Attributes;->permittedAttributes:Ljava/util/Hashtable;
-Lsun/security/pkcs/SignerInfo;->authenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
-Lsun/security/pkcs/SignerInfo;->certificateSerialNumber:Ljava/math/BigInteger;
-Lsun/security/pkcs/SignerInfo;->digestAlgorithmId:Lsun/security/x509/AlgorithmId;
-Lsun/security/pkcs/SignerInfo;->digestEncryptionAlgorithmId:Lsun/security/x509/AlgorithmId;
-Lsun/security/pkcs/SignerInfo;->DIGEST_PRIMITIVE_SET:Ljava/util/Set;
-Lsun/security/pkcs/SignerInfo;->encryptedDigest:[B
-Lsun/security/pkcs/SignerInfo;->hasTimestamp:Z
-Lsun/security/pkcs/SignerInfo;->issuerName:Lsun/security/x509/X500Name;
-Lsun/security/pkcs/SignerInfo;->JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
-Lsun/security/pkcs/SignerInfo;->SIG_PRIMITIVE_SET:Ljava/util/Set;
-Lsun/security/pkcs/SignerInfo;->timestamp:Ljava/security/Timestamp;
-Lsun/security/pkcs/SignerInfo;->unauthenticatedAttributes:Lsun/security/pkcs/PKCS9Attributes;
-Lsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;)Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;Ljava/io/InputStream;)Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;[B)Lsun/security/pkcs/SignerInfo;
-Lsun/security/pkcs/SignerInfo;->verifyTimestamp(Lsun/security/timestamp/TimestampToken;)V
-Lsun/security/pkcs/SignerInfo;->version:Ljava/math/BigInteger;
-Lsun/security/util/AbstractAlgorithmConstraints;->checkAlgorithm([Ljava/lang/String;Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)Z
-Lsun/security/util/AbstractAlgorithmConstraints;->getAlgorithms(Ljava/lang/String;)[Ljava/lang/String;
-Lsun/security/util/AlgorithmDecomposer;->decomposeImpl(Ljava/lang/String;)Ljava/util/Set;
-Lsun/security/util/AlgorithmDecomposer;->hasLoop(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
-Lsun/security/util/AlgorithmDecomposer;->pattern:Ljava/util/regex/Pattern;
-Lsun/security/util/AlgorithmDecomposer;->transPattern:Ljava/util/regex/Pattern;
-Lsun/security/util/BitArray;-><init>(Lsun/security/util/BitArray;)V
-Lsun/security/util/BitArray;->BITS_PER_UNIT:I
-Lsun/security/util/BitArray;->BYTES_PER_LINE:I
-Lsun/security/util/BitArray;->length:I
-Lsun/security/util/BitArray;->NYBBLE:[[B
-Lsun/security/util/BitArray;->position(I)I
-Lsun/security/util/BitArray;->repn:[B
-Lsun/security/util/BitArray;->subscript(I)I
-Lsun/security/util/CertConstraintParameters;->cert:Ljava/security/cert/X509Certificate;
-Lsun/security/util/CertConstraintParameters;->trustedMatch:Z
-Lsun/security/util/Debug;->args:Ljava/lang/String;
-Lsun/security/util/Debug;->hexDigits:[C
-Lsun/security/util/Debug;->marshal(Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/util/Debug;->prefix:Ljava/lang/String;
-Lsun/security/util/DerInputBuffer;-><init>([B)V
-Lsun/security/util/DerInputBuffer;-><init>([BII)V
-Lsun/security/util/DerInputBuffer;->dup()Lsun/security/util/DerInputBuffer;
-Lsun/security/util/DerInputBuffer;->equals(Lsun/security/util/DerInputBuffer;)Z
-Lsun/security/util/DerInputBuffer;->getBigInteger(IZ)Ljava/math/BigInteger;
-Lsun/security/util/DerInputBuffer;->getBitString()[B
-Lsun/security/util/DerInputBuffer;->getBitString(I)[B
-Lsun/security/util/DerInputBuffer;->getGeneralizedTime(I)Ljava/util/Date;
-Lsun/security/util/DerInputBuffer;->getInteger(I)I
-Lsun/security/util/DerInputBuffer;->getPos()I
-Lsun/security/util/DerInputBuffer;->getSlice(II)[B
-Lsun/security/util/DerInputBuffer;->getTime(IZ)Ljava/util/Date;
-Lsun/security/util/DerInputBuffer;->getUnalignedBitString()Lsun/security/util/BitArray;
-Lsun/security/util/DerInputBuffer;->getUTCTime(I)Ljava/util/Date;
-Lsun/security/util/DerInputBuffer;->peek()I
-Lsun/security/util/DerInputBuffer;->toByteArray()[B
-Lsun/security/util/DerInputBuffer;->truncate(I)V
-Lsun/security/util/DerInputStream;-><init>(Lsun/security/util/DerInputBuffer;)V
-Lsun/security/util/DerInputStream;->buffer:Lsun/security/util/DerInputBuffer;
-Lsun/security/util/DerInputStream;->getByte()I
-Lsun/security/util/DerInputStream;->getLength()I
-Lsun/security/util/DerInputStream;->getLength(ILjava/io/InputStream;)I
-Lsun/security/util/DerInputStream;->getLength(Ljava/io/InputStream;)I
-Lsun/security/util/DerInputStream;->init([BIIZ)V
-Lsun/security/util/DerInputStream;->readString(BLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/util/DerOutputStream;->lexOrder:Lsun/security/util/ByteArrayLexOrder;
-Lsun/security/util/DerOutputStream;->putIntegerContents(I)V
-Lsun/security/util/DerOutputStream;->putOrderedSet(B[Lsun/security/util/DerEncoder;Ljava/util/Comparator;)V
-Lsun/security/util/DerOutputStream;->putTime(Ljava/util/Date;B)V
-Lsun/security/util/DerOutputStream;->tagOrder:Lsun/security/util/ByteArrayTagOrder;
-Lsun/security/util/DerOutputStream;->writeString(Ljava/lang/String;BLjava/lang/String;)V
-Lsun/security/util/DerValue;-><init>(Lsun/security/util/DerInputBuffer;Z)V
-Lsun/security/util/DerValue;->append([B[B)[B
-Lsun/security/util/DerValue;->doEquals(Lsun/security/util/DerValue;Lsun/security/util/DerValue;)Z
-Lsun/security/util/DerValue;->init(BLjava/lang/String;)Lsun/security/util/DerInputStream;
-Lsun/security/util/DerValue;->init(ZLjava/io/InputStream;)Lsun/security/util/DerInputStream;
-Lsun/security/util/DerValue;->isPrivate()Z
-Lsun/security/util/DerValue;->length:I
-Lsun/security/util/DerValue;->originalEncodedForm:[B
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->EQ:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->GE:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->GT:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->LE:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->LT:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->NE:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->of(Ljava/lang/String;)Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->valueOf(Ljava/lang/String;)Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->values()[Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;-><init>()V
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->algorithm:Ljava/lang/String;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->nextConstraint:Lsun/security/util/DisabledAlgorithmConstraints$Constraint;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->permits(Ljava/security/Key;)Z
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;-><init>([Ljava/lang/String;)V
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->constraintsMap:Ljava/util/Map;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->getConstraints(Ljava/lang/String;)Ljava/util/Set;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->keySizePattern:Ljava/util/regex/Pattern;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Ljava/security/Key;)Z
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint;-><init>(Ljava/lang/String;)V
-Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;-><init>(Ljava/lang/String;Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;I)V
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->maxSize:I
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->minSize:I
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Ljava/security/Key;)Z
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permitsImpl(Ljava/security/Key;)Z
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->prohibitedSize:I
-Lsun/security/util/DisabledAlgorithmConstraints;->algorithmConstraints:Lsun/security/util/DisabledAlgorithmConstraints$Constraints;
-Lsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z
-Lsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints;->debug:Lsun/security/util/Debug;
-Lsun/security/util/DisabledAlgorithmConstraints;->disabledAlgorithms:[Ljava/lang/String;
-Lsun/security/util/ManifestDigester$Entry;->doOldStyle(Ljava/security/MessageDigest;[BII)V
-Lsun/security/util/ManifestDigester$Entry;->length:I
-Lsun/security/util/ManifestDigester$Entry;->lengthWithBlankLine:I
-Lsun/security/util/ManifestDigester$Entry;->offset:I
-Lsun/security/util/ManifestDigester$Entry;->oldStyle:Z
-Lsun/security/util/ManifestDigester$Entry;->rawBytes:[B
-Lsun/security/util/ManifestDigester$Position;-><init>()V
-Lsun/security/util/ManifestDigester$Position;->endOfFirstLine:I
-Lsun/security/util/ManifestDigester$Position;->endOfSection:I
-Lsun/security/util/ManifestDigester$Position;->startOfNext:I
-Lsun/security/util/ManifestDigester;->entries:Ljava/util/HashMap;
-Lsun/security/util/ManifestDigester;->findSection(ILsun/security/util/ManifestDigester$Position;)Z
-Lsun/security/util/ManifestDigester;->isNameAttr([BI)Z
-Lsun/security/util/ManifestDigester;->rawBytes:[B
-Lsun/security/util/ManifestEntryVerifier$SunProviderHolder;-><init>()V
-Lsun/security/util/ManifestEntryVerifier$SunProviderHolder;->instance:Ljava/security/Provider;
-Lsun/security/util/ManifestEntryVerifier;->createdDigests:Ljava/util/HashMap;
-Lsun/security/util/ManifestEntryVerifier;->debug:Lsun/security/util/Debug;
-Lsun/security/util/ManifestEntryVerifier;->digests:Ljava/util/ArrayList;
-Lsun/security/util/ManifestEntryVerifier;->entry:Ljava/util/jar/JarEntry;
-Lsun/security/util/ManifestEntryVerifier;->hexc:[C
-Lsun/security/util/ManifestEntryVerifier;->man:Ljava/util/jar/Manifest;
-Lsun/security/util/ManifestEntryVerifier;->manifestHashes:Ljava/util/ArrayList;
-Lsun/security/util/ManifestEntryVerifier;->name:Ljava/lang/String;
-Lsun/security/util/ManifestEntryVerifier;->signers:[Ljava/security/CodeSigner;
-Lsun/security/util/ManifestEntryVerifier;->skip:Z
-Lsun/security/util/ManifestEntryVerifier;->toHex([B)Ljava/lang/String;
-Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;-><init>()V
-Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;->theOne:Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;
-Lsun/security/util/ObjectIdentifier;-><init>(Lsun/security/util/DerInputBuffer;)V
-Lsun/security/util/ObjectIdentifier;->check([B)V
-Lsun/security/util/ObjectIdentifier;->checkCount(I)V
-Lsun/security/util/ObjectIdentifier;->checkFirstComponent(I)V
-Lsun/security/util/ObjectIdentifier;->checkFirstComponent(Ljava/math/BigInteger;)V
-Lsun/security/util/ObjectIdentifier;->checkOtherComponent(II)V
-Lsun/security/util/ObjectIdentifier;->checkOtherComponent(ILjava/math/BigInteger;)V
-Lsun/security/util/ObjectIdentifier;->checkSecondComponent(II)V
-Lsun/security/util/ObjectIdentifier;->checkSecondComponent(ILjava/math/BigInteger;)V
-Lsun/security/util/ObjectIdentifier;->componentLen:I
-Lsun/security/util/ObjectIdentifier;->components:Ljava/lang/Object;
-Lsun/security/util/ObjectIdentifier;->componentsCalculated:Z
-Lsun/security/util/ObjectIdentifier;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/util/ObjectIdentifier;->encoding:[B
-Lsun/security/util/ObjectIdentifier;->init([II)V
-Lsun/security/util/ObjectIdentifier;->pack([BIIII)[B
-Lsun/security/util/ObjectIdentifier;->pack7Oid(I[BI)I
-Lsun/security/util/ObjectIdentifier;->pack7Oid(Ljava/math/BigInteger;[BI)I
-Lsun/security/util/ObjectIdentifier;->pack7Oid([BII[BI)I
-Lsun/security/util/ObjectIdentifier;->pack8([BII[BI)I
-Lsun/security/util/ObjectIdentifier;->stringForm:Ljava/lang/String;
-Lsun/security/util/SignatureFileVerifier;->ATTR_DIGEST:Ljava/lang/String;
-Lsun/security/util/SignatureFileVerifier;->block:Lsun/security/pkcs/PKCS7;
-Lsun/security/util/SignatureFileVerifier;->certificateFactory:Ljava/security/cert/CertificateFactory;
-Lsun/security/util/SignatureFileVerifier;->contains([Ljava/security/CodeSigner;Ljava/security/CodeSigner;)Z
-Lsun/security/util/SignatureFileVerifier;->createdDigests:Ljava/util/HashMap;
-Lsun/security/util/SignatureFileVerifier;->debug:Lsun/security/util/Debug;
-Lsun/security/util/SignatureFileVerifier;->DIGEST_PRIMITIVE_SET:Ljava/util/Set;
-Lsun/security/util/SignatureFileVerifier;->getDigest(Ljava/lang/String;)Ljava/security/MessageDigest;
-Lsun/security/util/SignatureFileVerifier;->getSigners([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner;
-Lsun/security/util/SignatureFileVerifier;->hexc:[C
-Lsun/security/util/SignatureFileVerifier;->isSubSet([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
-Lsun/security/util/SignatureFileVerifier;->JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
-Lsun/security/util/SignatureFileVerifier;->matches([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
-Lsun/security/util/SignatureFileVerifier;->md:Lsun/security/util/ManifestDigester;
-Lsun/security/util/SignatureFileVerifier;->name:Ljava/lang/String;
-Lsun/security/util/SignatureFileVerifier;->processImpl(Ljava/util/Hashtable;Ljava/util/List;)V
-Lsun/security/util/SignatureFileVerifier;->sfBytes:[B
-Lsun/security/util/SignatureFileVerifier;->signerCache:Ljava/util/ArrayList;
-Lsun/security/util/SignatureFileVerifier;->toHex([B)Ljava/lang/String;
-Lsun/security/util/SignatureFileVerifier;->updateSigners([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
-Lsun/security/util/SignatureFileVerifier;->verifyManifestHash(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List;)Z
-Lsun/security/util/SignatureFileVerifier;->verifyManifestMainAttrs(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;)Z
-Lsun/security/util/SignatureFileVerifier;->verifySection(Ljava/util/jar/Attributes;Ljava/lang/String;Lsun/security/util/ManifestDigester;)Z
-Lsun/security/util/SignatureFileVerifier;->workaround:Z
-Lsun/security/x509/AlgorithmId;-><init>(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
-Lsun/security/x509/AlgorithmId;->algid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->algOID(Ljava/lang/String;)Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AlgorithmId;->algParams:Ljava/security/AlgorithmParameters;
-Lsun/security/x509/AlgorithmId;->constructedFromDer:Z
-Lsun/security/x509/AlgorithmId;->DH_data:[I
-Lsun/security/x509/AlgorithmId;->DH_PKIX_data:[I
-Lsun/security/x509/AlgorithmId;->dsaWithSHA1_PKIX_data:[I
-Lsun/security/x509/AlgorithmId;->DSA_OIW_data:[I
-Lsun/security/x509/AlgorithmId;->DSA_PKIX_data:[I
-Lsun/security/x509/AlgorithmId;->initOidTableVersion:I
-Lsun/security/x509/AlgorithmId;->md2WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->md5WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->nameTable:Ljava/util/Map;
-Lsun/security/x509/AlgorithmId;->oidTable:Ljava/util/Map;
-Lsun/security/x509/AlgorithmId;->reinitializeMappingTableLocked()V
-Lsun/security/x509/AlgorithmId;->RSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->RSA_data:[I
-Lsun/security/x509/AlgorithmId;->sha1WithDSA_OIW_data:[I
-Lsun/security/x509/AlgorithmId;->sha1WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->sha1WithRSAEncryption_OIW_data:[I
-Lsun/security/x509/AlgorithmId;->sha224WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->sha256WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->sha384WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->sha512WithRSAEncryption_data:[I
-Lsun/security/x509/AlgorithmId;->shaWithDSA_OIW_data:[I
-Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;)V
-Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;I)V
-Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;ILjava/util/Map;)V
-Lsun/security/x509/AVA;-><init>(Ljava/io/Reader;Ljava/util/Map;)V
-Lsun/security/x509/AVA;-><init>(Lsun/security/util/DerInputStream;)V
-Lsun/security/x509/AVA;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/AVA;->debug:Lsun/security/util/Debug;
-Lsun/security/x509/AVA;->DEFAULT:I
-Lsun/security/x509/AVA;->escapedDefault:Ljava/lang/String;
-Lsun/security/x509/AVA;->getEmbeddedHexPair(ILjava/io/Reader;)Ljava/lang/Byte;
-Lsun/security/x509/AVA;->getEmbeddedHexString(Ljava/util/List;)Ljava/lang/String;
-Lsun/security/x509/AVA;->hexDigits:Ljava/lang/String;
-Lsun/security/x509/AVA;->isDerString(Lsun/security/util/DerValue;Z)Z
-Lsun/security/x509/AVA;->isTerminator(II)Z
-Lsun/security/x509/AVA;->oid:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/AVA;->parseHexString(Ljava/io/Reader;I)Lsun/security/util/DerValue;
-Lsun/security/x509/AVA;->parseQuotedString(Ljava/io/Reader;Ljava/lang/StringBuilder;)Lsun/security/util/DerValue;
-Lsun/security/x509/AVA;->parseString(Ljava/io/Reader;IILjava/lang/StringBuilder;)Lsun/security/util/DerValue;
-Lsun/security/x509/AVA;->PRESERVE_OLD_DC_ENCODING:Z
-Lsun/security/x509/AVA;->readChar(Ljava/io/Reader;Ljava/lang/String;)I
-Lsun/security/x509/AVA;->RFC1779:I
-Lsun/security/x509/AVA;->RFC2253:I
-Lsun/security/x509/AVA;->specialChars1779:Ljava/lang/String;
-Lsun/security/x509/AVA;->specialChars2253:Ljava/lang/String;
-Lsun/security/x509/AVA;->specialCharsDefault:Ljava/lang/String;
-Lsun/security/x509/AVA;->toKeyword(ILjava/util/Map;)Ljava/lang/String;
-Lsun/security/x509/AVA;->toKeywordValueString(Ljava/lang/String;)Ljava/lang/String;
-Lsun/security/x509/AVA;->trailingSpace(Ljava/io/Reader;)Z
-Lsun/security/x509/AVA;->value:Lsun/security/util/DerValue;
-Lsun/security/x509/CertificatePolicyId;->id:Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/CertificatePolicySet;->ids:Ljava/util/Vector;
-Lsun/security/x509/Extension;->hashMagic:I
-Lsun/security/x509/GeneralName;->name:Lsun/security/x509/GeneralNameInterface;
-Lsun/security/x509/GeneralSubtree;->maximum:I
-Lsun/security/x509/GeneralSubtree;->minimum:I
-Lsun/security/x509/GeneralSubtree;->MIN_DEFAULT:I
-Lsun/security/x509/GeneralSubtree;->myhash:I
-Lsun/security/x509/GeneralSubtree;->name:Lsun/security/x509/GeneralName;
-Lsun/security/x509/GeneralSubtree;->TAG_MAX:B
-Lsun/security/x509/GeneralSubtree;->TAG_MIN:B
-Lsun/security/x509/GeneralSubtrees;-><init>(Lsun/security/x509/GeneralSubtrees;)V
-Lsun/security/x509/GeneralSubtrees;->createWidestSubtree(Lsun/security/x509/GeneralNameInterface;)Lsun/security/x509/GeneralSubtree;
-Lsun/security/x509/GeneralSubtrees;->getGeneralNameInterface(I)Lsun/security/x509/GeneralNameInterface;
-Lsun/security/x509/GeneralSubtrees;->getGeneralNameInterface(Lsun/security/x509/GeneralSubtree;)Lsun/security/x509/GeneralNameInterface;
-Lsun/security/x509/GeneralSubtrees;->minimize()V
-Lsun/security/x509/GeneralSubtrees;->NAME_DIFF_TYPE:I
-Lsun/security/x509/GeneralSubtrees;->NAME_MATCH:I
-Lsun/security/x509/GeneralSubtrees;->NAME_NARROWS:I
-Lsun/security/x509/GeneralSubtrees;->NAME_SAME_TYPE:I
-Lsun/security/x509/GeneralSubtrees;->NAME_WIDENS:I
-Lsun/security/x509/GeneralSubtrees;->trees:Ljava/util/List;
-Lsun/security/x509/NameConstraintsExtension;->calcMinMax()V
-Lsun/security/x509/NameConstraintsExtension;->encodeThis()V
-Lsun/security/x509/NameConstraintsExtension;->excluded:Lsun/security/x509/GeneralSubtrees;
-Lsun/security/x509/NameConstraintsExtension;->hasMax:Z
-Lsun/security/x509/NameConstraintsExtension;->hasMin:Z
-Lsun/security/x509/NameConstraintsExtension;->minMaxValid:Z
-Lsun/security/x509/NameConstraintsExtension;->permitted:Lsun/security/x509/GeneralSubtrees;
-Lsun/security/x509/NameConstraintsExtension;->TAG_EXCLUDED:B
-Lsun/security/x509/NameConstraintsExtension;->TAG_PERMITTED:B
-Lsun/security/x509/RDN;-><init>(I)V
-Lsun/security/x509/RDN;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/security/x509/RDN;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
-Lsun/security/x509/RDN;-><init>(Lsun/security/util/DerValue;)V
-Lsun/security/x509/RDN;->assertion:[Lsun/security/x509/AVA;
-Lsun/security/x509/RDN;->avaList:Ljava/util/List;
-Lsun/security/x509/RDN;->canonicalString:Ljava/lang/String;
-Lsun/security/x509/RDN;->encode(Lsun/security/util/DerOutputStream;)V
-Lsun/security/x509/RDN;->findAttribute(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/DerValue;
-Lsun/security/x509/RDN;->toRFC2253StringInternal(ZLjava/util/Map;)Ljava/lang/String;
-Lsun/security/x509/X500Name;->allAvaList:Ljava/util/List;
-Lsun/security/x509/X500Name;->canonicalDn:Ljava/lang/String;
-Lsun/security/x509/X500Name;->checkNoNewLinesNorTabsAtBeginningOfDN(Ljava/lang/String;)V
-Lsun/security/x509/X500Name;->commonName_data:[I
-Lsun/security/x509/X500Name;->countQuotes(Ljava/lang/String;II)I
-Lsun/security/x509/X500Name;->countryName_data:[I
-Lsun/security/x509/X500Name;->dn:Ljava/lang/String;
-Lsun/security/x509/X500Name;->DNQUALIFIER_DATA:[I
-Lsun/security/x509/X500Name;->DOMAIN_COMPONENT_DATA:[I
-Lsun/security/x509/X500Name;->encoded:[B
-Lsun/security/x509/X500Name;->escaped(IILjava/lang/String;)Z
-Lsun/security/x509/X500Name;->findAttribute(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/DerValue;
-Lsun/security/x509/X500Name;->generateDN()V
-Lsun/security/x509/X500Name;->generateRFC1779DN(Ljava/util/Map;)Ljava/lang/String;
-Lsun/security/x509/X500Name;->generateRFC2253DN(Ljava/util/Map;)Ljava/lang/String;
-Lsun/security/x509/X500Name;->GENERATIONQUALIFIER_DATA:[I
-Lsun/security/x509/X500Name;->getString(Lsun/security/util/DerValue;)Ljava/lang/String;
-Lsun/security/x509/X500Name;->GIVENNAME_DATA:[I
-Lsun/security/x509/X500Name;->INITIALS_DATA:[I
-Lsun/security/x509/X500Name;->intern(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/ObjectIdentifier;
-Lsun/security/x509/X500Name;->internedOIDs:Ljava/util/Map;
-Lsun/security/x509/X500Name;->ipAddress_data:[I
-Lsun/security/x509/X500Name;->isWithinSubtree(Lsun/security/x509/X500Name;)Z
-Lsun/security/x509/X500Name;->localityName_data:[I
-Lsun/security/x509/X500Name;->names:[Lsun/security/x509/RDN;
-Lsun/security/x509/X500Name;->orgName_data:[I
-Lsun/security/x509/X500Name;->orgUnitName_data:[I
-Lsun/security/x509/X500Name;->parseDER(Lsun/security/util/DerInputStream;)V
-Lsun/security/x509/X500Name;->parseDN(Ljava/lang/String;Ljava/util/Map;)V
-Lsun/security/x509/X500Name;->parseRFC2253DN(Ljava/lang/String;)V
-Lsun/security/x509/X500Name;->principalConstructor:Ljava/lang/reflect/Constructor;
-Lsun/security/x509/X500Name;->principalField:Ljava/lang/reflect/Field;
-Lsun/security/x509/X500Name;->rdnList:Ljava/util/List;
-Lsun/security/x509/X500Name;->rfc1779Dn:Ljava/lang/String;
-Lsun/security/x509/X500Name;->rfc2253Dn:Ljava/lang/String;
-Lsun/security/x509/X500Name;->SERIALNUMBER_DATA:[I
-Lsun/security/x509/X500Name;->stateName_data:[I
-Lsun/security/x509/X500Name;->streetAddress_data:[I
-Lsun/security/x509/X500Name;->SURNAME_DATA:[I
-Lsun/security/x509/X500Name;->title_data:[I
-Lsun/security/x509/X500Name;->userid_data:[I
-Lsun/security/x509/X500Name;->x500Principal:Ljavax/security/auth/x500/X500Principal;
-Lsun/util/locale/BaseLocale$Cache;-><init>()V
-Lsun/util/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
-Lsun/util/locale/BaseLocale$Cache;->createObject(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale;
-Lsun/util/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
-Lsun/util/locale/BaseLocale$Cache;->normalizeKey(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;
-Lsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Lsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
-Lsun/util/locale/BaseLocale$Key;->hash:I
-Lsun/util/locale/BaseLocale$Key;->lang:Ljava/lang/ref/SoftReference;
-Lsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;
-Lsun/util/locale/BaseLocale$Key;->normalized:Z
-Lsun/util/locale/BaseLocale$Key;->regn:Ljava/lang/ref/SoftReference;
-Lsun/util/locale/BaseLocale$Key;->scrt:Ljava/lang/ref/SoftReference;
-Lsun/util/locale/BaseLocale$Key;->vart:Ljava/lang/ref/SoftReference;
-Lsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-Lsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Lsun/util/locale/BaseLocale;->CACHE:Lsun/util/locale/BaseLocale$Cache;
-Lsun/util/locale/BaseLocale;->hash:I
-Lsun/util/locale/BaseLocale;->language:Ljava/lang/String;
-Lsun/util/locale/BaseLocale;->region:Ljava/lang/String;
-Lsun/util/locale/BaseLocale;->script:Ljava/lang/String;
-Lsun/util/locale/BaseLocale;->variant:Ljava/lang/String;
-Lsun/util/locale/Extension;-><init>(C)V
-Lsun/util/locale/Extension;-><init>(CLjava/lang/String;)V
-Lsun/util/locale/Extension;->getID()Ljava/lang/String;
-Lsun/util/locale/Extension;->getKey()C
-Lsun/util/locale/Extension;->getValue()Ljava/lang/String;
-Lsun/util/locale/Extension;->id:Ljava/lang/String;
-Lsun/util/locale/Extension;->key:C
-Lsun/util/locale/Extension;->setValue(Ljava/lang/String;)V
-Lsun/util/locale/Extension;->value:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;-><init>(C)V
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;-><init>(Ljava/lang/String;)V
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;->ch:C
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;->lowerCh:C
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;->value()C
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;-><init>(Ljava/lang/String;)V
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;->lowerStr:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;->str:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;->value()Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I
-Lsun/util/locale/InternalLocaleBuilder;->extensions:Ljava/util/Map;
-Lsun/util/locale/InternalLocaleBuilder;->language:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder;->PRIVATEUSE_KEY:Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;
-Lsun/util/locale/InternalLocaleBuilder;->region:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder;->removePrivateuseVariant(Ljava/lang/String;)Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder;->script:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
-Lsun/util/locale/InternalLocaleBuilder;->setUnicodeLocaleExtension(Ljava/lang/String;)V
-Lsun/util/locale/InternalLocaleBuilder;->uattributes:Ljava/util/Set;
-Lsun/util/locale/InternalLocaleBuilder;->ukeywords:Ljava/util/Map;
-Lsun/util/locale/InternalLocaleBuilder;->variant:Ljava/lang/String;
-Lsun/util/locale/LanguageTag;-><init>()V
-Lsun/util/locale/LanguageTag;->extensions:Ljava/util/List;
-Lsun/util/locale/LanguageTag;->extlangs:Ljava/util/List;
-Lsun/util/locale/LanguageTag;->GRANDFATHERED:Ljava/util/Map;
-Lsun/util/locale/LanguageTag;->language:Ljava/lang/String;
-Lsun/util/locale/LanguageTag;->parseExtensions(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->parseExtlangs(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->parseLanguage(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->parsePrivateuse(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-Lsun/util/locale/LanguageTag;->privateuse:Ljava/lang/String;
-Lsun/util/locale/LanguageTag;->region:Ljava/lang/String;
-Lsun/util/locale/LanguageTag;->script:Ljava/lang/String;
-Lsun/util/locale/LanguageTag;->variants:Ljava/util/List;
-Lsun/util/locale/LocaleExtensions;-><init>(Ljava/lang/String;Ljava/lang/Character;Lsun/util/locale/Extension;)V
-Lsun/util/locale/LocaleExtensions;-><init>(Ljava/util/Map;Ljava/util/Set;Ljava/util/Map;)V
-Lsun/util/locale/LocaleExtensions;->extensionMap:Ljava/util/Map;
-Lsun/util/locale/LocaleExtensions;->id:Ljava/lang/String;
-Lsun/util/locale/LocaleExtensions;->toID(Ljava/util/SortedMap;)Ljava/lang/String;
-Lsun/util/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-Lsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
-Lsun/util/locale/LocaleObjectCache$CacheEntry;->key:Ljava/lang/Object;
-Lsun/util/locale/LocaleObjectCache;->cleanStaleEntries()V
-Lsun/util/locale/LocaleObjectCache;->map:Ljava/util/concurrent/ConcurrentMap;
-Lsun/util/locale/LocaleObjectCache;->queue:Ljava/lang/ref/ReferenceQueue;
-Lsun/util/locale/LocaleSyntaxException;->index:I
-Lsun/util/locale/ParseStatus;->errorIndex:I
-Lsun/util/locale/ParseStatus;->errorMsg:Ljava/lang/String;
-Lsun/util/locale/ParseStatus;->parseLength:I
-Lsun/util/locale/StringTokenIterator;->delimiterChar:C
-Lsun/util/locale/StringTokenIterator;->dlms:Ljava/lang/String;
-Lsun/util/locale/StringTokenIterator;->done:Z
-Lsun/util/locale/StringTokenIterator;->end:I
-Lsun/util/locale/StringTokenIterator;->nextDelimiter(I)I
-Lsun/util/locale/StringTokenIterator;->start:I
-Lsun/util/locale/StringTokenIterator;->text:Ljava/lang/String;
-Lsun/util/locale/StringTokenIterator;->token:Ljava/lang/String;
diff --git a/boot/hiddenapi/hiddenapi-unsupported-packages.txt b/boot/hiddenapi/hiddenapi-unsupported-packages.txt
index 986d2591a007..145f0c2213eb 100644
--- a/boot/hiddenapi/hiddenapi-unsupported-packages.txt
+++ b/boot/hiddenapi/hiddenapi-unsupported-packages.txt
@@ -11,33 +11,5 @@ gov.nist.javax.sip.parser
gov.nist.javax.sip.parser.extensions
gov.nist.javax.sip.parser.ims
gov.nist.javax.sip.stack
-org.apache.xalan
-org.apache.xalan.extensions
-org.apache.xalan.processor
-org.apache.xalan.res
-org.apache.xalan.serialize
-org.apache.xalan.templates
-org.apache.xalan.transformer
-org.apache.xalan.xslt
-org.apache.xml.dtm
-org.apache.xml.dtm.ref
-org.apache.xml.dtm.ref.dom2dtm
-org.apache.xml.dtm.ref.sax2dtm
-org.apache.xml.res
-org.apache.xml.serializer
-org.apache.xml.serializer.dom3
-org.apache.xml.serializer.utils
-org.apache.xml.utils
-org.apache.xml.utils.res
-org.apache.xpath
-org.apache.xpath.axes
-org.apache.xpath.compiler
-org.apache.xpath.domapi
-org.apache.xpath.functions
-org.apache.xpath.jaxp
-org.apache.xpath.objects
-org.apache.xpath.operations
-org.apache.xpath.patterns
-org.apache.xpath.res
org.ccil.cowan.tagsoup
org.ccil.cowan.tagsoup.jaxp
diff --git a/cmds/uiautomator/library/Android.bp b/cmds/uiautomator/library/Android.bp
index 469b45201337..cffc07859998 100644
--- a/cmds/uiautomator/library/Android.bp
+++ b/cmds/uiautomator/library/Android.bp
@@ -59,8 +59,8 @@ droiddoc {
"android.test.runner",
"junit",
"android.test.base",
- "unsupportedappusage",
],
+ sdk_version: "current",
installable: false,
custom_template: "droiddoc-templates-sdk",
}
diff --git a/core/api/current.txt b/core/api/current.txt
index 2719144ffeb5..688985551ee0 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -592,6 +592,7 @@ package android {
field public static final int editTextStyle = 16842862; // 0x101006e
field @Deprecated public static final int editable = 16843115; // 0x101016b
field public static final int editorExtras = 16843300; // 0x1010224
+ field public static final int effectColor;
field public static final int elegantTextHeight = 16843869; // 0x101045d
field public static final int elevation = 16843840; // 0x1010440
field public static final int ellipsize = 16842923; // 0x10100ab
@@ -9607,12 +9608,12 @@ package android.bluetooth.le {
}
public final class BluetoothLeAdvertiser {
- method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT}) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
- method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT}) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
- method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT}) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertisingSetCallback);
- method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT}) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertisingSetCallback, android.os.Handler);
- method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT}) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, int, int, android.bluetooth.le.AdvertisingSetCallback);
- method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT}) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, int, int, android.bluetooth.le.AdvertisingSetCallback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertisingSetCallback);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertisingSetCallback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, int, int, android.bluetooth.le.AdvertisingSetCallback);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, int, int, android.bluetooth.le.AdvertisingSetCallback, android.os.Handler);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void stopAdvertising(android.bluetooth.le.AdvertiseCallback);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void stopAdvertisingSet(android.bluetooth.le.AdvertisingSetCallback);
}
@@ -12086,13 +12087,6 @@ package android.content.pm {
field public static final String ACTION_CAN_INTERACT_ACROSS_PROFILES_CHANGED = "android.content.pm.action.CAN_INTERACT_ACROSS_PROFILES_CHANGED";
}
- public class DataLoaderParams {
- method @NonNull public static final android.content.pm.DataLoaderParams forStreaming(@NonNull android.content.ComponentName, @NonNull String);
- method @NonNull public final String getArguments();
- method @NonNull public final android.content.ComponentName getComponentName();
- method @NonNull public final int getType();
- }
-
public final class FeatureGroupInfo implements android.os.Parcelable {
ctor public FeatureGroupInfo();
ctor public FeatureGroupInfo(android.content.pm.FeatureGroupInfo);
@@ -12127,14 +12121,6 @@ package android.content.pm {
field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstallSourceInfo> CREATOR;
}
- public final class InstallationFile {
- method public long getLengthBytes();
- method public int getLocation();
- method @Nullable public byte[] getMetadata();
- method @NonNull public String getName();
- method @Nullable public byte[] getSignature();
- }
-
public class InstrumentationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
ctor public InstrumentationInfo();
ctor public InstrumentationInfo(android.content.pm.InstrumentationInfo);
@@ -12331,9 +12317,6 @@ package android.content.pm {
field public static final String ACTION_SESSION_COMMITTED = "android.content.pm.action.SESSION_COMMITTED";
field public static final String ACTION_SESSION_DETAILS = "android.content.pm.action.SESSION_DETAILS";
field public static final String ACTION_SESSION_UPDATED = "android.content.pm.action.SESSION_UPDATED";
- field public static final int DATA_LOADER_TYPE_NONE = 0; // 0x0
- field public static final int DATA_LOADER_TYPE_STREAMING = 1; // 0x1
- field public static final String EXTRA_DATA_LOADER_TYPE = "android.content.pm.extra.DATA_LOADER_TYPE";
field public static final String EXTRA_OTHER_PACKAGE_NAME = "android.content.pm.extra.OTHER_PACKAGE_NAME";
field public static final String EXTRA_PACKAGE_NAME = "android.content.pm.extra.PACKAGE_NAME";
field public static final String EXTRA_SESSION = "android.content.pm.extra.SESSION";
@@ -12341,9 +12324,6 @@ package android.content.pm {
field public static final String EXTRA_STATUS = "android.content.pm.extra.STATUS";
field public static final String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE";
field public static final String EXTRA_STORAGE_PATH = "android.content.pm.extra.STORAGE_PATH";
- field public static final int LOCATION_DATA_APP = 0; // 0x0
- field public static final int LOCATION_MEDIA_DATA = 2; // 0x2
- field public static final int LOCATION_MEDIA_OBB = 1; // 0x1
field public static final int STATUS_FAILURE = 1; // 0x1
field public static final int STATUS_FAILURE_ABORTED = 3; // 0x3
field public static final int STATUS_FAILURE_BLOCKED = 2; // 0x2
@@ -12351,7 +12331,6 @@ package android.content.pm {
field public static final int STATUS_FAILURE_INCOMPATIBLE = 7; // 0x7
field public static final int STATUS_FAILURE_INVALID = 4; // 0x4
field public static final int STATUS_FAILURE_STORAGE = 6; // 0x6
- field public static final int STATUS_PENDING_STREAMING = -2; // 0xfffffffe
field public static final int STATUS_PENDING_USER_ACTION = -1; // 0xffffffff
field public static final int STATUS_SUCCESS = 0; // 0x0
}
@@ -12359,12 +12338,10 @@ package android.content.pm {
public static class PackageInstaller.Session implements java.io.Closeable {
method public void abandon();
method public void addChildSessionId(int);
- method public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]);
method public void close();
method public void commit(@NonNull android.content.IntentSender);
method public void fsync(@NonNull java.io.OutputStream) throws java.io.IOException;
method @NonNull public int[] getChildSessionIds();
- method @Nullable public android.content.pm.DataLoaderParams getDataLoaderParams();
method @NonNull public String[] getNames() throws java.io.IOException;
method public int getParentSessionId();
method public boolean isMultiPackage();
@@ -12372,7 +12349,6 @@ package android.content.pm {
method @NonNull public java.io.InputStream openRead(@NonNull String) throws java.io.IOException;
method @NonNull public java.io.OutputStream openWrite(@NonNull String, long, long) throws java.io.IOException;
method public void removeChildSessionId(int);
- method public void removeFile(int, @NonNull String);
method public void removeSplit(@NonNull String) throws java.io.IOException;
method @Deprecated public void setChecksums(@NonNull String, @NonNull java.util.List<android.content.pm.Checksum>, @Nullable byte[]) throws java.io.IOException;
method public void setStagingProgress(float);
@@ -12443,7 +12419,6 @@ package android.content.pm {
method public void setAppLabel(@Nullable CharSequence);
method public void setAppPackageName(@Nullable String);
method @Deprecated public void setAutoRevokePermissionsMode(boolean);
- method public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams);
method public void setInstallLocation(int);
method public void setInstallReason(int);
method public void setInstallScenario(int);
@@ -16817,8 +16792,10 @@ package android.graphics.drawable {
public class RippleDrawable extends android.graphics.drawable.LayerDrawable {
ctor public RippleDrawable(@NonNull android.content.res.ColorStateList, @Nullable android.graphics.drawable.Drawable, @Nullable android.graphics.drawable.Drawable);
+ method @NonNull public android.content.res.ColorStateList getEffectColor();
method public int getRadius();
- method public void setColor(android.content.res.ColorStateList);
+ method public void setColor(@NonNull android.content.res.ColorStateList);
+ method public void setEffectColor(@NonNull android.content.res.ColorStateList);
method public void setRadius(int);
field public static final int RADIUS_AUTO = -1; // 0xffffffff
}
@@ -24637,7 +24614,6 @@ package android.media.effect {
package android.media.metrics {
public abstract class Event {
- ctor protected Event(long);
method @NonNull public android.os.Bundle getMetricsBundle();
method @IntRange(from=0xffffffff) public long getTimeSinceCreatedMillis();
}
@@ -24647,7 +24623,7 @@ package android.media.metrics {
field @NonNull public static final android.media.metrics.LogSessionId LOG_SESSION_ID_NONE;
}
- public class MediaMetricsManager {
+ public final class MediaMetricsManager {
method @NonNull public android.media.metrics.PlaybackSession createPlaybackSession();
method @NonNull public android.media.metrics.RecordingSession createRecordingSession();
field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL
@@ -38369,25 +38345,6 @@ package android.service.controls.templates {
}
-package android.service.dataloader {
-
- public abstract class DataLoaderService extends android.app.Service {
- ctor public DataLoaderService();
- method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
- method @Nullable public android.service.dataloader.DataLoaderService.DataLoader onCreateDataLoader(@NonNull android.content.pm.DataLoaderParams);
- }
-
- public static interface DataLoaderService.DataLoader {
- method public boolean onCreate(@NonNull android.content.pm.DataLoaderParams, @NonNull android.service.dataloader.DataLoaderService.FileSystemConnector);
- method public boolean onPrepareImage(@NonNull java.util.Collection<android.content.pm.InstallationFile>, @NonNull java.util.Collection<java.lang.String>);
- }
-
- public static final class DataLoaderService.FileSystemConnector {
- method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void writeData(@NonNull String, long, long, @NonNull android.os.ParcelFileDescriptor) throws java.io.IOException;
- }
-
-}
-
package android.service.dreams {
public class DreamService extends android.app.Service implements android.view.Window.Callback {
@@ -40334,7 +40291,6 @@ package android.telecom {
field public static final int DURATION_MEDIUM = 2; // 0x2
field public static final int DURATION_SHORT = 1; // 0x1
field public static final int DURATION_VERY_SHORT = 0; // 0x0
- field public static final long ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION = 157233955L; // 0x95f3323L
field public static final String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
field public static final String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecom.extra.CALL_DISCONNECT_CAUSE";
field public static final String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecom.extra.CALL_DISCONNECT_MESSAGE";
@@ -42609,7 +42565,7 @@ package android.telephony {
method public String getNetworkOperator();
method public String getNetworkOperatorName();
method @RequiresPermission(anyOf={"android.permission.READ_PRIVILEGED_PHONE_STATE", android.Manifest.permission.READ_PRECISE_PHONE_STATE}) public int getNetworkSelectionMode();
- method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getNetworkSlicingConfiguration(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.data.SlicingConfig,android.telephony.TelephonyManager.SlicingException>);
+ method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getNetworkSlicingConfiguration(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.data.NetworkSlicingConfig,android.telephony.TelephonyManager.NetworkSlicingException>);
method public String getNetworkSpecifier();
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getNetworkType();
method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
@@ -42660,6 +42616,7 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isModemEnabledForSlot(int);
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int isMultiSimSupported();
method public boolean isNetworkRoaming();
+ method public boolean isRadioInterfaceCapabilitySupported(@NonNull String);
method public boolean isRttSupported();
method public boolean isSmsCapable();
method @Deprecated public boolean isTtyModeSupported();
@@ -42859,11 +42816,13 @@ package android.telephony {
field public static final int ERROR_TIMEOUT = 1; // 0x1
}
- public static class TelephonyManager.SlicingException extends java.lang.Exception {
- ctor public TelephonyManager.SlicingException(int);
- method public int getErrorCode();
- field public static final int ERROR_MODEM_ERROR = 2; // 0x2
- field public static final int ERROR_TIMEOUT = 1; // 0x1
+ public class TelephonyManager.ModemErrorException extends android.telephony.TelephonyManager.NetworkSlicingException {
+ }
+
+ public static class TelephonyManager.NetworkSlicingException extends java.lang.Exception {
+ }
+
+ public class TelephonyManager.TimeoutException extends android.telephony.TelephonyManager.NetworkSlicingException {
}
public abstract static class TelephonyManager.UssdResponseCallback {
@@ -43073,6 +43032,15 @@ package android.telephony.data {
method @NonNull public android.telephony.data.NetworkSliceInfo.Builder setStatus(int);
}
+ public final class NetworkSlicingConfig implements android.os.Parcelable {
+ ctor public NetworkSlicingConfig();
+ method public int describeContents();
+ method @NonNull public java.util.List<android.telephony.data.NetworkSliceInfo> getSliceInfo();
+ method @NonNull public java.util.List<android.telephony.data.UrspRule> getUrspRules();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.NetworkSlicingConfig> CREATOR;
+ }
+
public final class RouteSelectionDescriptor implements android.os.Parcelable {
method public int describeContents();
method @NonNull public java.util.List<java.lang.String> getDataNetworkName();
@@ -43090,30 +43058,14 @@ package android.telephony.data {
field public static final int SESSION_TYPE_IPV6 = 1; // 0x1
}
- public final class SlicingConfig implements android.os.Parcelable {
- ctor public SlicingConfig();
- method public int describeContents();
- method @NonNull public java.util.List<android.telephony.data.NetworkSliceInfo> getSliceInfo();
- method @NonNull public java.util.List<android.telephony.data.UrspRule> getUrspRules();
- method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.SlicingConfig> CREATOR;
- }
-
public final class TrafficDescriptor implements android.os.Parcelable {
method public int describeContents();
method @Nullable public String getDataNetworkName();
- method @Nullable public String getOsAppId();
+ method @Nullable public byte[] getOsAppId();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.TrafficDescriptor> CREATOR;
}
- public static final class TrafficDescriptor.Builder {
- ctor public TrafficDescriptor.Builder();
- method @NonNull public android.telephony.data.TrafficDescriptor build();
- method @NonNull public android.telephony.data.TrafficDescriptor.Builder setDataNetworkName(@NonNull String);
- method @NonNull public android.telephony.data.TrafficDescriptor.Builder setOsAppId(@NonNull String);
- }
-
public final class UrspRule implements android.os.Parcelable {
method public int describeContents();
method @IntRange(from=0x0, to=0xff) public int getPrecedence();
@@ -48567,7 +48519,7 @@ package android.view {
method public android.view.View focusSearch(int);
method public void forceHasOverlappingRendering(boolean);
method public void forceLayout();
- method @Nullable public void generateDisplayHash(@NonNull String, @Nullable android.graphics.Rect, @NonNull java.util.concurrent.Executor, @NonNull android.view.displayhash.DisplayHashResultCallback);
+ method public void generateDisplayHash(@NonNull String, @Nullable android.graphics.Rect, @NonNull java.util.concurrent.Executor, @NonNull android.view.displayhash.DisplayHashResultCallback);
method public static int generateViewId();
method public CharSequence getAccessibilityClassName();
method public android.view.View.AccessibilityDelegate getAccessibilityDelegate();
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 5adb95dfd103..b5b681b18bf7 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -40,6 +40,7 @@ package android {
field public static final String BIND_CONTENT_CAPTURE_SERVICE = "android.permission.BIND_CONTENT_CAPTURE_SERVICE";
field public static final String BIND_CONTENT_SUGGESTIONS_SERVICE = "android.permission.BIND_CONTENT_SUGGESTIONS_SERVICE";
field public static final String BIND_DIRECTORY_SEARCH = "android.permission.BIND_DIRECTORY_SEARCH";
+ field public static final String BIND_DISPLAY_HASHING_SERVICE = "android.permission.BIND_DISPLAY_HASHING_SERVICE";
field public static final String BIND_DOMAIN_VERIFICATION_AGENT = "android.permission.BIND_DOMAIN_VERIFICATION_AGENT";
field public static final String BIND_EUICC_SERVICE = "android.permission.BIND_EUICC_SERVICE";
field public static final String BIND_EXTERNAL_STORAGE_SERVICE = "android.permission.BIND_EXTERNAL_STORAGE_SERVICE";
@@ -437,7 +438,8 @@ package android.app {
public class AlarmManager {
method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void set(int, long, long, long, android.app.PendingIntent, android.os.WorkSource);
method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void set(int, long, long, long, android.app.AlarmManager.OnAlarmListener, android.os.Handler, android.os.WorkSource);
- method @RequiresPermission(android.Manifest.permission.SCHEDULE_PRIORITIZED_ALARM) public void setPrioritized(int, long, long, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.app.AlarmManager.OnAlarmListener);
+ method @RequiresPermission(allOf={android.Manifest.permission.UPDATE_DEVICE_STATS, android.Manifest.permission.SCHEDULE_EXACT_ALARM}, conditional=true) public void setExact(int, long, @Nullable String, @NonNull java.util.concurrent.Executor, @NonNull android.os.WorkSource, @NonNull android.app.AlarmManager.OnAlarmListener);
+ method @RequiresPermission(android.Manifest.permission.SCHEDULE_PRIORITIZED_ALARM) public void setPrioritized(int, long, long, @Nullable String, @NonNull java.util.concurrent.Executor, @NonNull android.app.AlarmManager.OnAlarmListener);
}
public class AppOpsManager {
@@ -2526,6 +2528,18 @@ package android.content.pm {
public class DataLoaderParams {
method @NonNull public static final android.content.pm.DataLoaderParams forIncremental(@NonNull android.content.ComponentName, @NonNull String);
+ method @NonNull public static final android.content.pm.DataLoaderParams forStreaming(@NonNull android.content.ComponentName, @NonNull String);
+ method @NonNull public final String getArguments();
+ method @NonNull public final android.content.ComponentName getComponentName();
+ method @NonNull public final int getType();
+ }
+
+ public final class InstallationFile {
+ method public long getLengthBytes();
+ method public int getLocation();
+ method @Nullable public byte[] getMetadata();
+ method @NonNull public String getName();
+ method @Nullable public byte[] getSignature();
}
public final class InstantAppInfo implements android.os.Parcelable {
@@ -2619,10 +2633,19 @@ package android.content.pm {
public class PackageInstaller {
method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean);
field public static final int DATA_LOADER_TYPE_INCREMENTAL = 2; // 0x2
+ field public static final int DATA_LOADER_TYPE_NONE = 0; // 0x0
+ field public static final int DATA_LOADER_TYPE_STREAMING = 1; // 0x1
+ field public static final String EXTRA_DATA_LOADER_TYPE = "android.content.pm.extra.DATA_LOADER_TYPE";
+ field public static final int LOCATION_DATA_APP = 0; // 0x0
+ field public static final int LOCATION_MEDIA_DATA = 2; // 0x2
+ field public static final int LOCATION_MEDIA_OBB = 1; // 0x1
}
public static class PackageInstaller.Session implements java.io.Closeable {
+ method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]);
method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender);
+ method @Nullable @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public android.content.pm.DataLoaderParams getDataLoaderParams();
+ method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void removeFile(int, @NonNull String);
}
public static class PackageInstaller.SessionInfo implements android.os.Parcelable {
@@ -2643,6 +2666,7 @@ package android.content.pm {
public static class PackageInstaller.SessionParams implements android.os.Parcelable {
method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean);
method @Deprecated public void setAllowDowngrade(boolean);
+ method @RequiresPermission(allOf={android.Manifest.permission.INSTALL_PACKAGES, "com.android.permission.USE_INSTALLER_V2"}) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams);
method public void setDontKillApp(boolean);
method public void setEnableRollback(boolean);
method public void setEnableRollback(boolean, int);
@@ -8367,6 +8391,7 @@ package android.os {
field public static final int REASON_ACCOUNT_TRANSFER = 104; // 0x68
field public static final int REASON_ACTIVITY_RECOGNITION = 103; // 0x67
field public static final int REASON_GEOFENCING = 100; // 0x64
+ field public static final int REASON_LOCATION_PROVIDER = 312; // 0x138
field public static final int REASON_OTHER = 1; // 0x1
field public static final int REASON_PUSH_MESSAGING = 101; // 0x65
field public static final int REASON_PUSH_MESSAGING_OVER_QUOTA = 102; // 0x66
@@ -8419,6 +8444,7 @@ package android.os {
field @Deprecated public static final int EVENT_UNSPECIFIED = 0; // 0x0
field @Deprecated public static final int REASON_ACTIVITY_RECOGNITION = 103; // 0x67
field @Deprecated public static final int REASON_GEOFENCING = 100; // 0x64
+ field @Deprecated public static final int REASON_LOCATION_PROVIDER = 312; // 0x138
field @Deprecated public static final int REASON_OTHER = 1; // 0x1
field @Deprecated public static final int REASON_PUSH_MESSAGING = 101; // 0x65
field @Deprecated public static final int REASON_PUSH_MESSAGING_OVER_QUOTA = 102; // 0x66
@@ -9814,12 +9840,30 @@ package android.service.contentsuggestions {
}
+package android.service.dataloader {
+
+ public abstract class DataLoaderService extends android.app.Service {
+ ctor public DataLoaderService();
+ method @Nullable public android.service.dataloader.DataLoaderService.DataLoader onCreateDataLoader(@NonNull android.content.pm.DataLoaderParams);
+ }
+
+ public static interface DataLoaderService.DataLoader {
+ method public boolean onCreate(@NonNull android.content.pm.DataLoaderParams, @NonNull android.service.dataloader.DataLoaderService.FileSystemConnector);
+ method public boolean onPrepareImage(@NonNull java.util.Collection<android.content.pm.InstallationFile>, @NonNull java.util.Collection<java.lang.String>);
+ }
+
+ public static final class DataLoaderService.FileSystemConnector {
+ method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void writeData(@NonNull String, long, long, @NonNull android.os.ParcelFileDescriptor) throws java.io.IOException;
+ }
+
+}
+
package android.service.displayhash {
public final class DisplayHashParams implements android.os.Parcelable {
method public int describeContents();
method @Nullable public android.util.Size getBufferSize();
- method public boolean isGrayscaleBuffer();
+ method public boolean isUseGrayscale();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.service.displayhash.DisplayHashParams> CREATOR;
}
@@ -9828,17 +9872,17 @@ package android.service.displayhash {
ctor public DisplayHashParams.Builder();
method @NonNull public android.service.displayhash.DisplayHashParams build();
method @NonNull public android.service.displayhash.DisplayHashParams.Builder setBufferSize(int, int);
- method @NonNull public android.service.displayhash.DisplayHashParams.Builder setGrayscaleBuffer(boolean);
+ method @NonNull public android.service.displayhash.DisplayHashParams.Builder setUseGrayscale(boolean);
}
- public abstract class DisplayHasherService extends android.app.Service {
- ctor public DisplayHasherService();
+ public abstract class DisplayHashingService extends android.app.Service {
+ ctor public DisplayHashingService();
method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
- method @Nullable public abstract void onGenerateDisplayHash(@NonNull byte[], @NonNull android.hardware.HardwareBuffer, @NonNull android.graphics.Rect, @NonNull String, @NonNull android.view.displayhash.DisplayHashResultCallback);
+ method public abstract void onGenerateDisplayHash(@NonNull byte[], @NonNull android.hardware.HardwareBuffer, @NonNull android.graphics.Rect, @NonNull String, @NonNull android.view.displayhash.DisplayHashResultCallback);
method @NonNull public abstract java.util.Map<java.lang.String,android.service.displayhash.DisplayHashParams> onGetDisplayHashAlgorithms();
method @Nullable public abstract android.view.displayhash.VerifiedDisplayHash onVerifyDisplayHash(@NonNull byte[], @NonNull android.view.displayhash.DisplayHash);
- field public static final String SERVICE_INTERFACE = "android.service.displayhash.DisplayHasherService";
- field public static final String SERVICE_META_DATA = "android.displayhash.display_hasher_service";
+ field public static final String SERVICE_INTERFACE = "android.service.displayhash.DisplayHashingService";
+ field public static final String SERVICE_META_DATA = "android.displayhash.display_hashing_service";
}
}
@@ -10180,7 +10224,7 @@ package android.service.rotationresolver {
ctor public RotationResolutionRequest(@NonNull String, int, int, boolean, long);
method public int describeContents();
method public int getCurrentRotation();
- method @NonNull public String getPackageName();
+ method @NonNull public String getForegroundPackageName();
method public int getProposedRotation();
method public long getTimeoutMillis();
method public boolean shouldUseCamera();
@@ -10352,7 +10396,8 @@ package android.service.translation {
ctor public TranslationService();
method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
method public void onConnected();
- method public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int);
+ method public void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int, @NonNull java.util.function.Consumer<java.lang.Boolean>);
+ method @Deprecated public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int);
method public void onDisconnected();
method public abstract void onFinishTranslationSession(int);
method public abstract void onTranslationCapabilitiesRequest(int, int, @NonNull java.util.function.Consumer<java.util.Set<android.view.translation.TranslationCapability>>);
@@ -11064,10 +11109,6 @@ package android.telephony {
field public static final String KEY_SUPPORT_CDMA_1X_VOICE_CALLS_BOOL = "support_cdma_1x_voice_calls_bool";
}
- public static final class CarrierConfigManager.Ims {
- field public static final String KEY_PUBLISH_SERVICE_DESC_FEATURE_TAG_MAP_OVERRIDE_STRING_ARRAY = "ims.publish_service_desc_feature_tag_map_override_string_array";
- }
-
public static final class CarrierConfigManager.Wifi {
field public static final String KEY_AVOID_5GHZ_SOFTAP_FOR_LAA_BOOL = "wifi.avoid_5ghz_softap_for_laa_bool";
field public static final String KEY_AVOID_5GHZ_WIFI_DIRECT_FOR_LAA_BOOL = "wifi.avoid_5ghz_wifi_direct_for_laa_bool";
@@ -11933,7 +11974,6 @@ package android.telephony {
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String);
- method public boolean isRadioInterfaceCapabilitySupported(@NonNull String);
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn();
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isTetheringApnRequired();
@@ -14117,6 +14157,7 @@ package android.text {
method @NonNull public java.io.File getFile();
method @Nullable public String getFontFamilyName();
method @NonNull public String getFontVariationSettings();
+ method @NonNull public String getPostScriptName();
method @NonNull public android.graphics.fonts.FontStyle getStyle();
method public int getTtcIndex();
method public void writeToParcel(@NonNull android.os.Parcel, int);
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 2cfd21560145..294b05c5d39d 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -657,6 +657,16 @@ package android.app.usage {
ctor public UsageStats();
}
+ public static final class UsageStats.Builder {
+ ctor public UsageStats.Builder();
+ method @NonNull public android.app.usage.UsageStats build();
+ method @NonNull public android.app.usage.UsageStats.Builder setFirstTimeStamp(long);
+ method @NonNull public android.app.usage.UsageStats.Builder setLastTimeStamp(long);
+ method @NonNull public android.app.usage.UsageStats.Builder setLastTimeUsed(long);
+ method @NonNull public android.app.usage.UsageStats.Builder setPackageName(@Nullable String);
+ method @NonNull public android.app.usage.UsageStats.Builder setTotalTimeInForeground(long);
+ }
+
public final class UsageStatsManager {
method public void forceUsageSourceSettingRead();
}
@@ -773,8 +783,10 @@ package android.content.pm {
public class ActivityInfo extends android.content.pm.ComponentInfo implements android.os.Parcelable {
method public static boolean isTranslucentOrFloating(android.content.res.TypedArray);
+ field public static final long ALWAYS_SANDBOX_DISPLAY_APIS = 185004937L; // 0xb06f389L
field public static final long FORCE_NON_RESIZE_APP = 181136395L; // 0xacbec0bL
field public static final long FORCE_RESIZE_APP = 174042936L; // 0xa5faf38L
+ field public static final long NEVER_SANDBOX_DISPLAY_APIS = 184838306L; // 0xb0468a2L
field public static final long OVERRIDE_MIN_ASPECT_RATIO = 174042980L; // 0xa5faf64L
field public static final long OVERRIDE_MIN_ASPECT_RATIO_LARGE = 180326787L; // 0xabf9183L
field public static final float OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE = 1.7777778f;
@@ -999,7 +1011,7 @@ package android.graphics {
}
public class Typeface {
- method @NonNull public static java.util.Map<java.lang.String,android.graphics.Typeface> deserializeFontMap(@NonNull java.nio.ByteBuffer) throws java.io.IOException;
+ method @NonNull public static long[] deserializeFontMap(@NonNull java.nio.ByteBuffer, @NonNull java.util.Map<java.lang.String,android.graphics.Typeface>) throws java.io.IOException;
method @Nullable public static android.os.SharedMemory getSystemFontMapSharedMemory();
method @NonNull public static android.os.SharedMemory serializeFontMap(@NonNull java.util.Map<java.lang.String,android.graphics.Typeface>) throws android.system.ErrnoException, java.io.IOException;
}
@@ -1902,6 +1914,16 @@ package android.os.storage {
method public String getPath();
}
+ public static final class StorageVolume.Builder {
+ ctor public StorageVolume.Builder(@NonNull String, @NonNull java.io.File, @NonNull String, @NonNull android.os.UserHandle, @NonNull String);
+ method @NonNull public android.os.storage.StorageVolume build();
+ method @NonNull public android.os.storage.StorageVolume.Builder setEmulated(boolean);
+ method @NonNull public android.os.storage.StorageVolume.Builder setPrimary(boolean);
+ method @NonNull public android.os.storage.StorageVolume.Builder setRemovable(boolean);
+ method @NonNull public android.os.storage.StorageVolume.Builder setStorageUuid(@Nullable java.util.UUID);
+ method @NonNull public android.os.storage.StorageVolume.Builder setUuid(@Nullable String);
+ }
+
}
package android.os.strictmode {
@@ -2321,6 +2343,14 @@ package android.service.quicksettings {
}
+package android.service.voice {
+
+ public class AlwaysOnHotwordDetector implements android.service.voice.HotwordDetector {
+ method @RequiresPermission(allOf={android.Manifest.permission.RECORD_AUDIO, android.Manifest.permission.CAPTURE_AUDIO_HOTWORD}) public void triggerHardwareRecognitionEventForTest(int, int, boolean, int, int, int, boolean, @NonNull android.media.AudioFormat, @Nullable byte[]);
+ }
+
+}
+
package android.service.watchdog {
public abstract class ExplicitHealthCheckService extends android.app.Service {
@@ -2493,6 +2523,7 @@ package android.text {
method @NonNull public java.io.File getFile();
method @Nullable public String getFontFamilyName();
method @NonNull public String getFontVariationSettings();
+ method @NonNull public String getPostScriptName();
method @NonNull public android.graphics.fonts.FontStyle getStyle();
method public int getTtcIndex();
method public void writeToParcel(@NonNull android.os.Parcel, int);
diff --git a/core/java/Android.bp b/core/java/Android.bp
index 1d290def0bf2..c8a8d36a1b20 100644
--- a/core/java/Android.bp
+++ b/core/java/Android.bp
@@ -70,6 +70,7 @@ filegroup {
"android/annotation/Nullable.java",
"android/annotation/PluralsRes.java",
"android/annotation/RawRes.java",
+ "android/annotation/RequiresNoPermission.java",
"android/annotation/RequiresPermission.java",
"android/annotation/SdkConstant.java",
"android/annotation/Size.java",
diff --git a/core/java/android/annotation/RequiresNoPermission.java b/core/java/android/annotation/RequiresNoPermission.java
new file mode 100644
index 000000000000..6ff4d6e34957
--- /dev/null
+++ b/core/java/android/annotation/RequiresNoPermission.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+package android.annotation;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.CLASS;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Denotes that the annotated element requires no permissions.
+ *
+ * @hide
+ */
+@Retention(CLASS)
+@Target({ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD,PARAMETER})
+public @interface RequiresNoPermission {
+}
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 45120b694b62..77f0cf8578d4 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -8792,11 +8792,11 @@ public class Activity extends ContextThemeWrapper
* @hide
*/
public void updateUiTranslationState(int state, TranslationSpec sourceSpec,
- TranslationSpec destSpec, List<AutofillId> viewIds) {
+ TranslationSpec targetSpec, List<AutofillId> viewIds) {
if (mUiTranslationController == null) {
mUiTranslationController = new UiTranslationController(this, getApplicationContext());
}
- mUiTranslationController.updateUiTranslationState(state, sourceSpec, destSpec, viewIds);
+ mUiTranslationController.updateUiTranslationState(state, sourceSpec, targetSpec, viewIds);
}
class HostCallbacks extends FragmentHostCallback<Activity> {
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 98fee9cf90cf..48df460e8d1d 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -39,7 +39,6 @@ import android.annotation.Nullable;
import android.app.assist.AssistContent;
import android.app.assist.AssistStructure;
import android.app.backup.BackupAgent;
-import android.app.backup.BackupManager;
import android.app.servertransaction.ActivityLifecycleItem;
import android.app.servertransaction.ActivityLifecycleItem.LifecycleState;
import android.app.servertransaction.ActivityRelaunchItem;
@@ -1587,9 +1586,17 @@ public final class ActivityThread extends ClientTransactionHandler
@Override
public void dumpGfxInfo(ParcelFileDescriptor pfd, String[] args) {
- nDumpGraphicsInfo(pfd.getFileDescriptor());
- WindowManagerGlobal.getInstance().dumpGfxInfo(pfd.getFileDescriptor(), args);
- IoUtils.closeQuietly(pfd);
+ DumpComponentInfo data = new DumpComponentInfo();
+ try {
+ data.fd = pfd.dup();
+ data.token = null;
+ data.args = args;
+ sendMessage(H.DUMP_GFXINFO, data, 0, 0, true /*async*/);
+ } catch (IOException e) {
+ Slog.w(TAG, "dumpGfxInfo failed", e);
+ } finally {
+ IoUtils.closeQuietly(pfd);
+ }
}
@Override
@@ -1835,12 +1842,12 @@ public final class ActivityThread extends ClientTransactionHandler
@Override
public void updateUiTranslationState(IBinder activityToken, int state,
- TranslationSpec sourceSpec, TranslationSpec destSpec, List<AutofillId> viewIds) {
+ TranslationSpec sourceSpec, TranslationSpec targetSpec, List<AutofillId> viewIds) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = activityToken;
args.arg2 = state;
args.arg3 = sourceSpec;
- args.arg4 = destSpec;
+ args.arg4 = targetSpec;
args.arg5 = viewIds;
sendMessage(H.UPDATE_UI_TRANSLATION_STATE, args);
}
@@ -1961,6 +1968,7 @@ public final class ActivityThread extends ClientTransactionHandler
public static final int ATTACH_STARTUP_AGENTS = 162;
public static final int UPDATE_UI_TRANSLATION_STATE = 163;
public static final int SET_CONTENT_CAPTURE_OPTIONS_CALLBACK = 164;
+ public static final int DUMP_GFXINFO = 165;
public static final int INSTRUMENT_WITHOUT_RESTART = 170;
public static final int FINISH_INSTRUMENTATION_WITHOUT_RESTART = 171;
@@ -2010,6 +2018,7 @@ public final class ActivityThread extends ClientTransactionHandler
case UPDATE_UI_TRANSLATION_STATE: return "UPDATE_UI_TRANSLATION_STATE";
case SET_CONTENT_CAPTURE_OPTIONS_CALLBACK:
return "SET_CONTENT_CAPTURE_OPTIONS_CALLBACK";
+ case DUMP_GFXINFO: return "DUMP GFXINFO";
case INSTRUMENT_WITHOUT_RESTART: return "INSTRUMENT_WITHOUT_RESTART";
case FINISH_INSTRUMENTATION_WITHOUT_RESTART:
return "FINISH_INSTRUMENTATION_WITHOUT_RESTART";
@@ -2083,6 +2092,9 @@ public final class ActivityThread extends ClientTransactionHandler
case DUMP_SERVICE:
handleDumpService((DumpComponentInfo)msg.obj);
break;
+ case DUMP_GFXINFO:
+ handleDumpGfxInfo((DumpComponentInfo) msg.obj);
+ break;
case LOW_MEMORY:
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "lowMemory");
handleLowMemory();
@@ -4169,13 +4181,13 @@ public final class ActivityThread extends ClientTransactionHandler
}
private void updateUiTranslationState(IBinder activityToken, int state,
- TranslationSpec sourceSpec, TranslationSpec destSpec, List<AutofillId> viewIds) {
+ TranslationSpec sourceSpec, TranslationSpec targetSpec, List<AutofillId> viewIds) {
final ActivityClientRecord r = mActivities.get(activityToken);
if (r == null) {
Log.w(TAG, "updateUiTranslationState(): no activity for " + activityToken);
return;
}
- r.activity.updateUiTranslationState(state, sourceSpec, destSpec, viewIds);
+ r.activity.updateUiTranslationState(state, sourceSpec, targetSpec, viewIds);
}
private static final ThreadLocal<Intent> sCurrentBroadcastIntent = new ThreadLocal<Intent>();
@@ -4483,6 +4495,17 @@ public final class ActivityThread extends ClientTransactionHandler
}
}
+ private void handleDumpGfxInfo(DumpComponentInfo info) {
+ try {
+ nDumpGraphicsInfo(info.fd.getFileDescriptor());
+ WindowManagerGlobal.getInstance().dumpGfxInfo(info.fd.getFileDescriptor(), info.args);
+ } catch (Exception e) {
+ Log.w(TAG, "Caught exception from dumpGfxInfo()", e);
+ } finally {
+ IoUtils.closeQuietly(info.fd);
+ }
+ }
+
private void handleDumpService(DumpComponentInfo info) {
final StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
try {
diff --git a/core/java/android/app/IActivityClientController.aidl b/core/java/android/app/IActivityClientController.aidl
index ed4836e31209..09b0c2f96b13 100644
--- a/core/java/android/app/IActivityClientController.aidl
+++ b/core/java/android/app/IActivityClientController.aidl
@@ -37,7 +37,11 @@ import com.android.internal.policy.IKeyguardDismissCallback;
interface IActivityClientController {
oneway void activityIdle(in IBinder token, in Configuration config, in boolean stopProfiling);
oneway void activityResumed(in IBinder token, in boolean handleSplashScreenExit);
- oneway void activityTopResumedStateLost();
+ /**
+ * This call is not one-way because {@link #activityPaused()) is not one-way, or
+ * the top-resumed-lost could be reported after activity paused.
+ */
+ void activityTopResumedStateLost();
/**
* Notifies that the activity has completed paused. This call is not one-way because it can make
* consecutive launch in the same process more coherent. About the order of binder call, it
diff --git a/core/java/android/app/IApplicationThread.aidl b/core/java/android/app/IApplicationThread.aidl
index 78e7ce8c594e..918309e8e735 100644
--- a/core/java/android/app/IApplicationThread.aidl
+++ b/core/java/android/app/IApplicationThread.aidl
@@ -160,5 +160,5 @@ oneway interface IApplicationThread {
IUiAutomationConnection instrumentationUiConnection,
in ApplicationInfo targetInfo);
void updateUiTranslationState(IBinder activityToken, int state, in TranslationSpec sourceSpec,
- in TranslationSpec destSpec, in List<AutofillId> viewIds);
+ in TranslationSpec targetSpec, in List<AutofillId> viewIds);
}
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 7ce0c7060b05..d25561640385 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -6103,6 +6103,9 @@ public class Notification implements Parcelable
button.setImageViewIcon(R.id.action0, action.getIcon());
boolean priority = action.getExtras().getBoolean(CallStyle.KEY_ACTION_PRIORITY);
button.setBoolean(R.id.action0, "setWrapModePriority", priority);
+ int minWidthDimen =
+ priority ? R.dimen.call_notification_system_action_min_width : 0;
+ button.setIntDimen(R.id.action0, "setMinimumWidth", minWidthDimen);
}
} else {
button.setTextViewText(R.id.action0, processTextSpans(
diff --git a/core/java/android/app/timedetector/TimeDetector.java b/core/java/android/app/timedetector/TimeDetector.java
index 52016b65688b..a3562301cde7 100644
--- a/core/java/android/app/timedetector/TimeDetector.java
+++ b/core/java/android/app/timedetector/TimeDetector.java
@@ -32,6 +32,18 @@ import android.os.TimestampedValue;
public interface TimeDetector {
/**
+ * The name of the service for shell commands.
+ * @hide
+ */
+ String SHELL_COMMAND_SERVICE_NAME = "time_detector";
+
+ /**
+ * A shell command that prints the current "auto time detection" global setting value.
+ * @hide
+ */
+ String SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED = "is_auto_detection_enabled";
+
+ /**
* A shared utility method to create a {@link ManualTimeSuggestion}.
*
* @hide
diff --git a/core/java/android/app/usage/UsageStats.java b/core/java/android/app/usage/UsageStats.java
index cda463408955..b723140e2361 100644
--- a/core/java/android/app/usage/UsageStats.java
+++ b/core/java/android/app/usage/UsageStats.java
@@ -31,6 +31,8 @@ import static android.app.usage.UsageEvents.Event.ROLLOVER_FOREGROUND_SERVICE;
import static android.app.usage.UsageEvents.Event.USER_INTERACTION;
import android.annotation.CurrentTimeMillisLong;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -760,4 +762,48 @@ public final class UsageStats implements Parcelable {
return new UsageStats[size];
}
};
+
+ /** @hide */
+ // This class is used by the mainline test suite, so we have to keep these APIs around across
+ // releases. Consider making this class public to help external developers to write tests as
+ // well.
+ @TestApi
+ public static final class Builder {
+ private final UsageStats mUsageStats = new UsageStats();
+
+ @NonNull
+ public UsageStats build() {
+ return mUsageStats;
+ }
+
+ @NonNull
+ public Builder setPackageName(@Nullable String packageName) {
+ mUsageStats.mPackageName = packageName;
+ return this;
+ }
+
+ @NonNull
+ public Builder setFirstTimeStamp(long firstTimeStamp) {
+ mUsageStats.mBeginTimeStamp = firstTimeStamp;
+ return this;
+ }
+
+ @NonNull
+ public Builder setLastTimeStamp(long lastTimeStamp) {
+ mUsageStats.mEndTimeStamp = lastTimeStamp;
+ return this;
+ }
+
+ @NonNull
+ public Builder setTotalTimeInForeground(long totalTimeInForeground) {
+ mUsageStats.mTotalTimeInForeground = totalTimeInForeground;
+ return this;
+ }
+
+ @NonNull
+ public Builder setLastTimeUsed(long lastTimeUsed) {
+ mUsageStats.mLastTimeUsed = lastTimeUsed;
+ return this;
+ }
+ }
}
diff --git a/core/java/android/bluetooth/BluetoothA2dp.java b/core/java/android/bluetooth/BluetoothA2dp.java
index a268e168ae74..0d21e09293b3 100644
--- a/core/java/android/bluetooth/BluetoothA2dp.java
+++ b/core/java/android/bluetooth/BluetoothA2dp.java
@@ -20,8 +20,10 @@ import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
+import android.annotation.SuppressLint;
import android.annotation.SdkConstant.SdkConstantType;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission;
@@ -512,6 +514,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -534,6 +537,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -624,6 +628,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
* @return true if device supports absolute volume
* @hide
*/
+ @RequiresNoPermission
public boolean isAvrcpAbsoluteVolumeSupported() {
if (DBG) Log.d(TAG, "isAvrcpAbsoluteVolumeSupported");
try {
@@ -690,6 +695,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean shouldSendVolumeKeys(BluetoothDevice device) {
if (isEnabled() && isValidDevice(device)) {
diff --git a/core/java/android/bluetooth/BluetoothA2dpSink.java b/core/java/android/bluetooth/BluetoothA2dpSink.java
index d81316e357d3..280e8bc8402b 100755
--- a/core/java/android/bluetooth/BluetoothA2dpSink.java
+++ b/core/java/android/bluetooth/BluetoothA2dpSink.java
@@ -187,6 +187,8 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
final IBluetoothA2dpSink service = getService();
@@ -208,6 +210,8 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (VDBG) log("getDevicesMatchingStates()");
final IBluetoothA2dpSink service = getService();
@@ -229,6 +233,8 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (VDBG) log("getState(" + device + ")");
final IBluetoothA2dpSink service = getService();
@@ -256,6 +262,8 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
* @hide
*/
@RequiresLegacyBluetoothPermission
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothAudioConfig getAudioConfig(BluetoothDevice device) {
if (VDBG) log("getAudioConfig(" + device + ")");
final IBluetoothA2dpSink service = getService();
@@ -282,6 +290,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -304,6 +313,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 972e9e6d73b0..052a7733c220 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -21,6 +21,7 @@ import android.annotation.CallbackExecutor;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
@@ -716,6 +717,7 @@ public final class BluetoothAdapter {
* Bluetooth metadata listener. Overrides the default BluetoothMetadataListener
* implementation.
*/
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private static final IBluetoothMetadataListener sBluetoothMetadataListener =
new IBluetoothMetadataListener.Stub() {
@Override
@@ -747,6 +749,7 @@ public final class BluetoothAdapter {
* @return the default local adapter, or null if Bluetooth is not supported on this hardware
* platform
*/
+ @RequiresNoPermission
public static synchronized BluetoothAdapter getDefaultAdapter() {
if (sAdapter == null) {
IBinder b = ServiceManager.getService(BLUETOOTH_MANAGER_SERVICE);
@@ -792,6 +795,7 @@ public final class BluetoothAdapter {
* @param address valid Bluetooth MAC address
* @throws IllegalArgumentException if address is invalid
*/
+ @RequiresNoPermission
public BluetoothDevice getRemoteDevice(String address) {
return new BluetoothDevice(address);
}
@@ -807,6 +811,7 @@ public final class BluetoothAdapter {
* @param address Bluetooth MAC address (6 bytes)
* @throws IllegalArgumentException if address is invalid
*/
+ @RequiresNoPermission
public BluetoothDevice getRemoteDevice(byte[] address) {
if (address == null || address.length != 6) {
throw new IllegalArgumentException("Bluetooth address must have 6 bytes");
@@ -824,6 +829,7 @@ public final class BluetoothAdapter {
* Use {@link #isMultipleAdvertisementSupported()} to check whether LE Advertising is supported
* on this device before calling this method.
*/
+ @RequiresNoPermission
public BluetoothLeAdvertiser getBluetoothLeAdvertiser() {
if (!getLeAccess()) {
return null;
@@ -846,6 +852,7 @@ public final class BluetoothAdapter {
*
* @hide
*/
+ @RequiresNoPermission
public PeriodicAdvertisingManager getPeriodicAdvertisingManager() {
if (!getLeAccess()) {
return null;
@@ -866,6 +873,7 @@ public final class BluetoothAdapter {
/**
* Returns a {@link BluetoothLeScanner} object for Bluetooth LE scan operations.
*/
+ @RequiresNoPermission
public BluetoothLeScanner getBluetoothLeScanner() {
if (!getLeAccess()) {
return null;
@@ -887,6 +895,7 @@ public final class BluetoothAdapter {
* @return true if the local adapter is turned on
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isEnabled() {
return getState() == BluetoothAdapter.STATE_ON;
}
@@ -900,6 +909,7 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
+ @RequiresNoPermission
public boolean isLeEnabled() {
final int state = getLeState();
if (DBG) {
@@ -937,6 +947,7 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disableBLE() {
if (!isBleScanAlwaysAvailable()) {
@@ -983,6 +994,7 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean enableBLE() {
if (!isBleScanAlwaysAvailable()) {
@@ -1015,6 +1027,7 @@ public final class BluetoothAdapter {
};
/** @hide */
+ @RequiresNoPermission
public void disableBluetoothGetStateCache() {
mBluetoothGetStateCache.disableLocal();
}
@@ -1059,6 +1072,7 @@ public final class BluetoothAdapter {
* @return current state of Bluetooth adapter
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
@AdapterState
public int getState() {
int state = getStateInternal();
@@ -1095,6 +1109,7 @@ public final class BluetoothAdapter {
* @hide
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
@AdapterState
@UnsupportedAppUsage(publicAlternatives = "Use {@link #getState()} instead to determine "
+ "whether you can use BLE & BT classic.")
@@ -1251,6 +1266,18 @@ public final class BluetoothAdapter {
return null;
}
+ /** {@hide} */
+ @RequiresBluetoothAdvertisePermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
+ public int getNameLengthForAdvertise() {
+ try {
+ return mService.getNameLengthForAdvertise();
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ }
+ return -1;
+ }
+
/**
* Factory reset bluetooth settings.
*
@@ -1637,6 +1664,7 @@ public final class BluetoothAdapter {
/** @hide */
@UnsupportedAppUsage
+ @RequiresBluetoothScanPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)
public int getDiscoverableTimeout() {
if (getState() != STATE_ON) {
@@ -1657,6 +1685,7 @@ public final class BluetoothAdapter {
/** @hide */
@UnsupportedAppUsage
+ @RequiresBluetoothScanPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)
public void setDiscoverableTimeout(int timeout) {
if (getState() != STATE_ON) {
@@ -1702,6 +1731,7 @@ public final class BluetoothAdapter {
* Set the context for this BluetoothAdapter (only called from BluetoothManager)
* @hide
*/
+ @RequiresNoPermission
public void setContext(Context context) {
mContext = context;
}
@@ -1860,6 +1890,7 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -1904,6 +1935,7 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -1952,6 +1984,7 @@ public final class BluetoothAdapter {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -1984,6 +2017,7 @@ public final class BluetoothAdapter {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -2009,6 +2043,7 @@ public final class BluetoothAdapter {
* @return true if Multiple Advertisement feature is supported
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isMultipleAdvertisementSupported() {
if (getState() != STATE_ON) {
return false;
@@ -2037,6 +2072,7 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
+ @RequiresNoPermission
public boolean isBleScanAlwaysAvailable() {
try {
return mManagerService.isBleScanAlwaysAvailable();
@@ -2070,6 +2106,7 @@ public final class BluetoothAdapter {
};
/** @hide */
+ @RequiresNoPermission
public void disableIsOffloadedFilteringSupportedCache() {
mBluetoothFilteringCache.disableLocal();
}
@@ -2085,6 +2122,7 @@ public final class BluetoothAdapter {
* @return true if chipset supports on-chip filtering
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isOffloadedFilteringSupported() {
if (!getLeAccess()) {
return false;
@@ -2098,6 +2136,7 @@ public final class BluetoothAdapter {
* @return true if chipset supports on-chip scan batching
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isOffloadedScanBatchingSupported() {
if (!getLeAccess()) {
return false;
@@ -2121,6 +2160,7 @@ public final class BluetoothAdapter {
* @return true if chipset supports LE 2M PHY feature
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isLe2MPhySupported() {
if (!getLeAccess()) {
return false;
@@ -2144,6 +2184,7 @@ public final class BluetoothAdapter {
* @return true if chipset supports LE Coded PHY feature
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isLeCodedPhySupported() {
if (!getLeAccess()) {
return false;
@@ -2167,6 +2208,7 @@ public final class BluetoothAdapter {
* @return true if chipset supports LE Extended Advertising feature
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isLeExtendedAdvertisingSupported() {
if (!getLeAccess()) {
return false;
@@ -2190,6 +2232,7 @@ public final class BluetoothAdapter {
* @return true if chipset supports LE Periodic Advertising feature
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public boolean isLePeriodicAdvertisingSupported() {
if (!getLeAccess()) {
return false;
@@ -2214,6 +2257,7 @@ public final class BluetoothAdapter {
* @return the maximum LE advertising data length.
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public int getLeMaximumAdvertisingDataLength() {
if (!getLeAccess()) {
return 0;
@@ -2236,6 +2280,7 @@ public final class BluetoothAdapter {
*
* @return true if phone supports Hearing Aid Profile
*/
+ @RequiresNoPermission
private boolean isHearingAidProfileSupported() {
try {
return mManagerService.isHearingAidProfileSupported();
@@ -2274,6 +2319,7 @@ public final class BluetoothAdapter {
* @return true if there are hw entries available for matching beacons
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean isHardwareTrackingFiltersAvailable() {
if (!getLeAccess()) {
@@ -2420,6 +2466,7 @@ public final class BluetoothAdapter {
* BluetoothProfile}.
* @hide
*/
+ @RequiresNoPermission
public @NonNull List<Integer> getSupportedProfiles() {
final ArrayList<Integer> supportedProfiles = new ArrayList<Integer>();
@@ -2467,6 +2514,7 @@ public final class BluetoothAdapter {
};
/** @hide */
+ @RequiresNoPermission
public void disableGetAdapterConnectionStateCache() {
mBluetoothGetAdapterConnectionStateCache.disableLocal();
}
@@ -2491,6 +2539,7 @@ public final class BluetoothAdapter {
*/
@UnsupportedAppUsage
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public int getConnectionState() {
if (getState() != STATE_ON) {
return BluetoothAdapter.STATE_DISCONNECTED;
@@ -2541,6 +2590,7 @@ public final class BluetoothAdapter {
};
/** @hide */
+ @RequiresNoPermission
public void disableGetProfileConnectionStateCache() {
mGetProfileConnectionStateCache.disableLocal();
}
@@ -2741,6 +2791,7 @@ public final class BluetoothAdapter {
return createNewRfcommSocketAndRecord(name, uuid, false, true);
}
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
private BluetoothServerSocket createNewRfcommSocketAndRecord(String name, UUID uuid,
boolean auth, boolean encrypt) throws IOException {
@@ -2767,6 +2818,7 @@ public final class BluetoothAdapter {
* permissions.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothServerSocket listenUsingInsecureRfcommOn(int port) throws IOException {
BluetoothServerSocket socket =
@@ -2799,6 +2851,7 @@ public final class BluetoothAdapter {
* permissions.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothServerSocket listenUsingL2capOn(int port, boolean mitm, boolean min16DigitPin)
throws IOException {
@@ -2832,6 +2885,7 @@ public final class BluetoothAdapter {
* permissions.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothServerSocket listenUsingL2capOn(int port) throws IOException {
return listenUsingL2capOn(port, false, false);
@@ -2849,6 +2903,7 @@ public final class BluetoothAdapter {
* permissions.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothServerSocket listenUsingInsecureL2capOn(int port) throws IOException {
Log.d(TAG, "listenUsingInsecureL2capOn: port=" + port);
@@ -2904,6 +2959,10 @@ public final class BluetoothAdapter {
* BluetoothProfile#HEARING_AID} or {@link BluetoothProfile#GATT_SERVER}.
* @return true on success, false on error
*/
+ @SuppressLint({
+ "AndroidFrameworkRequiresPermission",
+ "AndroidFrameworkBluetoothPermission"
+ })
public boolean getProfileProxy(Context context, BluetoothProfile.ServiceListener listener,
int profile) {
if (context == null || listener == null) {
@@ -2973,7 +3032,10 @@ public final class BluetoothAdapter {
* @param profile
* @param proxy Profile proxy object
*/
- @SuppressLint("AndroidFrameworkRequiresPermission")
+ @SuppressLint({
+ "AndroidFrameworkRequiresPermission",
+ "AndroidFrameworkBluetoothPermission"
+ })
public void closeProfileProxy(int profile, BluetoothProfile proxy) {
if (proxy == null) {
return;
@@ -3046,6 +3108,7 @@ public final class BluetoothAdapter {
}
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothManagerCallback mManagerCallback =
new IBluetoothManagerCallback.Stub() {
@SuppressLint("AndroidFrameworkRequiresPermission")
@@ -3368,7 +3431,6 @@ public final class BluetoothAdapter {
/**
* @hide
*/
- @SuppressLint("AndroidFrameworkRequiresPermission")
public class StateChangeCallbackWrapper extends IBluetoothStateChangeCallback.Stub {
private BluetoothStateChangeCallback mCallback;
@@ -3619,6 +3681,7 @@ public final class BluetoothAdapter {
return false;
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
ScanCallback scanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
@@ -3949,6 +4012,7 @@ public final class BluetoothAdapter {
@Nullable byte[] value);
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothConnectionCallback mConnectionCallback =
new IBluetoothConnectionCallback.Stub() {
@Override
diff --git a/core/java/android/bluetooth/BluetoothAvrcpController.java b/core/java/android/bluetooth/BluetoothAvrcpController.java
index 887cf3f08b9d..5148d5b431d7 100644
--- a/core/java/android/bluetooth/BluetoothAvrcpController.java
+++ b/core/java/android/bluetooth/BluetoothAvrcpController.java
@@ -117,6 +117,8 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
final IBluetoothAvrcpController service =
@@ -137,6 +139,8 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (VDBG) log("getDevicesMatchingStates()");
final IBluetoothAvrcpController service =
@@ -157,6 +161,8 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (VDBG) log("getState(" + device + ")");
final IBluetoothAvrcpController service =
@@ -178,6 +184,8 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
*
* @return the {@link BluetoothAvrcpPlayerSettings} or {@link null} if there is an error.
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothAvrcpPlayerSettings getPlayerSettings(BluetoothDevice device) {
if (DBG) Log.d(TAG, "getPlayerSettings");
BluetoothAvrcpPlayerSettings settings = null;
@@ -198,6 +206,8 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
* Sets the player app setting for current player.
* returns true in case setting is supported by remote, false otherwise
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean setPlayerApplicationSetting(BluetoothAvrcpPlayerSettings plAppSetting) {
if (DBG) Log.d(TAG, "setPlayerApplicationSetting");
final IBluetoothAvrcpController service =
@@ -218,6 +228,8 @@ public final class BluetoothAvrcpController implements BluetoothProfile {
* Send Group Navigation Command to Remote.
* possible keycode values: next_grp, previous_grp defined above
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void sendGroupNavigationCmd(BluetoothDevice device, int keyCode, int keyState) {
Log.d(TAG, "sendGroupNavigationCmd dev = " + device + " key " + keyCode + " State = "
+ keyState);
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java
index 942f8432639c..9d3eed8f6fa1 100644
--- a/core/java/android/bluetooth/BluetoothGatt.java
+++ b/core/java/android/bluetooth/BluetoothGatt.java
@@ -16,15 +16,12 @@
package android.bluetooth;
-import android.compat.annotation.UnsupportedAppUsage;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
-import android.annotation.RequiresPermission;
-import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
-import android.bluetooth.annotations.RequiresBluetoothLocationPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothPermission;
-import android.bluetooth.annotations.RequiresBluetoothScanPermission;
+import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Handler;
import android.os.ParcelUuid;
@@ -158,6 +155,7 @@ public final class BluetoothGatt implements BluetoothProfile {
/**
* Bluetooth GATT callbacks. Overrides the default BluetoothGattCallback implementation.
*/
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothGattCallback mBluetoothGattCallback =
new IBluetoothGattCallback.Stub() {
/**
@@ -747,6 +745,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* Application should call this method as early as possible after it is done with
* this GATT client.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void close() {
if (DBG) Log.d(TAG, "close()");
@@ -881,6 +880,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* Unregister the current application and callbacks.
*/
@UnsupportedAppUsage
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
private void unregisterApp() {
if (DBG) Log.d(TAG, "unregisterApp() - mClientIf=" + mClientIf);
@@ -973,6 +973,7 @@ public final class BluetoothGatt implements BluetoothProfile {
*
* @return true, if the connection attempt was initiated successfully
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean connect() {
try {
@@ -1003,6 +1004,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* of {@link BluetoothDevice#PHY_OPTION_NO_PREFERRED}, {@link BluetoothDevice#PHY_OPTION_S2} or
* {@link BluetoothDevice#PHY_OPTION_S8}
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setPreferredPhy(int txPhy, int rxPhy, int phyOptions) {
try {
@@ -1017,6 +1019,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* Read the current transmitter PHY and receiver PHY of the connection. The values are returned
* in {@link BluetoothGattCallback#onPhyRead}
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void readPhy() {
try {
@@ -1031,6 +1034,7 @@ public final class BluetoothGatt implements BluetoothProfile {
*
* @return remote bluetooth device
*/
+ @RequiresNoPermission
public BluetoothDevice getDevice() {
return mDevice;
}
@@ -1101,6 +1105,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* not yet been performed.
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public List<BluetoothGattService> getServices() {
List<BluetoothGattService> result =
new ArrayList<BluetoothGattService>();
@@ -1129,6 +1134,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* the remote device.
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public BluetoothGattService getService(UUID uuid) {
for (BluetoothGattService service : mServices) {
if (service.getDevice().equals(mDevice) && service.getUuid().equals(uuid)) {
@@ -1444,6 +1450,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* @deprecated Use {@link #abortReliableWrite()}
*/
@Deprecated
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void abortReliableWrite(BluetoothDevice mDevice) {
abortReliableWrite();
@@ -1496,6 +1503,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean refresh() {
if (DBG) Log.d(TAG, "refresh() - device: " + mDevice.getAddress());
@@ -1579,6 +1587,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* or {@link BluetoothGatt#CONNECTION_PRIORITY_LOW_POWER}.
* @throws IllegalArgumentException If the parameters are outside of their specified range.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean requestConnectionPriority(int connectionPriority) {
if (connectionPriority < CONNECTION_PRIORITY_BALANCED
@@ -1607,6 +1616,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* @return true, if the request is send to the Bluetooth stack.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean requestLeConnectionUpdate(int minConnectionInterval, int maxConnectionInterval,
int slaveLatency, int supervisionTimeout,
@@ -1641,6 +1651,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* @throws UnsupportedOperationException
*/
@Override
+ @RequiresNoPermission
public int getConnectionState(BluetoothDevice device) {
throw new UnsupportedOperationException("Use BluetoothManager#getConnectionState instead.");
}
@@ -1652,6 +1663,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* @throws UnsupportedOperationException
*/
@Override
+ @RequiresNoPermission
public List<BluetoothDevice> getConnectedDevices() {
throw new UnsupportedOperationException(
"Use BluetoothManager#getConnectedDevices instead.");
@@ -1665,6 +1677,7 @@ public final class BluetoothGatt implements BluetoothProfile {
* @throws UnsupportedOperationException
*/
@Override
+ @RequiresNoPermission
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
throw new UnsupportedOperationException(
"Use BluetoothManager#getDevicesMatchingConnectionStates instead.");
diff --git a/core/java/android/bluetooth/BluetoothGattServer.java b/core/java/android/bluetooth/BluetoothGattServer.java
index fdb801850e8e..865f476e7869 100644
--- a/core/java/android/bluetooth/BluetoothGattServer.java
+++ b/core/java/android/bluetooth/BluetoothGattServer.java
@@ -16,7 +16,9 @@
package android.bluetooth;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothPermission;
import android.os.ParcelUuid;
@@ -58,6 +60,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
/**
* Bluetooth GATT interface callbacks
*/
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothGattServerCallback mBluetoothGattServerCallback =
new IBluetoothGattServerCallback.Stub() {
/**
@@ -428,6 +431,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* Application should call this method as early as possible after it is done with
* this GATT server.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void close() {
if (DBG) Log.d(TAG, "close()");
@@ -510,6 +514,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
/**
* Unregister the current application and callbacks.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
private void unregisterCallback() {
if (DBG) Log.d(TAG, "unregisterCallback() - mServerIf=" + mServerIf);
@@ -618,6 +623,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* of {@link BluetoothDevice#PHY_OPTION_NO_PREFERRED}, {@link BluetoothDevice#PHY_OPTION_S2} or
* {@link BluetoothDevice#PHY_OPTION_S8}
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setPreferredPhy(BluetoothDevice device, int txPhy, int rxPhy, int phyOptions) {
try {
@@ -634,6 +640,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
*
* @param device The remote device to send this response to
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void readPhy(BluetoothDevice device) {
try {
@@ -814,6 +821,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* @return List of services. Returns an empty list if no services have been added yet.
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public List<BluetoothGattService> getServices() {
return mServices;
}
@@ -830,6 +838,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* this device.
*/
@RequiresLegacyBluetoothPermission
+ @RequiresNoPermission
public BluetoothGattService getService(UUID uuid) {
for (BluetoothGattService service : mServices) {
if (service.getUuid().equals(uuid)) {
@@ -848,6 +857,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* @throws UnsupportedOperationException
*/
@Override
+ @RequiresNoPermission
public int getConnectionState(BluetoothDevice device) {
throw new UnsupportedOperationException("Use BluetoothManager#getConnectionState instead.");
}
@@ -859,6 +869,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* @throws UnsupportedOperationException
*/
@Override
+ @RequiresNoPermission
public List<BluetoothDevice> getConnectedDevices() {
throw new UnsupportedOperationException(
"Use BluetoothManager#getConnectedDevices instead.");
@@ -872,6 +883,7 @@ public final class BluetoothGattServer implements BluetoothProfile {
* @throws UnsupportedOperationException
*/
@Override
+ @RequiresNoPermission
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
throw new UnsupportedOperationException(
"Use BluetoothManager#getDevicesMatchingConnectionStates instead.");
diff --git a/core/java/android/bluetooth/BluetoothHeadset.java b/core/java/android/bluetooth/BluetoothHeadset.java
index 84e8c5134e7b..a1ece7fc825d 100644
--- a/core/java/android/bluetooth/BluetoothHeadset.java
+++ b/core/java/android/bluetooth/BluetoothHeadset.java
@@ -21,6 +21,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
+import android.annotation.SuppressLint;
import android.annotation.SdkConstant.SdkConstantType;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission;
@@ -339,6 +340,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
private volatile IBluetoothHeadset mService;
private BluetoothAdapter mAdapter;
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothStateChangeCallback mBluetoothStateChangeCallback =
new IBluetoothStateChangeCallback.Stub() {
public void onBluetoothStateChange(boolean up) {
@@ -509,6 +511,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
@@ -529,6 +532,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (VDBG) log("getDevicesMatchingStates()");
@@ -549,6 +553,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (VDBG) log("getConnectionState(" + device + ")");
@@ -620,6 +625,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -858,6 +864,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getAudioState(BluetoothDevice device) {
if (VDBG) log("getAudioState");
@@ -885,6 +892,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @param allowed {@code true} if the profile can reroute audio, {@code false} otherwise.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setAudioRouteAllowed(boolean allowed) {
if (VDBG) log("setAudioRouteAllowed");
@@ -907,6 +915,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean getAudioRouteAllowed() {
if (VDBG) log("getAudioRouteAllowed");
@@ -931,6 +940,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* False to use SCO audio in normal manner
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setForceScoAudio(boolean forced) {
if (VDBG) log("setForceScoAudio " + String.valueOf(forced));
@@ -991,6 +1001,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean connectAudio() {
final IBluetoothHeadset service = mService;
@@ -1019,6 +1030,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnectAudio() {
final IBluetoothHeadset service = mService;
@@ -1123,6 +1135,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.MODIFY_PHONE_STATE,
@@ -1147,6 +1160,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.MODIFY_PHONE_STATE,
@@ -1320,6 +1334,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
com.android.internal.R.bool.config_bluetooth_hfp_inband_ringing_support);
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothProfileServiceConnection mConnection =
new IBluetoothProfileServiceConnection.Stub() {
@Override
@@ -1356,6 +1371,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
Log.d(TAG, msg);
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
diff --git a/core/java/android/bluetooth/BluetoothHeadsetClient.java b/core/java/android/bluetooth/BluetoothHeadsetClient.java
index 092130d0ce91..eef42d1b2f34 100644
--- a/core/java/android/bluetooth/BluetoothHeadsetClient.java
+++ b/core/java/android/bluetooth/BluetoothHeadsetClient.java
@@ -16,7 +16,6 @@
package android.bluetooth;
-import android.Manifest;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
@@ -449,6 +448,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean connect(BluetoothDevice device) {
if (DBG) log("connect(" + device + ")");
@@ -476,6 +476,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(BluetoothDevice device) {
if (DBG) log("disconnect(" + device + ")");
@@ -499,6 +500,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return list of connected devices; empty list if nothing is connected.
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
@@ -524,6 +526,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* list if nothing matches the <code>states</code>
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (VDBG) log("getDevicesMatchingStates()");
@@ -548,6 +551,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return the state of connection of the device
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (VDBG) log("getConnectionState(" + device + ")");
@@ -576,6 +580,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean setPriority(BluetoothDevice device, int priority) {
if (DBG) log("setPriority(" + device + ", " + priority + ")");
@@ -594,6 +599,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return true if connectionPolicy is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
@ConnectionPolicy int connectionPolicy) {
@@ -675,6 +681,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* #EXTRA_AG_FEATURE_VOICE_RECOGNITION}. This method invocation will fail silently when feature
* is not supported.</p>
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean startVoiceRecognition(BluetoothDevice device) {
if (DBG) log("startVoiceRecognition()");
@@ -700,6 +707,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return <code>true</code> if command has been issued successfully; <code>false</code>
* otherwise.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean sendVendorAtCommand(BluetoothDevice device, int vendorId,
String atCommand) {
@@ -728,6 +736,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* #EXTRA_AG_FEATURE_VOICE_RECOGNITION}. This method invocation will fail silently when feature
* is not supported.</p>
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean stopVoiceRecognition(BluetoothDevice device) {
if (DBG) log("stopVoiceRecognition()");
@@ -750,6 +759,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @param device remote device
* @return list of calls; empty list if none call exists
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothHeadsetClientCall> getCurrentCalls(BluetoothDevice device) {
if (DBG) log("getCurrentCalls()");
@@ -772,6 +782,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @param device remote device
* @return bundle of AG indicators; null if device is not in CONNECTED state
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public Bundle getCurrentAgEvents(BluetoothDevice device) {
if (DBG) log("getCurrentCalls()");
@@ -798,6 +809,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* otherwise; upon completion HFP sends {@link #ACTION_CALL_CHANGED} intent.
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean acceptCall(BluetoothDevice device, int flag) {
if (DBG) log("acceptCall()");
@@ -821,6 +833,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return <code>true</code> if command has been issued successfully; <code>false</code>
* otherwise; upon completion HFP sends {@link #ACTION_CALL_CHANGED} intent.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean holdCall(BluetoothDevice device) {
if (DBG) log("holdCall()");
@@ -849,6 +862,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* supported.</p>
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean rejectCall(BluetoothDevice device) {
if (DBG) log("rejectCall()");
@@ -881,6 +895,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* #EXTRA_AG_FEATURE_ECC}. This method invocation will fail silently when feature is not
* supported.</p>
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean terminateCall(BluetoothDevice device, BluetoothHeadsetClientCall call) {
if (DBG) log("terminateCall()");
@@ -911,6 +926,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* #EXTRA_AG_FEATURE_ECC}. This method invocation will fail silently when feature is not
* supported.</p>
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean enterPrivateMode(BluetoothDevice device, int index) {
if (DBG) log("enterPrivateMode()");
@@ -940,6 +956,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* #EXTRA_AG_FEATURE_MERGE_AND_DETACH}. This method invocation will fail silently when feature
* is not supported.</p>
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean explicitCallTransfer(BluetoothDevice device) {
if (DBG) log("explicitCallTransfer()");
@@ -965,6 +982,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* successfully; <code>{@link null}</code> otherwise; upon completion HFP sends {@link
* #ACTION_CALL_CHANGED} intent in case of success; {@link #ACTION_RESULT} is sent otherwise;
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothHeadsetClientCall dial(BluetoothDevice device, String number) {
if (DBG) log("dial()");
@@ -991,6 +1009,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return <code>true</code> if command has been issued successfully; <code>false</code>
* otherwise; upon completion HFP sends {@link #ACTION_RESULT} intent;
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean sendDTMF(BluetoothDevice device, byte code) {
if (DBG) log("sendDTMF()");
@@ -1019,6 +1038,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* #EXTRA_AG_FEATURE_ATTACH_NUMBER_TO_VT}. This method invocation will fail silently when
* feature is not supported.</p>
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean getLastVoiceTagNumber(BluetoothDevice device) {
if (DBG) log("getLastVoiceTagNumber()");
final IBluetoothHeadsetClient service =
@@ -1040,6 +1061,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* Note: This is an internal function and shouldn't be exposed
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getAudioState(BluetoothDevice device) {
if (VDBG) log("getAudioState");
final IBluetoothHeadsetClient service =
@@ -1064,6 +1087,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @param allowed if routing is allowed to the device Note: This is an internal function and
* shouldn't be exposed
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setAudioRouteAllowed(BluetoothDevice device, boolean allowed) {
if (VDBG) log("setAudioRouteAllowed");
final IBluetoothHeadsetClient service =
@@ -1087,6 +1112,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return whether the command succeeded Note: This is an internal function and shouldn't be
* exposed
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean getAudioRouteAllowed(BluetoothDevice device) {
if (VDBG) log("getAudioRouteAllowed");
final IBluetoothHeadsetClient service =
@@ -1113,6 +1140,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return <code>true</code> if command has been issued successfully; <code>false</code>
* otherwise; upon completion HFP sends {@link #ACTION_AUDIO_STATE_CHANGED} intent;
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean connectAudio(BluetoothDevice device) {
final IBluetoothHeadsetClient service =
@@ -1139,6 +1167,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @return <code>true</code> if command has been issued successfully; <code>false</code>
* otherwise; upon completion HFP sends {@link #ACTION_AUDIO_STATE_CHANGED} intent;
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnectAudio(BluetoothDevice device) {
final IBluetoothHeadsetClient service =
@@ -1162,6 +1191,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
* @param device remote device
* @return bundle of AG features; null if no service or AG not connected
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public Bundle getCurrentAgFeatures(BluetoothDevice device) {
final IBluetoothHeadsetClient service =
diff --git a/core/java/android/bluetooth/BluetoothHearingAid.java b/core/java/android/bluetooth/BluetoothHearingAid.java
index 8ceeff53b130..fa52eda8ea61 100644
--- a/core/java/android/bluetooth/BluetoothHearingAid.java
+++ b/core/java/android/bluetooth/BluetoothHearingAid.java
@@ -21,6 +21,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
+import android.annotation.SuppressLint;
import android.annotation.SdkConstant.SdkConstantType;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission;
@@ -170,6 +171,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* @return false on immediate error, true otherwise
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -231,6 +233,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public @NonNull List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
@@ -251,6 +254,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public @NonNull List<BluetoothDevice> getDevicesMatchingConnectionStates(
@NonNull int[] states) {
@@ -272,6 +276,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public @BluetoothProfile.BtProfileState int getConnectionState(
@NonNull BluetoothDevice device) {
@@ -368,6 +373,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -390,6 +396,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -490,6 +497,8 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* @param volume Absolute volume to be set on remote
* @hide
*/
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void setVolume(int volume) {
if (DBG) Log.d(TAG, "setVolume(" + volume + ")");
@@ -549,6 +558,8 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* @hide
*/
@RequiresLegacyBluetoothPermission
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getDeviceSide(BluetoothDevice device) {
if (VDBG) {
log("getDeviceSide(" + device + ")");
@@ -575,6 +586,8 @@ public final class BluetoothHearingAid implements BluetoothProfile {
* @hide
*/
@RequiresLegacyBluetoothPermission
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getDeviceMode(BluetoothDevice device) {
if (VDBG) {
log("getDeviceMode(" + device + ")");
diff --git a/core/java/android/bluetooth/BluetoothHidDevice.java b/core/java/android/bluetooth/BluetoothHidDevice.java
index c214d2b85ac5..6565ec0566bf 100644
--- a/core/java/android/bluetooth/BluetoothHidDevice.java
+++ b/core/java/android/bluetooth/BluetoothHidDevice.java
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
+import android.annotation.SuppressLint;
import android.annotation.SdkConstant.SdkConstantType;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothPermission;
@@ -439,6 +440,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
/** {@inheritDoc} */
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
final IBluetoothHidDevice service = getService();
@@ -457,6 +459,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
/** {@inheritDoc} */
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
final IBluetoothHidDevice service = getService();
@@ -475,6 +478,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
/** {@inheritDoc} */
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
final IBluetoothHidDevice service = getService();
@@ -514,6 +518,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* object is required.
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean registerApp(
BluetoothHidDeviceAppSdpSettings sdp,
@@ -560,6 +565,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
*
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean unregisterApp() {
boolean result = false;
@@ -586,6 +592,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* @param data Report data, not including Report Id.
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean sendReport(BluetoothDevice device, int id, byte[] data) {
boolean result = false;
@@ -613,6 +620,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* @param data Report data, not including Report Id.
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean replyReport(BluetoothDevice device, byte type, byte id, byte[] data) {
boolean result = false;
@@ -638,6 +646,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* @param error Error to be sent for SET_REPORT via HANDSHAKE.
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean reportError(BluetoothDevice device, byte error) {
boolean result = false;
@@ -662,6 +671,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* @return the current user name, or empty string if cannot get the name
* {@hide}
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public String getUserAppName() {
final IBluetoothHidDevice service = getService();
@@ -687,6 +697,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
*
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean connect(BluetoothDevice device) {
boolean result = false;
@@ -712,6 +723,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
*
* @return true if the command is successfully sent; otherwise false.
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(BluetoothDevice device) {
boolean result = false;
@@ -748,6 +760,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
diff --git a/core/java/android/bluetooth/BluetoothHidHost.java b/core/java/android/bluetooth/BluetoothHidHost.java
index 70e3809cb590..bef4472b4a28 100644
--- a/core/java/android/bluetooth/BluetoothHidHost.java
+++ b/core/java/android/bluetooth/BluetoothHidHost.java
@@ -331,6 +331,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
*/
@SystemApi
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public @NonNull List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
@@ -353,6 +354,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (VDBG) log("getDevicesMatchingStates()");
@@ -376,6 +378,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
*/
@SystemApi
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(@NonNull BluetoothDevice device) {
if (VDBG) log("getState(" + device + ")");
diff --git a/core/java/android/bluetooth/BluetoothInputStream.java b/core/java/android/bluetooth/BluetoothInputStream.java
index 8eb79b248d64..95f9229f0446 100644
--- a/core/java/android/bluetooth/BluetoothInputStream.java
+++ b/core/java/android/bluetooth/BluetoothInputStream.java
@@ -16,6 +16,8 @@
package android.bluetooth;
+import android.annotation.SuppressLint;
+
import java.io.IOException;
import java.io.InputStream;
@@ -26,6 +28,7 @@ import java.io.InputStream;
*
* @hide
*/
+@SuppressLint("AndroidFrameworkBluetoothPermission")
/*package*/ final class BluetoothInputStream extends InputStream {
private BluetoothSocket mSocket;
diff --git a/core/java/android/bluetooth/BluetoothLeAudio.java b/core/java/android/bluetooth/BluetoothLeAudio.java
index 4f095f6c7001..462c7b7ede66 100644
--- a/core/java/android/bluetooth/BluetoothLeAudio.java
+++ b/core/java/android/bluetooth/BluetoothLeAudio.java
@@ -155,6 +155,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* @return false on immediate error, true otherwise
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean connect(@Nullable BluetoothDevice device) {
if (DBG) log("connect(" + device + ")");
@@ -194,6 +195,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* @return false on immediate error, true otherwise
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(@Nullable BluetoothDevice device) {
if (DBG) log("disconnect(" + device + ")");
@@ -214,6 +216,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public @NonNull List<BluetoothDevice> getConnectedDevices() {
if (VDBG) log("getConnectedDevices()");
@@ -234,6 +237,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* {@inheritDoc}
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public @NonNull List<BluetoothDevice> getDevicesMatchingConnectionStates(
@NonNull int[] states) {
@@ -294,6 +298,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* @return false on immediate error, true otherwise
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean setActiveDevice(@Nullable BluetoothDevice device) {
if (DBG) log("setActiveDevice(" + device + ")");
@@ -320,6 +325,8 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
*/
@NonNull
@RequiresLegacyBluetoothPermission
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getActiveDevices() {
if (VDBG) log("getActiveDevices()");
try {
@@ -343,6 +350,8 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* @hide
*/
@RequiresLegacyBluetoothPermission
+ @RequiresBluetoothConnectPermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getGroupId(@NonNull BluetoothDevice device) {
if (VDBG) log("getGroupId()");
try {
@@ -370,6 +379,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* @return true if connectionPolicy is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -406,6 +416,7 @@ public final class BluetoothLeAudio implements BluetoothProfile, AutoCloseable {
* @return connection policy of the device
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public @ConnectionPolicy int getConnectionPolicy(@Nullable BluetoothDevice device) {
if (VDBG) log("getConnectionPolicy(" + device + ")");
diff --git a/core/java/android/bluetooth/BluetoothManager.java b/core/java/android/bluetooth/BluetoothManager.java
index a1e1b6305083..2374f1cdc528 100644
--- a/core/java/android/bluetooth/BluetoothManager.java
+++ b/core/java/android/bluetooth/BluetoothManager.java
@@ -18,7 +18,9 @@ package android.bluetooth;
import android.Manifest;
import android.annotation.RequiresFeature;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
import android.annotation.SystemService;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothPermission;
@@ -93,6 +95,7 @@ public final class BluetoothManager {
*
* @return the BLUETOOTH Adapter
*/
+ @RequiresNoPermission
public BluetoothAdapter getAdapter() {
return mAdapter;
}
@@ -218,6 +221,7 @@ public final class BluetoothManager {
* @param callback GATT server callback handler that will receive asynchronous callbacks.
* @return BluetoothGattServer instance
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothGattServer openGattServer(Context context,
BluetoothGattServerCallback callback) {
@@ -238,6 +242,7 @@ public final class BluetoothManager {
* @return BluetoothGattServer instance
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothGattServer openGattServer(Context context,
BluetoothGattServerCallback callback, boolean eatt_support) {
@@ -259,6 +264,7 @@ public final class BluetoothManager {
* @return BluetoothGattServer instance
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothGattServer openGattServer(Context context,
BluetoothGattServerCallback callback, int transport) {
@@ -281,6 +287,7 @@ public final class BluetoothManager {
* @return BluetoothGattServer instance
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothGattServer openGattServer(Context context,
BluetoothGattServerCallback callback, int transport, boolean eatt_support) {
diff --git a/core/java/android/bluetooth/BluetoothMap.java b/core/java/android/bluetooth/BluetoothMap.java
index 3e7b75aa1f62..998fde02832d 100644
--- a/core/java/android/bluetooth/BluetoothMap.java
+++ b/core/java/android/bluetooth/BluetoothMap.java
@@ -18,9 +18,11 @@ package android.bluetooth;
import android.Manifest;
import android.annotation.NonNull;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
+import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.os.Binder;
@@ -126,6 +128,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getState() {
if (VDBG) log("getState()");
@@ -151,6 +154,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothDevice getClient() {
if (VDBG) log("getClient()");
@@ -175,6 +179,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean isConnected(BluetoothDevice device) {
if (VDBG) log("isConnected(" + device + ")");
@@ -198,6 +203,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
*
* @hide
*/
+ @RequiresNoPermission
public boolean connect(BluetoothDevice device) {
if (DBG) log("connect(" + device + ")" + "not supported for MAPS");
return false;
@@ -212,6 +218,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(BluetoothDevice device) {
if (DBG) log("disconnect(" + device + ")");
@@ -259,6 +266,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -285,6 +293,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (DBG) log("getDevicesMatchingStates()");
@@ -308,6 +317,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (DBG) log("getConnectionState(" + device + ")");
@@ -335,6 +345,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -357,6 +368,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -391,6 +403,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
* @return priority of the device
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -412,6 +425,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
diff --git a/core/java/android/bluetooth/BluetoothMapClient.java b/core/java/android/bluetooth/BluetoothMapClient.java
index db74a90f603b..f20b533af045 100644
--- a/core/java/android/bluetooth/BluetoothMapClient.java
+++ b/core/java/android/bluetooth/BluetoothMapClient.java
@@ -20,8 +20,10 @@ import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.app.PendingIntent;
+import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.net.Uri;
@@ -192,6 +194,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* currently connected to the Map service.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean isConnected(BluetoothDevice device) {
if (VDBG) Log.d(TAG, "isConnected(" + device + ")");
@@ -215,6 +218,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -243,6 +247,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -268,6 +273,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (DBG) Log.d(TAG, "getConnectedDevices()");
@@ -291,6 +297,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (DBG) Log.d(TAG, "getDevicesMatchingStates()");
@@ -314,6 +321,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (DBG) Log.d(TAG, "getConnectionState(" + device + ")");
@@ -341,6 +349,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -362,6 +371,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @return true if connectionPolicy is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -396,6 +406,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @return priority of the device
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -416,6 +427,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @return connection policy of the device
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -449,6 +461,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.SEND_SMS,
@@ -484,6 +497,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.SEND_SMS,
@@ -510,6 +524,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @return true if the message is enqueued, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.READ_SMS,
@@ -536,6 +551,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* MapSupportedFeatures field is set. False is returned otherwise.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean isUploadingSupported(BluetoothDevice device) {
final IBluetoothMapClient service = getService();
@@ -564,6 +580,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
* @return <code>true</code> if request has been sent, <code>false</code> on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.READ_SMS,
diff --git a/core/java/android/bluetooth/BluetoothOutputStream.java b/core/java/android/bluetooth/BluetoothOutputStream.java
index a0aa2dee9d34..ac2b3edb0eb8 100644
--- a/core/java/android/bluetooth/BluetoothOutputStream.java
+++ b/core/java/android/bluetooth/BluetoothOutputStream.java
@@ -16,6 +16,8 @@
package android.bluetooth;
+import android.annotation.SuppressLint;
+
import java.io.IOException;
import java.io.OutputStream;
@@ -26,6 +28,7 @@ import java.io.OutputStream;
*
* @hide
*/
+@SuppressLint("AndroidFrameworkBluetoothPermission")
/*package*/ final class BluetoothOutputStream extends OutputStream {
private BluetoothSocket mSocket;
diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java
index b3924b1fa920..c41c9dee2547 100644
--- a/core/java/android/bluetooth/BluetoothPan.java
+++ b/core/java/android/bluetooth/BluetoothPan.java
@@ -240,6 +240,7 @@ public final class BluetoothPan implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -282,6 +283,7 @@ public final class BluetoothPan implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(BluetoothDevice device) {
if (DBG) log("disconnect(" + device + ")");
@@ -311,6 +313,7 @@ public final class BluetoothPan implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -342,6 +345,7 @@ public final class BluetoothPan implements BluetoothProfile {
*/
@SystemApi
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -416,6 +420,7 @@ public final class BluetoothPan implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -441,6 +446,7 @@ public final class BluetoothPan implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean isTetheringOn() {
if (VDBG) log("isTetheringOn()");
diff --git a/core/java/android/bluetooth/BluetoothPbap.java b/core/java/android/bluetooth/BluetoothPbap.java
index 6c2e5bf2d391..e41eb4f25810 100644
--- a/core/java/android/bluetooth/BluetoothPbap.java
+++ b/core/java/android/bluetooth/BluetoothPbap.java
@@ -110,6 +110,7 @@ public class BluetoothPbap implements BluetoothProfile {
*/
public static final int RESULT_CANCELED = 2;
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final IBluetoothStateChangeCallback mBluetoothStateChangeCallback =
new IBluetoothStateChangeCallback.Stub() {
public void onBluetoothStateChange(boolean up) {
@@ -217,6 +218,7 @@ public class BluetoothPbap implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
log("getConnectedDevices()");
@@ -264,6 +266,7 @@ public class BluetoothPbap implements BluetoothProfile {
* @hide
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
log("getDevicesMatchingConnectionStates: states=" + Arrays.toString(states));
@@ -297,6 +300,7 @@ public class BluetoothPbap implements BluetoothProfile {
* @hide
*/
@SystemApi
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -330,6 +334,7 @@ public class BluetoothPbap implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(BluetoothDevice device) {
log("disconnect()");
@@ -347,6 +352,7 @@ public class BluetoothPbap implements BluetoothProfile {
return false;
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private final ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
log("Proxy object connected");
diff --git a/core/java/android/bluetooth/BluetoothPbapClient.java b/core/java/android/bluetooth/BluetoothPbapClient.java
index 2c8fbc2509ff..85b865076508 100644
--- a/core/java/android/bluetooth/BluetoothPbapClient.java
+++ b/core/java/android/bluetooth/BluetoothPbapClient.java
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
+import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.content.Context;
import android.os.Binder;
import android.os.IBinder;
@@ -161,6 +162,7 @@ public final class BluetoothPbapClient implements BluetoothProfile {
* @return list of connected devices
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (DBG) {
@@ -187,6 +189,7 @@ public final class BluetoothPbapClient implements BluetoothProfile {
* @return list of matching devices
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (DBG) {
@@ -213,6 +216,7 @@ public final class BluetoothPbapClient implements BluetoothProfile {
* @return device connection state
*/
@Override
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (DBG) {
diff --git a/core/java/android/bluetooth/BluetoothProfile.java b/core/java/android/bluetooth/BluetoothProfile.java
index 70053ee71491..161c843f0398 100644
--- a/core/java/android/bluetooth/BluetoothProfile.java
+++ b/core/java/android/bluetooth/BluetoothProfile.java
@@ -17,6 +17,7 @@
package android.bluetooth;
import android.annotation.IntDef;
+import android.annotation.RequiresNoPermission;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -333,6 +334,7 @@ public interface BluetoothProfile {
* @param profile - One of {@link #HEADSET} or {@link #A2DP}
* @param proxy - One of {@link BluetoothHeadset} or {@link BluetoothA2dp}
*/
+ @RequiresNoPermission
public void onServiceConnected(int profile, BluetoothProfile proxy);
/**
@@ -341,6 +343,7 @@ public interface BluetoothProfile {
*
* @param profile - One of {@link #HEADSET} or {@link #A2DP}
*/
+ @RequiresNoPermission
public void onServiceDisconnected(int profile);
}
diff --git a/core/java/android/bluetooth/BluetoothProfileConnector.java b/core/java/android/bluetooth/BluetoothProfileConnector.java
index 12abcc4d11da..b20ab754932c 100644
--- a/core/java/android/bluetooth/BluetoothProfileConnector.java
+++ b/core/java/android/bluetooth/BluetoothProfileConnector.java
@@ -16,7 +16,6 @@
package android.bluetooth;
-import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Context;
@@ -33,6 +32,7 @@ import android.util.Log;
* @param <T> The Bluetooth profile interface for this connection.
* @hide
*/
+@SuppressLint("AndroidFrameworkBluetoothPermission")
public abstract class BluetoothProfileConnector<T> {
private final int mProfileId;
private BluetoothProfile.ServiceListener mServiceListener;
diff --git a/core/java/android/bluetooth/BluetoothSap.java b/core/java/android/bluetooth/BluetoothSap.java
index c85494c01b25..87da22cbb7f5 100644
--- a/core/java/android/bluetooth/BluetoothSap.java
+++ b/core/java/android/bluetooth/BluetoothSap.java
@@ -17,6 +17,7 @@
package android.bluetooth;
import android.Manifest;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
@@ -143,6 +144,7 @@ public final class BluetoothSap implements BluetoothProfile {
* connected to the Sap service.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public int getState() {
if (VDBG) log("getState()");
@@ -167,6 +169,7 @@ public final class BluetoothSap implements BluetoothProfile {
* this proxy object is not connected to the Sap service.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public BluetoothDevice getClient() {
if (VDBG) log("getClient()");
@@ -191,6 +194,7 @@ public final class BluetoothSap implements BluetoothProfile {
*
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean isConnected(BluetoothDevice device) {
if (VDBG) log("isConnected(" + device + ")");
@@ -214,6 +218,7 @@ public final class BluetoothSap implements BluetoothProfile {
*
* @hide
*/
+ @RequiresNoPermission
public boolean connect(BluetoothDevice device) {
if (DBG) log("connect(" + device + ")" + "not supported for SAPS");
return false;
@@ -227,6 +232,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public boolean disconnect(BluetoothDevice device) {
if (DBG) log("disconnect(" + device + ")");
@@ -249,6 +255,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return list of connected devices
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getConnectedDevices() {
if (DBG) log("getConnectedDevices()");
@@ -271,6 +278,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return list of matching devices
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
if (DBG) log("getDevicesMatchingStates()");
@@ -293,6 +301,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return device connection state
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
public int getConnectionState(BluetoothDevice device) {
if (DBG) log("getConnectionState(" + device + ")");
@@ -320,6 +329,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return true if priority is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -341,6 +351,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return true if connectionPolicy is set, false on error
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -375,6 +386,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return priority of the device
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
@@ -395,6 +407,7 @@ public final class BluetoothSap implements BluetoothProfile {
* @return connection policy of the device
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.BLUETOOTH_PRIVILEGED,
diff --git a/core/java/android/bluetooth/BluetoothServerSocket.java b/core/java/android/bluetooth/BluetoothServerSocket.java
index 50822354d69f..bb4e35483fea 100644
--- a/core/java/android/bluetooth/BluetoothServerSocket.java
+++ b/core/java/android/bluetooth/BluetoothServerSocket.java
@@ -16,6 +16,7 @@
package android.bluetooth;
+import android.annotation.SuppressLint;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Handler;
import android.os.ParcelUuid;
@@ -70,6 +71,7 @@ import java.io.IOException;
*
* {@see BluetoothSocket}
*/
+@SuppressLint("AndroidFrameworkBluetoothPermission")
public final class BluetoothServerSocket implements Closeable {
private static final String TAG = "BluetoothServerSocket";
diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java
index ef88147a40fb..bb409d5360f9 100644
--- a/core/java/android/bluetooth/BluetoothSocket.java
+++ b/core/java/android/bluetooth/BluetoothSocket.java
@@ -16,8 +16,10 @@
package android.bluetooth;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
+import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.compat.annotation.UnsupportedAppUsage;
import android.net.LocalSocket;
import android.os.Build;
@@ -198,7 +200,6 @@ public final class BluetoothSocket implements Closeable {
* @throws IOException On error, for example Bluetooth not available, or insufficient
* privileges
*/
- @SuppressLint("AndroidFrameworkRequiresPermission")
/*package*/ BluetoothSocket(int type, int fd, boolean auth, boolean encrypt,
BluetoothDevice device, int port, ParcelUuid uuid, boolean mitm, boolean min16DigitPin)
throws IOException {
@@ -326,6 +327,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return remote device
*/
+ @RequiresNoPermission
public BluetoothDevice getRemoteDevice() {
return mDevice;
}
@@ -338,6 +340,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return InputStream
*/
+ @RequiresNoPermission
public InputStream getInputStream() throws IOException {
return mInputStream;
}
@@ -350,6 +353,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return OutputStream
*/
+ @RequiresNoPermission
public OutputStream getOutputStream() throws IOException {
return mOutputStream;
}
@@ -360,6 +364,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return true if connected false if not connected
*/
+ @RequiresNoPermission
public boolean isConnected() {
return mSocketState == SocketState.CONNECTED;
}
@@ -386,6 +391,7 @@ public final class BluetoothSocket implements Closeable {
*
* @throws IOException on error, for example connection failure
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void connect() throws IOException {
if (mDevice == null) throw new IOException("Connect is called on null device");
@@ -637,6 +643,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return the maximum supported Transmit packet size for the underlying transport.
*/
+ @RequiresNoPermission
public int getMaxTransmitPacketSize() {
return mMaxTxPacketSize;
}
@@ -649,6 +656,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return the maximum supported Receive packet size for the underlying transport.
*/
+ @RequiresNoPermission
public int getMaxReceivePacketSize() {
return mMaxRxPacketSize;
}
@@ -658,6 +666,7 @@ public final class BluetoothSocket implements Closeable {
*
* @return one of {@link #TYPE_RFCOMM}, {@link #TYPE_SCO} or {@link #TYPE_L2CAP}
*/
+ @RequiresNoPermission
public int getConnectionType() {
if (mType == TYPE_L2CAP_LE) {
// Treat the LE CoC to be the same type as L2CAP.
@@ -674,6 +683,7 @@ public final class BluetoothSocket implements Closeable {
* generate SPP SDP record.
* @hide
*/
+ @RequiresNoPermission
public void setExcludeSdp(boolean excludeSdp) {
mExcludeSdp = excludeSdp;
}
@@ -684,6 +694,7 @@ public final class BluetoothSocket implements Closeable {
* connection. This function is currently used for testing only.
* @hide
*/
+ @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
public void requestMaximumTxDataLength() throws IOException {
if (mDevice == null) {
diff --git a/core/java/android/bluetooth/BluetoothUuid.java b/core/java/android/bluetooth/BluetoothUuid.java
index d82cf19e8822..bc3754a2fc56 100644
--- a/core/java/android/bluetooth/BluetoothUuid.java
+++ b/core/java/android/bluetooth/BluetoothUuid.java
@@ -18,6 +18,7 @@ package android.bluetooth;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.ParcelUuid;
@@ -34,6 +35,7 @@ import java.util.UUID;
* @hide
*/
@SystemApi
+@SuppressLint("AndroidFrameworkBluetoothPermission")
public final class BluetoothUuid {
/* See Bluetooth Assigned Numbers document - SDP section, to get the values of UUIDs
diff --git a/core/java/android/bluetooth/le/AdvertisingSet.java b/core/java/android/bluetooth/le/AdvertisingSet.java
index 54a18e6f1d62..d7e48ca543ca 100644
--- a/core/java/android/bluetooth/le/AdvertisingSet.java
+++ b/core/java/android/bluetooth/le/AdvertisingSet.java
@@ -16,7 +16,9 @@
package android.bluetooth.le;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.IBluetoothGatt;
import android.bluetooth.IBluetoothManager;
@@ -216,6 +218,7 @@ public final class AdvertisingSet {
*
* @hide
*/
+ @RequiresNoPermission
public int getAdvertiserId() {
return mAdvertiserId;
}
diff --git a/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java b/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java
index de11869e220e..ff279d859873 100644
--- a/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java
+++ b/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java
@@ -16,6 +16,7 @@
package android.bluetooth.le;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
@@ -89,10 +90,7 @@ public final class BluetoothLeAdvertiser {
*/
@RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothAdvertisePermission
- @RequiresPermission(allOf = {
- android.Manifest.permission.BLUETOOTH_ADVERTISE,
- android.Manifest.permission.BLUETOOTH_CONNECT,
- })
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void startAdvertising(AdvertiseSettings settings,
AdvertiseData advertiseData, final AdvertiseCallback callback) {
startAdvertising(settings, advertiseData, null, callback);
@@ -111,10 +109,7 @@ public final class BluetoothLeAdvertiser {
*/
@RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothAdvertisePermission
- @RequiresPermission(allOf = {
- android.Manifest.permission.BLUETOOTH_ADVERTISE,
- android.Manifest.permission.BLUETOOTH_CONNECT,
- })
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void startAdvertising(AdvertiseSettings settings,
AdvertiseData advertiseData, AdvertiseData scanResponse,
final AdvertiseCallback callback) {
@@ -169,11 +164,13 @@ public final class BluetoothLeAdvertiser {
}
}
- @SuppressLint("AndroidFrameworkRequiresPermission")
+ @SuppressLint({
+ "AndroidFrameworkBluetoothPermission",
+ "AndroidFrameworkRequiresPermission",
+ })
AdvertisingSetCallback wrapOldCallback(AdvertiseCallback callback, AdvertiseSettings settings) {
return new AdvertisingSetCallback() {
@Override
- @SuppressLint("AndroidFrameworkRequiresPermission")
public void onAdvertisingSetStarted(AdvertisingSet advertisingSet, int txPower,
int status) {
if (status != AdvertisingSetCallback.ADVERTISE_SUCCESS) {
@@ -186,7 +183,6 @@ public final class BluetoothLeAdvertiser {
/* Legacy advertiser is disabled on timeout */
@Override
- @SuppressLint("AndroidFrameworkRequiresPermission")
public void onAdvertisingEnabled(AdvertisingSet advertisingSet, boolean enabled,
int status) {
if (enabled) {
@@ -247,10 +243,7 @@ public final class BluetoothLeAdvertiser {
*/
@RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothAdvertisePermission
- @RequiresPermission(allOf = {
- android.Manifest.permission.BLUETOOTH_ADVERTISE,
- android.Manifest.permission.BLUETOOTH_CONNECT,
- })
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void startAdvertisingSet(AdvertisingSetParameters parameters,
AdvertiseData advertiseData, AdvertiseData scanResponse,
PeriodicAdvertisingParameters periodicParameters,
@@ -283,10 +276,7 @@ public final class BluetoothLeAdvertiser {
*/
@RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothAdvertisePermission
- @RequiresPermission(allOf = {
- android.Manifest.permission.BLUETOOTH_ADVERTISE,
- android.Manifest.permission.BLUETOOTH_CONNECT,
- })
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void startAdvertisingSet(AdvertisingSetParameters parameters,
AdvertiseData advertiseData, AdvertiseData scanResponse,
PeriodicAdvertisingParameters periodicParameters,
@@ -324,10 +314,7 @@ public final class BluetoothLeAdvertiser {
*/
@RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothAdvertisePermission
- @RequiresPermission(allOf = {
- android.Manifest.permission.BLUETOOTH_ADVERTISE,
- android.Manifest.permission.BLUETOOTH_CONNECT,
- })
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void startAdvertisingSet(AdvertisingSetParameters parameters,
AdvertiseData advertiseData, AdvertiseData scanResponse,
PeriodicAdvertisingParameters periodicParameters,
@@ -370,10 +357,7 @@ public final class BluetoothLeAdvertiser {
*/
@RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothAdvertisePermission
- @RequiresPermission(allOf = {
- android.Manifest.permission.BLUETOOTH_ADVERTISE,
- android.Manifest.permission.BLUETOOTH_CONNECT,
- })
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
public void startAdvertisingSet(AdvertisingSetParameters parameters,
AdvertiseData advertiseData, AdvertiseData scanResponse,
PeriodicAdvertisingParameters periodicParameters,
@@ -509,6 +493,7 @@ public final class BluetoothLeAdvertiser {
*
* @hide
*/
+ @RequiresNoPermission
public void cleanup() {
mLegacyAdvertisers.clear();
mCallbackWrappers.clear();
@@ -516,7 +501,8 @@ public final class BluetoothLeAdvertiser {
}
// Compute the size of advertisement data or scan resp
- @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
+ @RequiresBluetoothAdvertisePermission
+ @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)
private int totalBytes(AdvertiseData data, boolean isFlagsIncluded) {
if (data == null) return 0;
// Flags field is omitted if the advertising is not connectable.
@@ -587,8 +573,11 @@ public final class BluetoothLeAdvertiser {
if (data.getIncludeTxPowerLevel()) {
size += OVERHEAD_BYTES_PER_FIELD + 1; // tx power level value is one byte.
}
- if (data.getIncludeDeviceName() && mBluetoothAdapter.getName() != null) {
- size += OVERHEAD_BYTES_PER_FIELD + mBluetoothAdapter.getName().length();
+ if (data.getIncludeDeviceName()) {
+ final int length = mBluetoothAdapter.getNameLengthForAdvertise();
+ if (length >= 0) {
+ size += OVERHEAD_BYTES_PER_FIELD + length;
+ }
}
return size;
}
@@ -597,6 +586,7 @@ public final class BluetoothLeAdvertiser {
return array == null ? 0 : array.length;
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
IAdvertisingSetCallback wrap(AdvertisingSetCallback callback, Handler handler) {
return new IAdvertisingSetCallback.Stub() {
@Override
@@ -721,6 +711,7 @@ public final class BluetoothLeAdvertiser {
};
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private void postStartSetFailure(Handler handler, final AdvertisingSetCallback callback,
final int error) {
handler.post(new Runnable() {
@@ -731,6 +722,7 @@ public final class BluetoothLeAdvertiser {
});
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private void postStartFailure(final AdvertiseCallback callback, final int error) {
mHandler.post(new Runnable() {
@Override
@@ -740,6 +732,7 @@ public final class BluetoothLeAdvertiser {
});
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private void postStartSuccess(final AdvertiseCallback callback,
final AdvertiseSettings settings) {
mHandler.post(new Runnable() {
diff --git a/core/java/android/bluetooth/le/BluetoothLeScanner.java b/core/java/android/bluetooth/le/BluetoothLeScanner.java
index 4271a905c220..f27f22b9af5c 100644
--- a/core/java/android/bluetooth/le/BluetoothLeScanner.java
+++ b/core/java/android/bluetooth/le/BluetoothLeScanner.java
@@ -16,9 +16,9 @@
package android.bluetooth.le;
-import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
@@ -357,6 +357,7 @@ public final class BluetoothLeScanner {
* @hide
*/
@SystemApi
+ @RequiresBluetoothScanPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)
public void startTruncatedScan(List<TruncatedFilter> truncatedFilters, ScanSettings settings,
final ScanCallback callback) {
@@ -376,6 +377,7 @@ public final class BluetoothLeScanner {
*
* @hide
*/
+ @RequiresNoPermission
public void cleanup() {
mLeScanClients.clear();
}
@@ -383,6 +385,7 @@ public final class BluetoothLeScanner {
/**
* Bluetooth GATT interface callbacks
*/
+ @SuppressLint("AndroidFrameworkRequiresPermission")
private class BleScanCallbackWrapper extends IScannerCallback.Stub {
private static final int REGISTRATION_CALLBACK_TIMEOUT_MILLIS = 2000;
@@ -412,8 +415,6 @@ public final class BluetoothLeScanner {
mResultStorages = resultStorages;
}
- @SuppressLint("AndroidFrameworkRequiresPermission")
- @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)
public void startRegistration() {
synchronized (this) {
// Scan stopped.
@@ -441,7 +442,6 @@ public final class BluetoothLeScanner {
}
}
- @SuppressLint("AndroidFrameworkRequiresPermission")
@RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)
public void stopLeScan() {
synchronized (this) {
@@ -459,7 +459,6 @@ public final class BluetoothLeScanner {
}
}
- @SuppressLint("AndroidFrameworkRequiresPermission")
@RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)
void flushPendingBatchResults() {
synchronized (this) {
@@ -479,7 +478,6 @@ public final class BluetoothLeScanner {
* Application interface registered - app is ready to go
*/
@Override
- @SuppressLint("AndroidFrameworkRequiresPermission")
public void onScannerRegistered(int status, int scannerId) {
Log.d(TAG, "onScannerRegistered() - status=" + status
+ " scannerId=" + scannerId + " mScannerId=" + mScannerId);
@@ -592,6 +590,7 @@ public final class BluetoothLeScanner {
}
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private void postCallbackError(final ScanCallback callback, final int errorCode) {
mHandler.post(new Runnable() {
@Override
diff --git a/core/java/android/bluetooth/le/PeriodicAdvertisingManager.java b/core/java/android/bluetooth/le/PeriodicAdvertisingManager.java
index 9ea6c4866f6d..26978e398072 100644
--- a/core/java/android/bluetooth/le/PeriodicAdvertisingManager.java
+++ b/core/java/android/bluetooth/le/PeriodicAdvertisingManager.java
@@ -17,6 +17,7 @@
package android.bluetooth.le;
import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.IBluetoothGatt;
@@ -208,6 +209,7 @@ public final class PeriodicAdvertisingManager {
}
}
+ @SuppressLint("AndroidFrameworkBluetoothPermission")
private IPeriodicAdvertisingCallback wrap(PeriodicAdvertisingCallback callback,
Handler handler) {
return new IPeriodicAdvertisingCallback.Stub() {
diff --git a/core/java/android/bluetooth/le/ScanFilter.java b/core/java/android/bluetooth/le/ScanFilter.java
index 27c579b3cdfe..c5c4277d9eb8 100644
--- a/core/java/android/bluetooth/le/ScanFilter.java
+++ b/core/java/android/bluetooth/le/ScanFilter.java
@@ -16,7 +16,6 @@
package android.bluetooth.le;
-import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
diff --git a/core/java/android/bluetooth/le/ScanRecord.java b/core/java/android/bluetooth/le/ScanRecord.java
index 794b512772fe..9b8c2eaf4d19 100644
--- a/core/java/android/bluetooth/le/ScanRecord.java
+++ b/core/java/android/bluetooth/le/ScanRecord.java
@@ -18,6 +18,7 @@ package android.bluetooth.le;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.bluetooth.BluetoothUuid;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.ParcelUuid;
@@ -34,6 +35,7 @@ import java.util.function.Predicate;
/**
* Represents a scan record from Bluetooth LE scan.
*/
+@SuppressLint("AndroidFrameworkBluetoothPermission")
public final class ScanRecord {
private static final String TAG = "ScanRecord";
diff --git a/core/java/android/bluetooth/le/ScanSettings.java b/core/java/android/bluetooth/le/ScanSettings.java
index 368d1eecade4..f3e971a0bb30 100644
--- a/core/java/android/bluetooth/le/ScanSettings.java
+++ b/core/java/android/bluetooth/le/ScanSettings.java
@@ -20,6 +20,7 @@ import android.annotation.SystemApi;
import android.bluetooth.BluetoothDevice;
import android.os.Parcel;
import android.os.Parcelable;
+import android.provider.DeviceConfig;
/**
* Bluetooth LE scan settings are passed to {@link BluetoothLeScanner#startScan} to define the
@@ -141,6 +142,12 @@ public final class ScanSettings implements Parcelable {
*/
public static final int PHY_LE_ALL_SUPPORTED = 255;
+ /**
+ * The default floor value for report delays greater than 0 in
+ * {@link Builder#setReportDelay(long)}.
+ */
+ private static final long DEFAULT_REPORT_DELAY_FLOOR = 5000;
+
// Bluetooth LE scan mode.
private int mScanMode;
@@ -345,18 +352,28 @@ public final class ScanSettings implements Parcelable {
}
/**
- * Set report delay timestamp for Bluetooth LE scan.
+ * Set report delay timestamp for Bluetooth LE scan. If set to 0, you will be notified of
+ * scan results immediately. If &gt; 0, scan results are queued up and delivered after the
+ * requested delay or 5000 milliseconds (whichever is higher). Note scan results may be
+ * delivered sooner if the internal buffers fill up.
*
- * @param reportDelayMillis Delay of report in milliseconds. Set to 0 to be notified of
- * results immediately. Values &gt; 0 causes the scan results to be queued up and delivered
- * after the requested delay or when the internal buffers fill up.
- * @throws IllegalArgumentException If {@code reportDelayMillis} &lt; 0.
+ * @param reportDelayMillis how frequently scan results should be delivered in
+ * milliseconds
+ * @throws IllegalArgumentException if {@code reportDelayMillis} &lt; 0
*/
public Builder setReportDelay(long reportDelayMillis) {
if (reportDelayMillis < 0) {
throw new IllegalArgumentException("reportDelay must be > 0");
}
- mReportDelayMillis = reportDelayMillis;
+
+ long floor = DeviceConfig.getLong(DeviceConfig.NAMESPACE_BLUETOOTH, "report_delay",
+ DEFAULT_REPORT_DELAY_FLOOR);
+
+ if (reportDelayMillis > 0 && reportDelayMillis < floor) {
+ mReportDelayMillis = floor;
+ } else {
+ mReportDelayMillis = reportDelayMillis;
+ }
return this;
}
diff --git a/core/java/android/bluetooth/le/TruncatedFilter.java b/core/java/android/bluetooth/le/TruncatedFilter.java
index a753aa6fef17..93f526bb9f09 100644
--- a/core/java/android/bluetooth/le/TruncatedFilter.java
+++ b/core/java/android/bluetooth/le/TruncatedFilter.java
@@ -16,6 +16,7 @@
package android.bluetooth.le;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import java.util.List;
@@ -26,6 +27,7 @@ import java.util.List;
* @hide
*/
@SystemApi
+@SuppressLint("AndroidFrameworkBluetoothPermission")
public final class TruncatedFilter {
private final ScanFilter mFilter;
private final List<ResultStorageDescriptor> mStorageDescriptors;
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index f8d407db07a5..3cc7ff822724 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -5368,8 +5368,8 @@ public class Intent implements Parcelable, Cloneable {
public static final String EXTRA_ATTRIBUTION_TAGS = "android.intent.extra.ATTRIBUTION_TAGS";
/**
- * A long representing the start timestamp (in millis) of the permission usage when used with
- * {@link #ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD}
+ * A long representing the start timestamp (epoch time in millis) of the permission usage
+ * when used with {@link #ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD}
*
* @hide
*/
@@ -5377,8 +5377,8 @@ public class Intent implements Parcelable, Cloneable {
public static final String EXTRA_START_TIME = "android.intent.extra.START_TIME";
/**
- * A long representing the end timestamp (in millis) of the permission usage when used with
- * {@link #ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD}
+ * A long representing the end timestamp (epoch time in millis) of the permission usage when
+ * used with {@link #ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD}
*
* @hide
*/
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index fa9142ca9449..fc0e214a645f 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -961,6 +961,29 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
public @interface SizeChangesSupportMode {}
/**
+ * This change id forces the packages it is applied to never have Display API sandboxing
+ * applied for a letterbox or SCM activity. The Display APIs will continue to provide
+ * DisplayArea bounds.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ @TestApi
+ public static final long NEVER_SANDBOX_DISPLAY_APIS = 184838306L; // buganizer id
+
+ /**
+ * This change id forces the packages it is applied to always have Display API sandboxing
+ * applied, regardless of windowing mode. The Display APIs will always provide the app bounds.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ @TestApi
+ public static final long ALWAYS_SANDBOX_DISPLAY_APIS = 185004937L; // buganizer id
+
+ /**
* This change id is the gatekeeper for all treatments that force a given min aspect ratio.
* Enabling this change will allow the following min aspect ratio treatments to be applied:
* OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
@@ -1325,6 +1348,26 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
return SIZE_CHANGES_UNSUPPORTED_METADATA;
}
+ /**
+ * Returns if the activity should never be sandboxed to the activity window bounds.
+ * @hide
+ */
+ public boolean neverSandboxDisplayApis() {
+ return CompatChanges.isChangeEnabled(NEVER_SANDBOX_DISPLAY_APIS,
+ applicationInfo.packageName,
+ UserHandle.getUserHandleForUid(applicationInfo.uid));
+ }
+
+ /**
+ * Returns if the activity should always be sandboxed to the activity window bounds.
+ * @hide
+ */
+ public boolean alwaysSandboxDisplayApis() {
+ return CompatChanges.isChangeEnabled(ALWAYS_SANDBOX_DISPLAY_APIS,
+ applicationInfo.packageName,
+ UserHandle.getUserHandleForUid(applicationInfo.uid));
+ }
+
/** @hide */
public void setMaxAspectRatio(float maxAspectRatio) {
this.mMaxAspectRatio = maxAspectRatio;
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 6ad204ec31ea..9934b2a0904c 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -2130,6 +2130,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
*
* @hide
*/
+ @SuppressWarnings("AutoBoxing")
@SystemApi
@Nullable
public Boolean hasRequestRawExternalStorageAccess() {
diff --git a/core/java/android/content/pm/DataLoaderParams.java b/core/java/android/content/pm/DataLoaderParams.java
index f808cfda4835..a6d3b45c289a 100644
--- a/core/java/android/content/pm/DataLoaderParams.java
+++ b/core/java/android/content/pm/DataLoaderParams.java
@@ -24,7 +24,9 @@ import android.content.ComponentName;
* This class represents the parameters used to configure a DataLoader.
*
* {@see android.service.dataloader.DataLoaderService.DataLoader}
+ * @hide
*/
+@SystemApi
public class DataLoaderParams {
@NonNull
private final DataLoaderParamsParcel mData;
diff --git a/core/java/android/content/pm/InstallationFile.java b/core/java/android/content/pm/InstallationFile.java
index e76402077714..7e07c4534328 100644
--- a/core/java/android/content/pm/InstallationFile.java
+++ b/core/java/android/content/pm/InstallationFile.java
@@ -18,16 +18,18 @@ package android.content.pm;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SystemApi;
/**
* Definition of a file in a streaming installation session.
* You can use this class to retrieve the information of such a file, such as its name, size and
* metadata. These file attributes will be consistent with those used in:
- * {@code android.content.pm.PackageInstaller.Session#addFile}, when the file was first added
- * into the session.
+ * {@code PackageInstaller.Session#addFile}, when the file was first added into the session.
*
* @see android.content.pm.PackageInstaller.Session#addFile
+ * @hide
*/
+@SystemApi
public final class InstallationFile {
private final @NonNull InstallationFileParcel mParcel;
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index 8b380b79e8c7..5157e08deb34 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -229,12 +229,15 @@ public class PackageInstaller {
/**
* Type of DataLoader for this session. Will be one of
- * {@link #DATA_LOADER_TYPE_NONE}, {@link #DATA_LOADER_TYPE_STREAMING}.
+ * {@link #DATA_LOADER_TYPE_NONE}, {@link #DATA_LOADER_TYPE_STREAMING},
+ * {@link #DATA_LOADER_TYPE_INCREMENTAL}.
* <p>
* See the individual types documentation for details.
*
* @see Intent#getIntExtra(String, int)
+ * {@hide}
*/
+ @SystemApi
public static final String EXTRA_DATA_LOADER_TYPE = "android.content.pm.extra.DATA_LOADER_TYPE";
/**
@@ -242,6 +245,7 @@ public class PackageInstaller {
* Caller should make sure DataLoader is able to prepare image and reinitiate the operation.
*
* @see #EXTRA_SESSION_ID
+ * {@hide}
*/
public static final int STATUS_PENDING_STREAMING = -2;
@@ -344,21 +348,25 @@ public class PackageInstaller {
* Default value, non-streaming installation session.
*
* @see #EXTRA_DATA_LOADER_TYPE
+ * {@hide}
*/
+ @SystemApi
public static final int DATA_LOADER_TYPE_NONE = DataLoaderType.NONE;
/**
* Streaming installation using data loader.
*
* @see #EXTRA_DATA_LOADER_TYPE
+ * {@hide}
*/
+ @SystemApi
public static final int DATA_LOADER_TYPE_STREAMING = DataLoaderType.STREAMING;
/**
* Streaming installation using Incremental FileSystem.
*
* @see #EXTRA_DATA_LOADER_TYPE
- * @hide
+ * {@hide}
*/
@SystemApi
public static final int DATA_LOADER_TYPE_INCREMENTAL = DataLoaderType.INCREMENTAL;
@@ -366,13 +374,18 @@ public class PackageInstaller {
/**
* Target location for the file in installation session is /data/app/<packageName>-<id>.
* This is the intended location for APKs.
+ * Requires permission to install packages.
+ * {@hide}
*/
+ @SystemApi
public static final int LOCATION_DATA_APP = InstallationFileLocation.DATA_APP;
/**
* Target location for the file in installation session is
* /data/media/<userid>/Android/obb/<packageName>. This is the intended location for OBBs.
+ * {@hide}
*/
+ @SystemApi
public static final int LOCATION_MEDIA_OBB = InstallationFileLocation.MEDIA_OBB;
/**
@@ -380,7 +393,9 @@ public class PackageInstaller {
* /data/media/<userid>/Android/data/<packageName>.
* This is the intended location for application data.
* Can only be used by an app itself running under specific user.
+ * {@hide}
*/
+ @SystemApi
public static final int LOCATION_MEDIA_DATA = InstallationFileLocation.MEDIA_DATA;
/** @hide */
@@ -1152,7 +1167,10 @@ public class PackageInstaller {
/**
* @return data loader params or null if the session is not using one.
+ * {@hide}
*/
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2)
public @Nullable DataLoaderParams getDataLoaderParams() {
try {
DataLoaderParamsParcel data = mSession.getDataLoaderParams();
@@ -1189,7 +1207,11 @@ public class PackageInstaller {
* @throws IllegalStateException if called for non-streaming session
*
* @see android.content.pm.InstallationFile
+ *
+ * {@hide}
*/
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2)
public void addFile(@FileLocation int location, @NonNull String name, long lengthBytes,
@NonNull byte[] metadata, @Nullable byte[] signature) {
try {
@@ -1209,8 +1231,11 @@ public class PackageInstaller {
* @param name name of a file, e.g. split.
* @throws SecurityException if called after the session has been
* sealed or abandoned
- * @throws IllegalStateException if called for non-streaming session
+ * @throws IllegalStateException if called for non-DataLoader session
+ * {@hide}
*/
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2)
public void removeFile(@FileLocation int location, @NonNull String name) {
try {
mSession.removeFile(location, name);
@@ -2026,7 +2051,13 @@ public class PackageInstaller {
* staging folder.
*
* @see android.service.dataloader.DataLoaderService.DataLoader
+ *
+ * {@hide}
*/
+ @SystemApi
+ @RequiresPermission(allOf = {
+ Manifest.permission.INSTALL_PACKAGES,
+ Manifest.permission.USE_INSTALLER_V2})
public void setDataLoaderParams(@NonNull DataLoaderParams dataLoaderParams) {
this.dataLoaderParams = dataLoaderParams;
}
diff --git a/core/java/android/content/pm/parsing/component/ParsedAttribution.java b/core/java/android/content/pm/parsing/component/ParsedAttribution.java
index 3a4aae19d459..4ec2e73a0b83 100644
--- a/core/java/android/content/pm/parsing/component/ParsedAttribution.java
+++ b/core/java/android/content/pm/parsing/component/ParsedAttribution.java
@@ -40,7 +40,7 @@ public class ParsedAttribution implements Parcelable {
public static final int MAX_ATTRIBUTION_TAG_LEN = 50;
/** Maximum amount of attributions per package */
- private static final int MAX_NUM_ATTRIBUTIONS = 1000;
+ private static final int MAX_NUM_ATTRIBUTIONS = 10000;
/** Tag of the attribution */
public final @NonNull String tag;
@@ -100,7 +100,7 @@ public class ParsedAttribution implements Parcelable {
- // Code below generated by codegen v1.0.22.
+ // Code below generated by codegen v1.0.23.
//
// DO NOT MODIFY!
// CHECKSTYLE:OFF Generated code
@@ -215,8 +215,8 @@ public class ParsedAttribution implements Parcelable {
};
@DataClass.Generated(
- time = 1607463855175L,
- codegenVersion = "1.0.22",
+ time = 1618351459610L,
+ codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/content/pm/parsing/component/ParsedAttribution.java",
inputSignatures = "public static final int MAX_ATTRIBUTION_TAG_LEN\nprivate static final int MAX_NUM_ATTRIBUTIONS\npublic final @android.annotation.NonNull java.lang.String tag\npublic final @android.annotation.StringRes int label\npublic final @android.annotation.NonNull java.util.List<java.lang.String> inheritFrom\npublic static boolean isCombinationValid(java.util.List<android.content.pm.parsing.component.ParsedAttribution>)\nclass ParsedAttribution extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genAidl=false)")
@Deprecated
diff --git a/core/java/android/hardware/biometrics/CryptoObject.java b/core/java/android/hardware/biometrics/CryptoObject.java
index 0af18dfb0e3a..7648cf241298 100644
--- a/core/java/android/hardware/biometrics/CryptoObject.java
+++ b/core/java/android/hardware/biometrics/CryptoObject.java
@@ -18,7 +18,7 @@ package android.hardware.biometrics;
import android.annotation.NonNull;
import android.security.identity.IdentityCredential;
-import android.security.keystore.AndroidKeyStoreProvider;
+import android.security.keystore2.AndroidKeyStoreProvider;
import java.security.Signature;
diff --git a/core/java/android/hardware/hdmi/HdmiAudioSystemClient.java b/core/java/android/hardware/hdmi/HdmiAudioSystemClient.java
index bdd5ab67af48..e7d76f66230d 100644
--- a/core/java/android/hardware/hdmi/HdmiAudioSystemClient.java
+++ b/core/java/android/hardware/hdmi/HdmiAudioSystemClient.java
@@ -63,7 +63,6 @@ public final class HdmiAudioSystemClient extends HdmiClient {
*
* @hide
*/
- // TODO(b/110094868): unhide and add @SystemApi for Q
public interface SetSystemAudioModeCallback {
/**
* Called when the input was changed.
@@ -74,7 +73,6 @@ public final class HdmiAudioSystemClient extends HdmiClient {
}
/** @hide */
- // TODO(b/110094868): unhide and add @SystemApi for Q
@Override
public int getDeviceType() {
return HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM;
@@ -143,7 +141,6 @@ public final class HdmiAudioSystemClient extends HdmiClient {
*
* @hide
*/
- // TODO(b/110094868): unhide and add @SystemApi for Q
public void setSystemAudioMode(boolean state, @NonNull SetSystemAudioModeCallback callback) {
// TODO(amyjojo): implement this when needed.
}
@@ -156,7 +153,6 @@ public final class HdmiAudioSystemClient extends HdmiClient {
*
* @hide
*/
- // TODO(b/110094868): unhide and add @SystemApi for Q
public void setSystemAudioModeOnForAudioOnlySource() {
try {
mService.setSystemAudioModeOnForAudioOnlySource();
diff --git a/core/java/android/hardware/hdmi/HdmiClient.java b/core/java/android/hardware/hdmi/HdmiClient.java
index a921215c6133..0c21746ea412 100644
--- a/core/java/android/hardware/hdmi/HdmiClient.java
+++ b/core/java/android/hardware/hdmi/HdmiClient.java
@@ -65,7 +65,6 @@ public abstract class HdmiClient {
* @param isPressed true if this is key press event
*
* @hide
- * TODO(b/110094868): unhide for Q
*/
public void sendVolumeKeyEvent(int keyCode, boolean isPressed) {
try {
diff --git a/core/java/android/hardware/hdmi/HdmiControlManager.java b/core/java/android/hardware/hdmi/HdmiControlManager.java
index ad71f15f6e26..6079c57e429a 100644
--- a/core/java/android/hardware/hdmi/HdmiControlManager.java
+++ b/core/java/android/hardware/hdmi/HdmiControlManager.java
@@ -1009,7 +1009,6 @@ public final class HdmiControlManager {
*
* @return {@link HdmiAudioSystemClient} instance. {@code null} on failure.
*
- * TODO(b/110094868): unhide for Q
* @hide
*/
@Nullable
diff --git a/core/java/android/hardware/hdmi/HdmiUtils.java b/core/java/android/hardware/hdmi/HdmiUtils.java
index 8c94b7841a80..2f4378ebed9d 100644
--- a/core/java/android/hardware/hdmi/HdmiUtils.java
+++ b/core/java/android/hardware/hdmi/HdmiUtils.java
@@ -24,7 +24,6 @@ import java.lang.annotation.RetentionPolicy;
/**
* Various utilities related to HDMI CEC.
*
- * TODO(b/110094868): unhide for Q
* @hide
*/
public final class HdmiUtils {
@@ -84,7 +83,6 @@ public final class HdmiUtils {
}
/**
- * TODO(b/110094868): unhide for Q
* @hide
*/
@Retention(RetentionPolicy.SOURCE)
@@ -95,49 +93,49 @@ public final class HdmiUtils {
public @interface HdmiAddressRelativePosition {}
/**
* HDMI relative position is not determined.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_UNKNOWN = 0;
/**
* HDMI relative position: directly blow the device.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_DIRECTLY_BELOW = 1;
/**
* HDMI relative position: indirectly below the device.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_BELOW = 2;
/**
* HDMI relative position: the same device.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_SAME = 3;
/**
* HDMI relative position: directly above the device.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_DIRECTLY_ABOVE = 4;
/**
* HDMI relative position: indirectly above the device.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_ABOVE = 5;
/**
* HDMI relative position: directly below a same device.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_SIBLING = 6;
/**
* HDMI relative position: different branch.
- * TODO(b/110094868): unhide for Q
+ *
* @hide
*/
public static final int HDMI_RELATIVE_POSITION_DIFFERENT_BRANCH = 7;
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index f03da7cd390b..4b8e37c56061 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -819,10 +819,9 @@ public class InputMethodService extends AbstractInputMethodService {
if (dispatchOnShowInputRequested(flags, false)) {
showWindow(true);
applyVisibilityInInsetsConsumerIfNecessary(true /* setVisible */);
- } else {
- // If user uses hard keyboard, IME button should always be shown.
- setImeWindowStatus(mapToImeWindowStatus(), mBackDisposition);
}
+ setImeWindowStatus(mapToImeWindowStatus(), mBackDisposition);
+
final boolean isVisible = isInputViewShown();
final boolean visibilityChanged = isVisible != wasVisible;
if (resultReceiver != null) {
diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java
index ec83c4e8fa75..053856bc798f 100644
--- a/core/java/android/net/NetworkPolicyManager.java
+++ b/core/java/android/net/NetworkPolicyManager.java
@@ -479,7 +479,8 @@ public class NetworkPolicyManager {
* @param overrideMask the bitmask that specifies which of the overrides is being
* set or cleared.
* @param overrideValue the override values to set or clear.
- * @param networkTypes the network types this override applies to.
+ * @param networkTypes the network types this override applies to. If no
+ * network types are specified, override values will be ignored.
* {@see TelephonyManager#getAllNetworkTypes()}
* @param timeoutMillis the timeout after which the requested override will
* be automatically cleared, or {@code 0} to leave in the
diff --git a/core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java b/core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java
index 9d3462cb0b2e..8950c4bf2089 100644
--- a/core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java
+++ b/core/java/android/net/vcn/persistablebundleutils/IkeSessionParamsUtils.java
@@ -83,7 +83,7 @@ public final class IkeSessionParamsUtils {
/** Serializes an IkeSessionParams to a PersistableBundle. */
@NonNull
public static PersistableBundle toPersistableBundle(@NonNull IkeSessionParams params) {
- if (params.getConfiguredNetwork() != null || params.getIke3gppExtension() != null) {
+ if (params.getNetwork() != null || params.getIke3gppExtension() != null) {
throw new IllegalStateException(
"Cannot convert a IkeSessionParams with a caller configured network or with"
+ " 3GPP extension enabled");
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index c47fc576ebe9..043a22b6e311 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -21,6 +21,7 @@ import static android.os.BatteryStatsManager.NUM_WIFI_STATES;
import static android.os.BatteryStatsManager.NUM_WIFI_SUPPL_STATES;
import android.annotation.IntDef;
+import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.job.JobParameters;
@@ -2622,6 +2623,15 @@ public abstract class BatteryStats implements Parcelable {
*/
public abstract @Nullable long[] getCustomConsumerMeasuredBatteryConsumptionUC();
+ /**
+ * Returns the names of all {@link android.hardware.power.stats.EnergyConsumer}'s
+ * of (custom) energy consumer type
+ * {@link android.hardware.power.stats.EnergyConsumerType#OTHER}).
+ *
+ * {@hide}
+ */
+ public abstract @NonNull String[] getCustomEnergyConsumerNames();
+
public static final BitDescription[] HISTORY_STATE_DESCRIPTIONS = new BitDescription[] {
new BitDescription(HistoryItem.STATE_CPU_RUNNING_FLAG, "running", "r"),
new BitDescription(HistoryItem.STATE_WAKE_LOCK_FLAG, "wake_lock", "w"),
diff --git a/core/java/android/os/CountDownTimer.java b/core/java/android/os/CountDownTimer.java
index c7bf0fd6ba49..51faa855727e 100644
--- a/core/java/android/os/CountDownTimer.java
+++ b/core/java/android/os/CountDownTimer.java
@@ -22,7 +22,22 @@ package android.os;
*
* Example of showing a 30 second countdown in a text field:
*
- * <pre class="prettyprint">
+ * <div>
+ * <div class="ds-selector-tabs"><section><h3 id="kotlin">Kotlin</h3>
+ * <pre class="prettyprint lang-kotlin">
+ * object : CountDownTimer(30000, 1000) {
+ *
+ * override fun onTick(millisUntilFinished: Long) {
+ * mTextField.setText("seconds remaining: " + millisUntilFinished / 1000)
+ * }
+ *
+ * override fun onFinish() {
+ * mTextField.setText("done!")
+ * }
+ * }.start()
+ * </pre>
+ * </section><section><h3 id="java">Java</h3>
+ * <pre class="prettyprint lang-java">
* new CountDownTimer(30000, 1000) {
*
* public void onTick(long millisUntilFinished) {
@@ -32,8 +47,8 @@ package android.os;
* public void onFinish() {
* mTextField.setText("done!");
* }
- * }.start();
- * </pre>
+ * }.start();
+ * </pre></section></div></div>
*
* The calls to {@link #onTick(long)} are synchronized to this object so that
* one call to {@link #onTick(long)} won't ever occur before the previous
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java
index e3b13f4f9f17..b8bb353a1c2f 100644
--- a/core/java/android/os/Debug.java
+++ b/core/java/android/os/Debug.java
@@ -623,7 +623,7 @@ public final class Debug
* </tr>
* <tr>
* <td>summary.total-pss</td>
- * <td>Total PPS memory usage in kB.</td>
+ * <td>Total PSS memory usage in kB.</td>
* <td>{@code 1442}</td>
* <td>23</td>
* </tr>
diff --git a/core/java/android/os/Parcelable.java b/core/java/android/os/Parcelable.java
index 7a624e1da26c..a537c98fc497 100644
--- a/core/java/android/os/Parcelable.java
+++ b/core/java/android/os/Parcelable.java
@@ -27,10 +27,39 @@ import java.lang.annotation.RetentionPolicy;
* and restored from a {@link Parcel}. Classes implementing the Parcelable
* interface must also have a non-null static field called <code>CREATOR</code>
* of a type that implements the {@link Parcelable.Creator} interface.
- *
+ *
* <p>A typical implementation of Parcelable is:</p>
- *
- * <pre>
+ *
+ * <div>
+ * <div class="ds-selector-tabs"><section><h3 id="kotlin">Kotlin</h3>
+ * <pre class="prettyprint lang-kotlin">
+ * class MyParcelable private constructor(`in`: Parcel) : Parcelable {
+ * private val mData: Int = `in`.readInt()
+ *
+ * override fun describeContents(): Int {
+ * return 0
+ * }
+ *
+ * override fun writeToParcel(out: Parcel, flags: Int) {
+ * out.writeInt(mData)
+ * }
+ *
+ * companion object {
+ * val CREATOR: Parcelable.Creator&lt;MyParcelable?&gt;
+ * = object : Parcelable.Creator&lt;MyParcelable?&gt; {
+ * override fun createFromParcel(`in`: Parcel): MyParcelable? {
+ * return MyParcelable(`in`)
+ * }
+ *
+ * override fun newArray(size: Int): Array&lt;MyParcelable?&gt; {
+ * return arrayOfNulls(size)
+ * }
+ * }
+ * }
+ * }
+ * </pre>
+ * </section><section><h3 id="java">Java</h3>
+ * <pre class="prettyprint lang-java">
* public class MyParcelable implements Parcelable {
* private int mData;
*
@@ -52,11 +81,11 @@ import java.lang.annotation.RetentionPolicy;
* return new MyParcelable[size];
* }
* };
- *
+ *
* private MyParcelable(Parcel in) {
* mData = in.readInt();
* }
- * }</pre>
+ * }</pre></section></div></div>
*/
public interface Parcelable {
/** @hide */
diff --git a/core/java/android/os/incremental/V4Signature.java b/core/java/android/os/incremental/V4Signature.java
index 77d8664a6459..688e3e9d2a67 100644
--- a/core/java/android/os/incremental/V4Signature.java
+++ b/core/java/android/os/incremental/V4Signature.java
@@ -41,6 +41,8 @@ public class V4Signature {
public static final int HASHING_ALGORITHM_SHA256 = 1;
public static final byte LOG2_BLOCK_SIZE_4096_BYTES = 12;
+ public static final int INCFS_MAX_SIGNATURE_SIZE = 8096; // incrementalfs.h
+
/**
* IncFS hashing data.
*/
@@ -191,8 +193,12 @@ public class V4Signature {
private static V4Signature readFrom(InputStream stream) throws IOException {
final int version = readIntLE(stream);
- final byte[] hashingInfo = readBytes(stream);
- final byte[] signingInfo = readBytes(stream);
+ int maxSize = INCFS_MAX_SIGNATURE_SIZE;
+ final byte[] hashingInfo = readBytes(stream, maxSize);
+ if (hashingInfo != null) {
+ maxSize -= hashingInfo.length;
+ }
+ final byte[] signingInfo = readBytes(stream, maxSize);
return new V4Signature(version, hashingInfo, signingInfo);
}
@@ -231,9 +237,13 @@ public class V4Signature {
stream.write(buffer);
}
- private static byte[] readBytes(InputStream stream) throws IOException {
+ private static byte[] readBytes(InputStream stream, int maxSize) throws IOException {
try {
final int size = readIntLE(stream);
+ if (size > maxSize) {
+ throw new IOException(
+ "Signature is too long. Max allowed is " + INCFS_MAX_SIGNATURE_SIZE);
+ }
final byte[] bytes = new byte[size];
readFully(stream, bytes);
return bytes;
diff --git a/core/java/android/os/storage/StorageVolume.java b/core/java/android/os/storage/StorageVolume.java
index 36177c46ebef..2adcbc318614 100644
--- a/core/java/android/os/storage/StorageVolume.java
+++ b/core/java/android/os/storage/StorageVolume.java
@@ -20,6 +20,7 @@ import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -551,4 +552,82 @@ public final class StorageVolume implements Parcelable {
parcel.writeString8(mFsUuid);
parcel.writeString8(mState);
}
+
+ /** @hide */
+ // This class is used by the mainline test suite, so we have to keep these APIs around across
+ // releases. Consider making this class public to help external developers to write tests as
+ // well.
+ @TestApi
+ public static final class Builder {
+ private String mId;
+ private File mPath;
+ private String mDescription;
+ private boolean mPrimary;
+ private boolean mRemovable;
+ private boolean mEmulated;
+ private UserHandle mOwner;
+ private UUID mStorageUuid;
+ private String mUuid;
+ private String mState;
+
+ @SuppressLint("StreamFiles")
+ public Builder(
+ @NonNull String id, @NonNull File path, @NonNull String description,
+ @NonNull UserHandle owner, @NonNull String state) {
+ mId = id;
+ mPath = path;
+ mDescription = description;
+ mOwner = owner;
+ mState = state;
+ }
+
+ @NonNull
+ public Builder setStorageUuid(@Nullable UUID storageUuid) {
+ mStorageUuid = storageUuid;
+ return this;
+ }
+
+ @NonNull
+ public Builder setUuid(@Nullable String uuid) {
+ mUuid = uuid;
+ return this;
+ }
+
+ @NonNull
+ public Builder setPrimary(boolean primary) {
+ mPrimary = primary;
+ return this;
+ }
+
+ @NonNull
+ public Builder setRemovable(boolean removable) {
+ mRemovable = removable;
+ return this;
+ }
+
+ @NonNull
+ public Builder setEmulated(boolean emulated) {
+ mEmulated = emulated;
+ return this;
+ }
+
+ @NonNull
+ public StorageVolume build() {
+ return new StorageVolume(
+ mId,
+ mPath,
+ /* internalPath= */ mPath,
+ mDescription,
+ mPrimary,
+ mRemovable,
+ mEmulated,
+ /* allowMassStorage= */ false,
+ /* maxFileSize= */ 0,
+ mOwner,
+ mStorageUuid,
+ mUuid,
+ mState);
+ }
+ }
+
}
diff --git a/core/java/android/service/dataloader/DataLoaderService.java b/core/java/android/service/dataloader/DataLoaderService.java
index 63ec252c2fa8..7e8acde2e20d 100644
--- a/core/java/android/service/dataloader/DataLoaderService.java
+++ b/core/java/android/service/dataloader/DataLoaderService.java
@@ -19,6 +19,7 @@ package android.service.dataloader;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
+import android.annotation.SystemApi;
import android.app.Service;
import android.content.Intent;
import android.content.pm.DataLoaderParams;
@@ -48,14 +49,19 @@ import java.util.Collection;
*
* @see android.content.pm.DataLoaderParams
* @see android.content.pm.PackageInstaller.SessionParams#setDataLoaderParams
+ *
+ * @hide
*/
+@SystemApi
public abstract class DataLoaderService extends Service {
private static final String TAG = "DataLoaderService";
private final DataLoaderBinderService mBinder = new DataLoaderBinderService();
/**
* DataLoader interface. Each instance corresponds to a single installation session.
+ * @hide
*/
+ @SystemApi
public interface DataLoader {
/**
* A virtual constructor.
@@ -112,7 +118,9 @@ public abstract class DataLoaderService extends Service {
/**
* DataLoader factory method.
* An installation session uses it to create an instance of DataLoader.
+ * @hide
*/
+ @SystemApi
public @Nullable DataLoader onCreateDataLoader(@NonNull DataLoaderParams dataLoaderParams) {
return null;
}
@@ -178,7 +186,10 @@ public abstract class DataLoaderService extends Service {
/**
* Provides access to the installation image.
+ *
+ * @hide
*/
+ @SystemApi
public static final class FileSystemConnector {
/**
* Create a wrapper for a native instance.
diff --git a/core/java/android/service/displayhash/DisplayHashParams.java b/core/java/android/service/displayhash/DisplayHashParams.java
index fcce91ab6f1f..2ec9d5d11101 100644
--- a/core/java/android/service/displayhash/DisplayHashParams.java
+++ b/core/java/android/service/displayhash/DisplayHashParams.java
@@ -28,7 +28,7 @@ import android.view.displayhash.DisplayHashResultCallback;
import com.android.internal.util.DataClass;
/**
- * Information passed from the {@link DisplayHasherService} to system server about how to get the
+ * Information passed from the {@link DisplayHashingService} to system server about how to get the
* display data that will be used to generate the {@link android.view.displayhash.DisplayHash}
*
* @hide
@@ -38,9 +38,9 @@ import com.android.internal.util.DataClass;
public final class DisplayHashParams implements Parcelable {
/**
* The size to scale the buffer to so the hash algorithm can properly generate the hash. The
- * buffer given to the {@link DisplayHasherService#onGenerateDisplayHash(byte[], HardwareBuffer,
- * Rect, String, DisplayHashResultCallback)} will be stretched based on the value set here.
- * If {@code null}, the buffer size will not be changed.
+ * buffer given to the {@link DisplayHashingService#onGenerateDisplayHash(byte[],
+ * HardwareBuffer, Rect, String, DisplayHashResultCallback)} will be stretched based on the
+ * value set here. If {@code null}, the buffer size will not be changed.
*/
@Nullable
private final Size mBufferSize;
@@ -48,7 +48,7 @@ public final class DisplayHashParams implements Parcelable {
/**
* Whether the content will be captured in grayscale or color.
*/
- private final boolean mGrayscaleBuffer;
+ private final boolean mUseGrayscale;
/**
* A builder for {@link DisplayHashParams}
@@ -56,7 +56,7 @@ public final class DisplayHashParams implements Parcelable {
public static final class Builder {
@Nullable
private Size mBufferSize;
- private boolean mGrayscaleBuffer;
+ private boolean mUseGrayscale;
/**
* Creates a new Builder.
@@ -68,8 +68,8 @@ public final class DisplayHashParams implements Parcelable {
* The size to scale the buffer to so the hash algorithm can properly generate the hash.
*/
@NonNull
- public Builder setBufferSize(int w, int h) {
- mBufferSize = new Size(w, h);
+ public Builder setBufferSize(int width, int height) {
+ mBufferSize = new Size(width, height);
return this;
}
@@ -77,15 +77,15 @@ public final class DisplayHashParams implements Parcelable {
* Whether the content will be captured in grayscale or color.
*/
@NonNull
- public Builder setGrayscaleBuffer(boolean value) {
- mGrayscaleBuffer = value;
+ public Builder setUseGrayscale(boolean useGrayscale) {
+ mUseGrayscale = useGrayscale;
return this;
}
/** Builds the instance. This builder should not be touched after calling this! */
@NonNull
public DisplayHashParams build() {
- return new DisplayHashParams(mBufferSize, mGrayscaleBuffer);
+ return new DisplayHashParams(mBufferSize, mUseGrayscale);
}
}
@@ -109,28 +109,28 @@ public final class DisplayHashParams implements Parcelable {
*
* @param bufferSize
* The size to scale the buffer to so the hash algorithm can properly generate the hash. The
- * buffer given to the {@link DisplayHasherService#onGenerateDisplayHash(byte[], HardwareBuffer,
- * Rect, String, DisplayHashResultCallback)} will be stretched based on the value set here.
- * If {@code null}, the buffer size will not be changed.
- * @param grayscaleBuffer
+ * buffer given to the {@link DisplayHashingService#onGenerateDisplayHash(byte[],
+ * HardwareBuffer, Rect, String, DisplayHashResultCallback)} will be stretched based on the
+ * value set here. If {@code null}, the buffer size will not be changed.
+ * @param useGrayscale
* Whether the content will be captured in grayscale or color.
* @hide
*/
@DataClass.Generated.Member
public DisplayHashParams(
@Nullable Size bufferSize,
- boolean grayscaleBuffer) {
+ boolean useGrayscale) {
this.mBufferSize = bufferSize;
- this.mGrayscaleBuffer = grayscaleBuffer;
+ this.mUseGrayscale = useGrayscale;
// onConstructed(); // You can define this method to get a callback
}
/**
* The size to scale the buffer to so the hash algorithm can properly generate the hash. The
- * buffer given to the {@link DisplayHasherService#onGenerateDisplayHash(byte[], HardwareBuffer,
- * Rect, String, DisplayHashResultCallback)} will be stretched based on the value set here.
- * If {@code null}, the buffer size will not be changed.
+ * buffer given to the {@link DisplayHashingService#onGenerateDisplayHash(byte[],
+ * HardwareBuffer, Rect, String, DisplayHashResultCallback)} will be stretched based on the
+ * value set here. If {@code null}, the buffer size will not be changed.
*/
@DataClass.Generated.Member
public @Nullable Size getBufferSize() {
@@ -141,8 +141,8 @@ public final class DisplayHashParams implements Parcelable {
* Whether the content will be captured in grayscale or color.
*/
@DataClass.Generated.Member
- public boolean isGrayscaleBuffer() {
- return mGrayscaleBuffer;
+ public boolean isUseGrayscale() {
+ return mUseGrayscale;
}
@Override
@@ -153,7 +153,7 @@ public final class DisplayHashParams implements Parcelable {
return "DisplayHashParams { " +
"bufferSize = " + mBufferSize + ", " +
- "grayscaleBuffer = " + mGrayscaleBuffer +
+ "useGrayscale = " + mUseGrayscale +
" }";
}
@@ -164,7 +164,7 @@ public final class DisplayHashParams implements Parcelable {
// void parcelFieldName(Parcel dest, int flags) { ... }
byte flg = 0;
- if (mGrayscaleBuffer) flg |= 0x2;
+ if (mUseGrayscale) flg |= 0x2;
if (mBufferSize != null) flg |= 0x1;
dest.writeByte(flg);
if (mBufferSize != null) dest.writeSize(mBufferSize);
@@ -182,11 +182,11 @@ public final class DisplayHashParams implements Parcelable {
// static FieldType unparcelFieldName(Parcel in) { ... }
byte flg = in.readByte();
- boolean grayscaleBuffer = (flg & 0x2) != 0;
+ boolean useGrayscale = (flg & 0x2) != 0;
Size bufferSize = (flg & 0x1) == 0 ? null : (Size) in.readSize();
this.mBufferSize = bufferSize;
- this.mGrayscaleBuffer = grayscaleBuffer;
+ this.mUseGrayscale = useGrayscale;
// onConstructed(); // You can define this method to get a callback
}
@@ -206,10 +206,10 @@ public final class DisplayHashParams implements Parcelable {
};
@DataClass.Generated(
- time = 1617735166254L,
+ time = 1618436855096L,
codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/service/displayhash/DisplayHashParams.java",
- inputSignatures = "private final @android.annotation.Nullable android.util.Size mBufferSize\nprivate final boolean mGrayscaleBuffer\nclass DisplayHashParams extends java.lang.Object implements [android.os.Parcelable]\nprivate @android.annotation.Nullable android.util.Size mBufferSize\nprivate boolean mGrayscaleBuffer\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setBufferSize(int,int)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setGrayscaleBuffer(boolean)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams build()\nclass Builder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genAidl=true, genToString=true, genParcelable=true, genHiddenConstructor=true)")
+ inputSignatures = "private final @android.annotation.Nullable android.util.Size mBufferSize\nprivate final boolean mUseGrayscale\nclass DisplayHashParams extends java.lang.Object implements [android.os.Parcelable]\nprivate @android.annotation.Nullable android.util.Size mBufferSize\nprivate boolean mUseGrayscale\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setBufferSize(int,int)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams.Builder setUseGrayscale(boolean)\npublic @android.annotation.NonNull android.service.displayhash.DisplayHashParams build()\nclass Builder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genAidl=true, genToString=true, genParcelable=true, genHiddenConstructor=true)")
@Deprecated
private void __metadata() {}
diff --git a/core/java/android/service/displayhash/DisplayHasherService.java b/core/java/android/service/displayhash/DisplayHashingService.java
index d300cf10e47a..e8bb485780d0 100644
--- a/core/java/android/service/displayhash/DisplayHasherService.java
+++ b/core/java/android/service/displayhash/DisplayHashingService.java
@@ -45,21 +45,21 @@ import java.util.Map;
* @hide
*/
@SystemApi
-public abstract class DisplayHasherService extends Service {
+public abstract class DisplayHashingService extends Service {
/** @hide **/
public static final String EXTRA_VERIFIED_DISPLAY_HASH =
"android.service.displayhash.extra.VERIFIED_DISPLAY_HASH";
/**
- * Name under which a DisplayHasherService component publishes information
+ * Name under which a DisplayHashingService component publishes information
* about itself. This meta-data must reference an XML resource containing a
- * {@link com.android.internal.R.styleable#DisplayHasherService} tag.
+ * {@link com.android.internal.R.styleable#DisplayHashingService} tag.
*
* @hide
*/
@SystemApi
- public static final String SERVICE_META_DATA = "android.displayhash.display_hasher_service";
+ public static final String SERVICE_META_DATA = "android.displayhash.display_hashing_service";
/**
* The {@link Intent} action that must be declared as handled by a service in its manifest
@@ -69,18 +69,18 @@ public abstract class DisplayHasherService extends Service {
*/
@SystemApi
public static final String SERVICE_INTERFACE =
- "android.service.displayhash.DisplayHasherService";
+ "android.service.displayhash.DisplayHashingService";
- private DisplayHasherServiceWrapper mWrapper;
+ private DisplayHashingServiceWrapper mWrapper;
private Handler mHandler;
- public DisplayHasherService() {
+ public DisplayHashingService() {
}
@Override
public void onCreate() {
super.onCreate();
- mWrapper = new DisplayHasherServiceWrapper();
+ mWrapper = new DisplayHashingServiceWrapper();
mHandler = new Handler(Looper.getMainLooper(), null, true);
}
@@ -105,7 +105,6 @@ public abstract class DisplayHasherService extends Service {
* if successfully generated a DisplayHash or {@link
* DisplayHashResultCallback#onDisplayHashError(int)} if failed.
*/
- @Nullable
public abstract void onGenerateDisplayHash(@NonNull byte[] salt,
@NonNull HardwareBuffer buffer, @NonNull Rect bounds,
@NonNull String hashAlgorithm, @NonNull DisplayHashResultCallback callback);
@@ -125,8 +124,8 @@ public abstract class DisplayHasherService extends Service {
* HardwareBuffer, Rect, String, DisplayHashResultCallback)} to
* generate the token.
* @param displayHash The token to verify that it was generated by the system.
- * @return a {@link VerifiedDisplayHash} if the token was generated by the system or null
- * if the token cannot be verified.
+ * @return a {@link VerifiedDisplayHash} if the provided display hash was originally generated
+ * by the system or null if the system did not generate the display hash.
*/
@Nullable
public abstract VerifiedDisplayHash onVerifyDisplayHash(@NonNull byte[] salt,
@@ -150,13 +149,13 @@ public abstract class DisplayHasherService extends Service {
callback.sendResult(data);
}
- private final class DisplayHasherServiceWrapper extends IDisplayHasherService.Stub {
+ private final class DisplayHashingServiceWrapper extends IDisplayHashingService.Stub {
@Override
public void generateDisplayHash(byte[] salt, HardwareBuffer buffer, Rect bounds,
String hashAlgorithm, RemoteCallback callback) {
mHandler.sendMessage(
- obtainMessage(DisplayHasherService::onGenerateDisplayHash,
- DisplayHasherService.this, salt, buffer, bounds,
+ obtainMessage(DisplayHashingService::onGenerateDisplayHash,
+ DisplayHashingService.this, salt, buffer, bounds,
hashAlgorithm, new DisplayHashResultCallback() {
@Override
public void onDisplayHashResult(
@@ -179,14 +178,14 @@ public abstract class DisplayHasherService extends Service {
public void verifyDisplayHash(byte[] salt, DisplayHash displayHash,
RemoteCallback callback) {
mHandler.sendMessage(
- obtainMessage(DisplayHasherService::verifyDisplayHash,
- DisplayHasherService.this, salt, displayHash, callback));
+ obtainMessage(DisplayHashingService::verifyDisplayHash,
+ DisplayHashingService.this, salt, displayHash, callback));
}
@Override
public void getDisplayHashAlgorithms(RemoteCallback callback) {
- mHandler.sendMessage(obtainMessage(DisplayHasherService::getDisplayHashAlgorithms,
- DisplayHasherService.this, callback));
+ mHandler.sendMessage(obtainMessage(DisplayHashingService::getDisplayHashAlgorithms,
+ DisplayHashingService.this, callback));
}
}
}
diff --git a/core/java/android/service/displayhash/IDisplayHasherService.aidl b/core/java/android/service/displayhash/IDisplayHashingService.aidl
index d9dcdcaf921e..56e1e0aa9009 100644
--- a/core/java/android/service/displayhash/IDisplayHasherService.aidl
+++ b/core/java/android/service/displayhash/IDisplayHashingService.aidl
@@ -26,7 +26,7 @@ import android.view.displayhash.DisplayHash;
*
* @hide
*/
-oneway interface IDisplayHasherService {
+oneway interface IDisplayHashingService {
/**
* Generates the DisplayHash that can be used to validate that the system generated the token.
*
diff --git a/core/java/android/service/rotationresolver/RotationResolutionRequest.java b/core/java/android/service/rotationresolver/RotationResolutionRequest.java
index 8c7db4003235..9b9244bd7ae0 100644
--- a/core/java/android/service/rotationresolver/RotationResolutionRequest.java
+++ b/core/java/android/service/rotationresolver/RotationResolutionRequest.java
@@ -42,7 +42,7 @@ import com.android.internal.util.DataClass;
)
public final class RotationResolutionRequest implements Parcelable {
/** The Name of the package of the current fore-ground activity. */
- @NonNull private final String mPackageName;
+ @NonNull private final String mForegroundPackageName;
/** The current rotation of the screen. */
@Surface.Rotation private final int mCurrentRotation;
@@ -75,7 +75,7 @@ public final class RotationResolutionRequest implements Parcelable {
/**
* Creates a new RotationResolutionRequest.
*
- * @param packageName
+ * @param foregroundPackageName
* The Name of the package of the current fore-ground activity.
* @param currentRotation
* The current rotation of the screen.
@@ -88,14 +88,14 @@ public final class RotationResolutionRequest implements Parcelable {
*/
@DataClass.Generated.Member
public RotationResolutionRequest(
- @NonNull String packageName,
+ @NonNull String foregroundPackageName,
@Surface.Rotation int currentRotation,
@Surface.Rotation int proposedRotation,
boolean shouldUseCamera,
@DurationMillisLong long timeoutMillis) {
- this.mPackageName = packageName;
+ this.mForegroundPackageName = foregroundPackageName;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, mPackageName);
+ NonNull.class, null, mForegroundPackageName);
this.mCurrentRotation = currentRotation;
com.android.internal.util.AnnotationValidations.validate(
Surface.Rotation.class, null, mCurrentRotation);
@@ -114,8 +114,8 @@ public final class RotationResolutionRequest implements Parcelable {
* The Name of the package of the current fore-ground activity.
*/
@DataClass.Generated.Member
- public @NonNull String getPackageName() {
- return mPackageName;
+ public @NonNull String getForegroundPackageName() {
+ return mForegroundPackageName;
}
/**
@@ -157,7 +157,7 @@ public final class RotationResolutionRequest implements Parcelable {
// String fieldNameToString() { ... }
return "RotationResolutionRequest { " +
- "packageName = " + mPackageName + ", " +
+ "foregroundPackageName = " + mForegroundPackageName + ", " +
"currentRotation = " + mCurrentRotation + ", " +
"proposedRotation = " + mProposedRotation + ", " +
"shouldUseCamera = " + mShouldUseCamera + ", " +
@@ -174,7 +174,7 @@ public final class RotationResolutionRequest implements Parcelable {
byte flg = 0;
if (mShouldUseCamera) flg |= 0x8;
dest.writeByte(flg);
- dest.writeString(mPackageName);
+ dest.writeString(mForegroundPackageName);
dest.writeInt(mCurrentRotation);
dest.writeInt(mProposedRotation);
dest.writeLong(mTimeoutMillis);
@@ -193,14 +193,14 @@ public final class RotationResolutionRequest implements Parcelable {
byte flg = in.readByte();
boolean shouldUseCamera = (flg & 0x8) != 0;
- String packageName = in.readString();
+ String foregroundPackageName = in.readString();
int currentRotation = in.readInt();
int proposedRotation = in.readInt();
long timeoutMillis = in.readLong();
- this.mPackageName = packageName;
+ this.mForegroundPackageName = foregroundPackageName;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, mPackageName);
+ NonNull.class, null, mForegroundPackageName);
this.mCurrentRotation = currentRotation;
com.android.internal.util.AnnotationValidations.validate(
Surface.Rotation.class, null, mCurrentRotation);
@@ -230,10 +230,10 @@ public final class RotationResolutionRequest implements Parcelable {
};
@DataClass.Generated(
- time = 1617213094231L,
+ time = 1618447759819L,
codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/service/rotationresolver/RotationResolutionRequest.java",
- inputSignatures = "private final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.view.Surface.Rotation int mCurrentRotation\nprivate final @android.view.Surface.Rotation int mProposedRotation\nprivate final boolean mShouldUseCamera\nprivate final @android.annotation.DurationMillisLong long mTimeoutMillis\nclass RotationResolutionRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genToString=true)")
+ inputSignatures = "private final @android.annotation.NonNull java.lang.String mForegroundPackageName\nprivate final @android.view.Surface.Rotation int mCurrentRotation\nprivate final @android.view.Surface.Rotation int mProposedRotation\nprivate final boolean mShouldUseCamera\nprivate final @android.annotation.DurationMillisLong long mTimeoutMillis\nclass RotationResolutionRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genToString=true)")
@Deprecated
private void __metadata() {}
diff --git a/core/java/android/service/textservice/SpellCheckerService.java b/core/java/android/service/textservice/SpellCheckerService.java
index e4925842ad85..45f974354c8a 100644
--- a/core/java/android/service/textservice/SpellCheckerService.java
+++ b/core/java/android/service/textservice/SpellCheckerService.java
@@ -421,7 +421,8 @@ public abstract class SpellCheckerService extends Service {
final ArrayList<SentenceWordItem> wordItems = new ArrayList<SentenceWordItem>();
wordIterator.setCharSequence(originalText, 0, originalText.length());
int wordEnd = wordIterator.following(start);
- int wordStart = wordIterator.getBeginning(wordEnd);
+ int wordStart = wordEnd == BreakIterator.DONE ? BreakIterator.DONE
+ : wordIterator.getBeginning(wordEnd);
if (DBG) {
Log.d(TAG, "iterator: break: ---- 1st word start = " + wordStart + ", end = "
+ wordEnd + "\n" + originalText);
diff --git a/core/java/android/service/translation/TranslationService.java b/core/java/android/service/translation/TranslationService.java
index a3bbdb9af475..fe86c0b86e47 100644
--- a/core/java/android/service/translation/TranslationService.java
+++ b/core/java/android/service/translation/TranslationService.java
@@ -16,6 +16,8 @@
package android.service.translation;
+import static android.view.translation.TranslationManager.STATUS_SYNC_CALL_FAIL;
+import static android.view.translation.TranslationManager.STATUS_SYNC_CALL_SUCCESS;
import static android.view.translation.Translator.EXTRA_SERVICE_BINDER;
import static android.view.translation.Translator.EXTRA_SESSION_ID;
@@ -207,13 +209,33 @@ public abstract class TranslationService extends Service {
}
/**
- * TODO: fill in javadoc.
+ * Called to notify the service that a session was created
+ * (see {@link android.view.translation.Translator}).
*
- * @param translationContext
- * @param sessionId
+ * <p>The service must call {@code callback.accept()} to acknowledge whether the session is
+ * supported and created successfully. If the translation context is not supported, the service
+ * should call back with {@code false}.</p>
+ *
+ * @param translationContext the {@link TranslationContext} of the session being created.
+ * @param sessionId the int id of the session.
+ * @param callback {@link Consumer} to notify whether the session was successfully created.
*/
// TODO(b/176464808): the session id won't be unique cross client/server process. Need to find
// solution to make it's safe.
+ // TODO: make abstract once aiai is implemented.
+ public void onCreateTranslationSession(@NonNull TranslationContext translationContext,
+ int sessionId, @NonNull Consumer<Boolean> callback) {
+ onCreateTranslationSession(translationContext, sessionId);
+ callback.accept(true);
+ }
+
+ /**
+ * TODO: fill in javadoc.
+ *
+ * @deprecated use {@link #onCreateTranslationSession(TranslationContext, int, Consumer)}
+ * instead.
+ */
+ @Deprecated
public abstract void onCreateTranslationSession(@NonNull TranslationContext translationContext,
int sessionId);
@@ -253,19 +275,30 @@ public abstract class TranslationService extends Service {
// TODO(b/176464808): Need to handle client dying case
- // TODO(b/176464808): Need to handle the failure case. e.g. if the context is not supported.
-
private void handleOnCreateTranslationSession(@NonNull TranslationContext translationContext,
int sessionId, IResultReceiver resultReceiver) {
- try {
- final Bundle extras = new Bundle();
- extras.putBinder(EXTRA_SERVICE_BINDER, mClientInterface.asBinder());
- extras.putInt(EXTRA_SESSION_ID, sessionId);
- resultReceiver.send(0, extras);
- } catch (RemoteException e) {
- Log.w(TAG, "RemoteException sending client interface: " + e);
- }
- onCreateTranslationSession(translationContext, sessionId);
+ onCreateTranslationSession(translationContext, sessionId,
+ new Consumer<Boolean>() {
+ @Override
+ public void accept(Boolean created) {
+ try {
+ if (!created) {
+ Log.w(TAG, "handleOnCreateTranslationSession(): context="
+ + translationContext + " not supported by service.");
+ resultReceiver.send(STATUS_SYNC_CALL_FAIL, null);
+ return;
+ }
+
+ final Bundle extras = new Bundle();
+ extras.putBinder(EXTRA_SERVICE_BINDER, mClientInterface.asBinder());
+ extras.putInt(EXTRA_SESSION_ID, sessionId);
+ resultReceiver.send(STATUS_SYNC_CALL_SUCCESS, extras);
+ } catch (RemoteException e) {
+ Log.w(TAG, "RemoteException sending client interface: " + e);
+ }
+ }
+ });
+
}
private void handleOnTranslationCapabilitiesRequest(
@@ -280,9 +313,8 @@ public abstract class TranslationService extends Service {
final Bundle bundle = new Bundle();
bundle.putParcelableArray(TranslationManager.EXTRA_CAPABILITIES,
capabilities.toArray(new TranslationCapability[0]));
- resultReceiver.send(TranslationManager.STATUS_SYNC_CALL_SUCCESS, bundle);
+ resultReceiver.send(STATUS_SYNC_CALL_SUCCESS, bundle);
}
});
-
}
}
diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
index 8ca0e7ccff37..0b410a2cb619 100644
--- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java
+++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
@@ -24,6 +24,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.app.ActivityThread;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
@@ -49,6 +50,7 @@ import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.SharedMemory;
import android.service.voice.HotwordDetectionService.InitializationStatus;
+import android.util.Log;
import android.util.Slog;
import com.android.internal.app.IHotwordRecognitionStatusCallback;
@@ -628,6 +630,34 @@ public class AlwaysOnHotwordDetector extends AbstractHotwordDetector {
}
/**
+ * Test API to simulate to trigger hardware recognition event for test.
+ *
+ * @hide
+ */
+ @TestApi
+ @RequiresPermission(allOf = {RECORD_AUDIO, CAPTURE_AUDIO_HOTWORD})
+ public void triggerHardwareRecognitionEventForTest(int status, int soundModelHandle,
+ boolean captureAvailable, int captureSession, int captureDelayMs, int capturePreambleMs,
+ boolean triggerInData, @NonNull AudioFormat captureFormat, @Nullable byte[] data) {
+ Log.d(TAG, "triggerHardwareRecognitionEventForTest()");
+ synchronized (mLock) {
+ if (mAvailability == STATE_INVALID || mAvailability == STATE_ERROR) {
+ throw new IllegalStateException("triggerHardwareRecognitionEventForTest called on"
+ + " an invalid detector or error state");
+ }
+ try {
+ mModelManagementService.triggerHardwareRecognitionEventForTest(
+ new KeyphraseRecognitionEvent(status, soundModelHandle, captureAvailable,
+ captureSession, captureDelayMs, capturePreambleMs, triggerInData,
+ captureFormat, data, null /* keyphraseExtras */),
+ mInternalCallback);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+ }
+
+ /**
* Gets the recognition modes supported by the associated keyphrase.
*
* @see #RECOGNITION_MODE_USER_IDENTIFICATION
diff --git a/core/java/android/service/voice/HotwordDetectionService.java b/core/java/android/service/voice/HotwordDetectionService.java
index 23b2103ce5fd..ea854e8c9283 100644
--- a/core/java/android/service/voice/HotwordDetectionService.java
+++ b/core/java/android/service/voice/HotwordDetectionService.java
@@ -24,8 +24,11 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SdkConstant;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.app.Service;
+import android.content.ContentCaptureOptions;
+import android.content.Context;
import android.content.Intent;
import android.media.AudioFormat;
import android.os.Bundle;
@@ -38,6 +41,8 @@ import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.SharedMemory;
import android.util.Log;
+import android.view.contentcapture.ContentCaptureManager;
+import android.view.contentcapture.IContentCaptureManager;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
@@ -122,6 +127,9 @@ public abstract class HotwordDetectionService extends Service {
private Handler mHandler;
+ @Nullable
+ private ContentCaptureManager mContentCaptureManager;
+
private final IHotwordDetectionService mInterface = new IHotwordDetectionService.Stub() {
@Override
public void detectFromDspSource(
@@ -187,6 +195,13 @@ public abstract class HotwordDetectionService extends Service {
Log.i(TAG, "Unsupported audio source " + audioSource);
}
}
+
+ @Override
+ public void updateContentCaptureManager(IContentCaptureManager manager,
+ ContentCaptureOptions options) {
+ mContentCaptureManager = new ContentCaptureManager(
+ HotwordDetectionService.this, manager, options);
+ }
};
@CallSuper
@@ -207,6 +222,16 @@ public abstract class HotwordDetectionService extends Service {
return null;
}
+ @Override
+ @SuppressLint("OnNameExpected")
+ public @Nullable Object getSystemService(@ServiceName @NonNull String name) {
+ if (Context.CONTENT_CAPTURE_MANAGER_SERVICE.equals(name)) {
+ return mContentCaptureManager;
+ } else {
+ return super.getSystemService(name);
+ }
+ }
+
/**
* Called when the device hardware (such as a DSP) detected the hotword, to request second stage
* validation before handing over the audio to the {@link AlwaysOnHotwordDetector}.
diff --git a/core/java/android/service/voice/IHotwordDetectionService.aidl b/core/java/android/service/voice/IHotwordDetectionService.aidl
index d2421603e554..2ffe787e895a 100644
--- a/core/java/android/service/voice/IHotwordDetectionService.aidl
+++ b/core/java/android/service/voice/IHotwordDetectionService.aidl
@@ -22,6 +22,8 @@ import android.os.ParcelFileDescriptor;
import android.os.PersistableBundle;
import android.os.SharedMemory;
import android.service.voice.IDspHotwordDetectionCallback;
+import android.view.contentcapture.IContentCaptureManager;
+import android.content.ContentCaptureOptions;
/**
* Provide the interface to communicate with hotword detection service.
@@ -42,6 +44,12 @@ oneway interface IHotwordDetectionService {
in PersistableBundle options,
in IDspHotwordDetectionCallback callback);
- void updateState(in PersistableBundle options, in SharedMemory sharedMemory,
- in IRemoteCallback callback);
+ void updateState(
+ in PersistableBundle options,
+ in SharedMemory sharedMemory,
+ in IRemoteCallback callback);
+
+ void updateContentCaptureManager(
+ in IContentCaptureManager contentCaptureManager,
+ in ContentCaptureOptions options);
}
diff --git a/core/java/android/speech/RecognitionListener.java b/core/java/android/speech/RecognitionListener.java
index 07bd9eae864b..c94b60f847f4 100644
--- a/core/java/android/speech/RecognitionListener.java
+++ b/core/java/android/speech/RecognitionListener.java
@@ -62,7 +62,8 @@ public interface RecognitionListener {
/**
* A network or recognition error occurred.
*
- * @param error code is defined in {@link SpeechRecognizer}
+ * @param error code is defined in {@link SpeechRecognizer}. Implementations need to handle any
+ * integer error constant to be passed here beyond constants prefixed with ERROR_.
*/
void onError(@SpeechRecognizer.RecognitionError int error);
diff --git a/core/java/android/text/FontConfig.java b/core/java/android/text/FontConfig.java
index 33b7c757f1e8..2f7fb2f0ab9d 100644
--- a/core/java/android/text/FontConfig.java
+++ b/core/java/android/text/FontConfig.java
@@ -194,6 +194,7 @@ public final class FontConfig implements Parcelable {
public static final class Font implements Parcelable {
private final @NonNull File mFile;
private final @Nullable File mOriginalFile;
+ private final @NonNull String mPostScriptName;
private final @NonNull FontStyle mStyle;
private final @IntRange(from = 0) int mIndex;
private final @NonNull String mFontVariationSettings;
@@ -204,11 +205,12 @@ public final class FontConfig implements Parcelable {
*
* @hide Only system server can create this instance and passed via IPC.
*/
- public Font(@NonNull File file, @Nullable File originalFile, @NonNull FontStyle style,
- @IntRange(from = 0) int index, @NonNull String fontVariationSettings,
- @Nullable String fontFamilyName) {
+ public Font(@NonNull File file, @Nullable File originalFile, @NonNull String postScriptName,
+ @NonNull FontStyle style, @IntRange(from = 0) int index,
+ @NonNull String fontVariationSettings, @Nullable String fontFamilyName) {
mFile = file;
mOriginalFile = originalFile;
+ mPostScriptName = postScriptName;
mStyle = style;
mIndex = index;
mFontVariationSettings = fontVariationSettings;
@@ -224,6 +226,7 @@ public final class FontConfig implements Parcelable {
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeString8(mFile.getAbsolutePath());
dest.writeString8(mOriginalFile == null ? null : mOriginalFile.getAbsolutePath());
+ dest.writeString8(mPostScriptName);
dest.writeInt(mStyle.getWeight());
dest.writeInt(mStyle.getSlant());
dest.writeInt(mIndex);
@@ -238,14 +241,15 @@ public final class FontConfig implements Parcelable {
File path = new File(source.readString8());
String originalPathStr = source.readString8();
File originalPath = originalPathStr == null ? null : new File(originalPathStr);
+ String postScriptName = source.readString8();
int weight = source.readInt();
int slant = source.readInt();
int index = source.readInt();
String varSettings = source.readString8();
String fallback = source.readString8();
- return new Font(path, originalPath, new FontStyle(weight, slant), index,
- varSettings, fallback);
+ return new Font(path, originalPath, postScriptName, new FontStyle(weight, slant),
+ index, varSettings, fallback);
}
@Override
@@ -314,6 +318,13 @@ public final class FontConfig implements Parcelable {
}
/**
+ * Returns the PostScript name of this font.
+ */
+ public @NonNull String getPostScriptName() {
+ return mPostScriptName;
+ }
+
+ /**
* Returns the list of axes associated to this font.
* @deprecated Use getFontVariationSettings
* @hide
diff --git a/core/java/android/text/method/TranslationTransformationMethod.java b/core/java/android/text/method/TranslationTransformationMethod.java
index 7db999a89fbe..54c0ffcdbb65 100644
--- a/core/java/android/text/method/TranslationTransformationMethod.java
+++ b/core/java/android/text/method/TranslationTransformationMethod.java
@@ -78,24 +78,11 @@ public class TranslationTransformationMethod implements TransformationMethod2 {
if (TextUtils.isEmpty(translatedText) || isWhitespace(translatedText.toString())) {
return source;
} else {
- // TODO(b/179693024): Remove this once we have the fix to pad the view text instead.
- translatedText = ellipsize(translatedText, ((TextView) view).getText().length());
// TODO(b/174283799): apply the spans to the text
return translatedText;
}
}
- private static CharSequence ellipsize(CharSequence text, int newLength) {
- if (text.length() <= newLength) {
- return text;
- }
- String ellipsis = String.valueOf('\u2026');
- if (newLength == 1) {
- return ellipsis;
- }
- return TextUtils.concat(TextUtils.trimToSize(text, newLength - 1), ellipsis);
- }
-
@Override
public void onFocusChanged(View view, CharSequence sourceText,
boolean focused, int direction,
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index c201e3beb9b2..def9ca4e74fb 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -541,9 +541,6 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
private final SparseArray<InsetsSourceControl> mTmpControlArray = new SparseArray<>();
private final ArrayList<RunningAnimation> mRunningAnimations = new ArrayList<>();
- private final ArrayList<WindowInsetsAnimation> mTmpRunningAnims = new ArrayList<>();
- private final List<WindowInsetsAnimation> mUnmodifiableTmpRunningAnims =
- Collections.unmodifiableList(mTmpRunningAnims);
private final ArrayList<InsetsAnimationControlImpl> mTmpFinishedControls = new ArrayList<>();
private final ArraySet<InsetsSourceConsumer> mRequestedVisibilityChanged = new ArraySet<>();
private WindowInsets mLastInsets;
@@ -601,9 +598,8 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
return;
}
- mTmpFinishedControls.clear();
- mTmpRunningAnims.clear();
- InsetsState state = new InsetsState(mState, true /* copySources */);
+ final List<WindowInsetsAnimation> runningAnimations = new ArrayList<>();
+ final InsetsState state = new InsetsState(mState, true /* copySources */);
for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
RunningAnimation runningAnimation = mRunningAnimations.get(i);
if (DEBUG) Log.d(TAG, "Running animation type: " + runningAnimation.type);
@@ -615,7 +611,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
// if it gets finished within applyChangeInsets we still dispatch it to
// onProgress.
if (runningAnimation.startDispatched) {
- mTmpRunningAnims.add(control.getAnimation());
+ runningAnimations.add(control.getAnimation());
}
if (control.applyChangeInsets(state)) {
@@ -628,9 +624,10 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
mLastInsets.isRound(), mLastInsets.shouldAlwaysConsumeSystemBars(),
mLastLegacySoftInputMode, mLastLegacyWindowFlags, mLastLegacySystemUiFlags,
mWindowType, mLastWindowingMode, null /* typeSideMap */);
- mHost.dispatchWindowInsetsAnimationProgress(insets, mUnmodifiableTmpRunningAnims);
+ mHost.dispatchWindowInsetsAnimationProgress(insets,
+ Collections.unmodifiableList(runningAnimations));
if (DEBUG) {
- for (WindowInsetsAnimation anim : mUnmodifiableTmpRunningAnims) {
+ for (WindowInsetsAnimation anim : runningAnimations) {
Log.d(TAG, String.format("Running animation type: %d, progress: %f",
anim.getTypeMask(), anim.getInterpolatedFraction()));
}
@@ -639,6 +636,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
for (int i = mTmpFinishedControls.size() - 1; i >= 0; i--) {
dispatchAnimationEnd(mTmpFinishedControls.get(i).getAnimation());
}
+ mTmpFinishedControls.clear();
};
}
@@ -1441,7 +1439,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
}
void dump(String prefix, PrintWriter pw) {
- pw.println(prefix); pw.println("InsetsController:");
+ pw.print(prefix); pw.println("InsetsController:");
mState.dump(prefix + " ", pw);
}
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 2c81e8986ac6..83669fa96a9b 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -34,6 +34,7 @@ import android.annotation.Size;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.graphics.Bitmap;
+import android.graphics.BLASTBufferQueue;
import android.graphics.ColorSpace;
import android.graphics.GraphicBuffer;
import android.graphics.Matrix;
@@ -95,6 +96,7 @@ public final class SurfaceControl implements Parcelable {
private static native void nativeWriteToParcel(long nativeObject, Parcel out);
private static native void nativeRelease(long nativeObject);
private static native void nativeDisconnect(long nativeObject);
+ private static native void nativeUpdateDefaultBufferSize(long nativeObject, int width, int height);
private static native int nativeCaptureDisplay(DisplayCaptureArgs captureArgs,
ScreenCaptureListener captureListener);
private static native int nativeCaptureLayers(LayerCaptureArgs captureArgs,
@@ -1083,6 +1085,11 @@ public final class SurfaceControl implements Parcelable {
throw new IllegalStateException(
"Only buffer layers can set a valid buffer size.");
}
+ boolean isBqLayer = isBufferQueueLayer();
+ if (isBqLayer) {
+ setBLASTLayer();
+ }
+
return new SurfaceControl(
mSession, mName, mWidth, mHeight, mFormat, mFlags, mParent, mMetadata,
mLocalOwnerView, mCallsite);
@@ -1139,9 +1146,6 @@ public final class SurfaceControl implements Parcelable {
return setFlags(FX_SURFACE_NORMAL, FX_SURFACE_MASK);
}
- /**
- * Set the initial size of the controlled surface's buffers in pixels.
- */
private void unsetBufferSize() {
mWidth = 0;
mHeight = 0;
@@ -1306,11 +1310,14 @@ public final class SurfaceControl implements Parcelable {
return (mFlags & FX_SURFACE_EFFECT) == FX_SURFACE_EFFECT;
}
+ private boolean isBufferQueueLayer() {
+ return (mFlags & FX_SURFACE_NORMAL) == FX_SURFACE_NORMAL;
+ }
+
/**
* @hide
*/
public Builder setBLASTLayer() {
- unsetBufferSize();
return setFlags(FX_SURFACE_BLAST, FX_SURFACE_MASK);
}
@@ -2595,6 +2602,16 @@ public final class SurfaceControl implements Parcelable {
= sRegistry.registerNativeAllocation(this, mNativeObject);
}
+ /**
+ * Create a transaction object that wraps a native peer.
+ * @hide
+ */
+ Transaction(long nativeObject) {
+ mNativeObject = nativeObject;
+ mFreeNativeResources =
+ sRegistry.registerNativeAllocation(this, mNativeObject);
+ }
+
private Transaction(Parcel in) {
readFromParcel(in);
}
@@ -2649,8 +2666,7 @@ public final class SurfaceControl implements Parcelable {
final Point size = mResizedSurfaces.valueAt(i);
final SurfaceControl surfaceControl = mResizedSurfaces.keyAt(i);
synchronized (surfaceControl.mLock) {
- surfaceControl.mWidth = size.x;
- surfaceControl.mHeight = size.y;
+ surfaceControl.resize(size.x, size.y);
}
}
mResizedSurfaces.clear();
@@ -3566,4 +3582,13 @@ public final class SurfaceControl implements Parcelable {
public static Transaction getGlobalTransaction() {
return sGlobalTransaction;
}
+
+ /**
+ * @hide
+ */
+ public void resize(int w, int h) {
+ mWidth = w;
+ mHeight = h;
+ nativeUpdateDefaultBufferSize(mNativeObject, w, h);
+ }
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d6b5a2c299e9..03c40cb03d6f 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -26005,6 +26005,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*
* @attr ref android.R.styleable#View_minWidth
*/
+ @RemotableViewMethod
public void setMinimumWidth(int minWidth) {
mMinWidth = minWidth;
requestLayout();
@@ -30143,6 +30144,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*/
public void setScrollCaptureHint(@ScrollCaptureHint int hint) {
mPrivateFlags4 &= ~PFLAG4_SCROLL_CAPTURE_HINT_MASK;
+ // Since include/exclude are mutually exclusive, exclude takes precedence.
+ if ((hint & SCROLL_CAPTURE_HINT_EXCLUDE) != 0) {
+ hint &= ~SCROLL_CAPTURE_HINT_INCLUDE;
+ }
mPrivateFlags4 |= ((hint << PFLAG4_SCROLL_CAPTURE_HINT_SHIFT)
& PFLAG4_SCROLL_CAPTURE_HINT_MASK);
}
@@ -30927,7 +30932,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @param executor The executor that the callback should be invoked on.
* @param callback The callback to handle the results of generating the display hash
*/
- @Nullable
public void generateDisplayHash(@NonNull String hashAlgorithm,
@Nullable Rect bounds, @NonNull Executor executor,
@NonNull DisplayHashResultCallback callback) {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index be8e51980c3c..3cfda571ae6a 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1355,6 +1355,16 @@ public final class ViewRootImpl implements ViewParent,
}
}
+ private void addASurfaceTransactionCallback() {
+ HardwareRenderer.ASurfaceTransactionCallback callback = (nativeTransactionObj,
+ nativeSurfaceControlObj,
+ frameNr) -> {
+ Transaction t = new Transaction(nativeTransactionObj);
+ mergeWithNextTransaction(t, frameNr);
+ };
+ mAttachInfo.mThreadedRenderer.setASurfaceTransactionCallback(callback);
+ }
+
@UnsupportedAppUsage
private void enableHardwareAcceleration(WindowManager.LayoutParams attrs) {
mAttachInfo.mHardwareAccelerated = false;
@@ -1391,6 +1401,7 @@ public final class ViewRootImpl implements ViewParent,
final boolean translucent = attrs.format != PixelFormat.OPAQUE || hasSurfaceInsets;
mAttachInfo.mThreadedRenderer = ThreadedRenderer.create(mContext, translucent,
attrs.getTitle().toString());
+ addASurfaceTransactionCallback();
mAttachInfo.mThreadedRenderer.setSurfaceControl(mSurfaceControl);
updateColorModeIfNeeded(attrs.getColorMode());
updateForceDarkMode();
diff --git a/core/java/android/view/contentcapture/ContentCaptureEvent.java b/core/java/android/view/contentcapture/ContentCaptureEvent.java
index ce014693c4c4..ac4554134a44 100644
--- a/core/java/android/view/contentcapture/ContentCaptureEvent.java
+++ b/core/java/android/view/contentcapture/ContentCaptureEvent.java
@@ -428,10 +428,11 @@ public final class ContentCaptureEvent implements Parcelable {
}
if (mNode != null) {
final String className = mNode.getClassName();
- if (mNode != null) {
- string.append(", class=").append(className);
- }
+ string.append(", class=").append(className);
string.append(", id=").append(mNode.getAutofillId());
+ if (mNode.getText() != null) {
+ string.append(", text=").append(getSanitizedString(mNode.getText()));
+ }
}
if (mText != null) {
string.append(", text=").append(getSanitizedString(mText));
diff --git a/core/java/android/view/displayhash/DisplayHash.java b/core/java/android/view/displayhash/DisplayHash.java
index 41484865b98e..4ec0a5918300 100644
--- a/core/java/android/view/displayhash/DisplayHash.java
+++ b/core/java/android/view/displayhash/DisplayHash.java
@@ -16,6 +16,7 @@
package android.view.displayhash;
+import android.annotation.CurrentTimeMillisLong;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.graphics.Rect;
@@ -31,6 +32,7 @@ public final class DisplayHash implements Parcelable {
/**
* The timestamp when the hash was generated.
*/
+ @CurrentTimeMillisLong
private final long mTimeMillis;
/**
@@ -73,7 +75,7 @@ public final class DisplayHash implements Parcelable {
* @hide
*/
@SystemApi
- public DisplayHash(long timeMillis, @NonNull Rect boundsInWindow,
+ public DisplayHash(@CurrentTimeMillisLong long timeMillis, @NonNull Rect boundsInWindow,
@NonNull String hashAlgorithm, @NonNull byte[] imageHash, @NonNull byte[] hmac) {
mTimeMillis = timeMillis;
mBoundsInWindow = boundsInWindow;
@@ -92,6 +94,7 @@ public final class DisplayHash implements Parcelable {
* @hide
*/
@SystemApi
+ @CurrentTimeMillisLong
public long getTimeMillis() {
return mTimeMillis;
}
diff --git a/core/java/android/view/displayhash/DisplayHashManager.java b/core/java/android/view/displayhash/DisplayHashManager.java
index 69dfc3869b7d..4f5fef6f65f9 100644
--- a/core/java/android/view/displayhash/DisplayHashManager.java
+++ b/core/java/android/view/displayhash/DisplayHashManager.java
@@ -35,7 +35,8 @@ import java.util.Collections;
import java.util.Set;
/**
- * Utility class for DisplayHash requests.
+ * Manages DisplayHash requests. The manager object can be retrieved by calling
+ * {@code Context.getSystemService(Context.DISPLAY_HASH_SERVICE)}
*/
@SystemService(DISPLAY_HASH_SERVICE)
public final class DisplayHashManager {
@@ -75,7 +76,7 @@ public final class DisplayHashManager {
return sSupportedHashAlgorithms;
} catch (RemoteException e) {
Log.e(TAG, "Failed to send request getSupportedHashingAlgorithms", e);
- return Collections.emptySet();
+ throw e.rethrowFromSystemServer();
}
}
}
@@ -93,7 +94,7 @@ public final class DisplayHashManager {
return WindowManagerGlobal.getWindowManagerService().verifyDisplayHash(displayHash);
} catch (RemoteException e) {
Log.e(TAG, "Failed to send request verifyImpressionToken", e);
- return null;
+ throw e.rethrowFromSystemServer();
}
}
diff --git a/core/java/android/view/displayhash/VerifiedDisplayHash.java b/core/java/android/view/displayhash/VerifiedDisplayHash.java
index 16a428e73005..b17c068dd984 100644
--- a/core/java/android/view/displayhash/VerifiedDisplayHash.java
+++ b/core/java/android/view/displayhash/VerifiedDisplayHash.java
@@ -16,6 +16,7 @@
package android.view.displayhash;
+import android.annotation.CurrentTimeMillisLong;
import android.annotation.NonNull;
import android.graphics.Rect;
import android.os.Parcelable;
@@ -30,6 +31,7 @@ public final class VerifiedDisplayHash implements Parcelable {
/**
* The timestamp when the hash was generated.
*/
+ @CurrentTimeMillisLong
private final long mTimeMillis;
/**
@@ -78,7 +80,7 @@ public final class VerifiedDisplayHash implements Parcelable {
- // Code below generated by codegen v1.0.22.
+ // Code below generated by codegen v1.0.23.
//
// DO NOT MODIFY!
// CHECKSTYLE:OFF Generated code
@@ -106,11 +108,13 @@ public final class VerifiedDisplayHash implements Parcelable {
*/
@DataClass.Generated.Member
public VerifiedDisplayHash(
- long timeMillis,
+ @CurrentTimeMillisLong long timeMillis,
@NonNull Rect boundsInWindow,
@NonNull String hashAlgorithm,
@NonNull byte[] imageHash) {
this.mTimeMillis = timeMillis;
+ com.android.internal.util.AnnotationValidations.validate(
+ CurrentTimeMillisLong.class, null, mTimeMillis);
this.mBoundsInWindow = boundsInWindow;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mBoundsInWindow);
@@ -128,7 +132,7 @@ public final class VerifiedDisplayHash implements Parcelable {
* The timestamp when the hash was generated.
*/
@DataClass.Generated.Member
- public long getTimeMillis() {
+ public @CurrentTimeMillisLong long getTimeMillis() {
return mTimeMillis;
}
@@ -200,6 +204,8 @@ public final class VerifiedDisplayHash implements Parcelable {
byte[] imageHash = in.createByteArray();
this.mTimeMillis = timeMillis;
+ com.android.internal.util.AnnotationValidations.validate(
+ CurrentTimeMillisLong.class, null, mTimeMillis);
this.mBoundsInWindow = boundsInWindow;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mBoundsInWindow);
@@ -228,10 +234,10 @@ public final class VerifiedDisplayHash implements Parcelable {
};
@DataClass.Generated(
- time = 1613168749684L,
- codegenVersion = "1.0.22",
+ time = 1617747271440L,
+ codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/view/displayhash/VerifiedDisplayHash.java",
- inputSignatures = "private final long mTimeMillis\nprivate final @android.annotation.NonNull android.graphics.Rect mBoundsInWindow\nprivate final @android.annotation.NonNull java.lang.String mHashAlgorithm\nprivate final @android.annotation.NonNull byte[] mImageHash\nprivate java.lang.String imageHashToString()\nprivate java.lang.String byteArrayToString(byte[])\nclass VerifiedDisplayHash extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genAidl=true)")
+ inputSignatures = "private final @android.annotation.CurrentTimeMillisLong long mTimeMillis\nprivate final @android.annotation.NonNull android.graphics.Rect mBoundsInWindow\nprivate final @android.annotation.NonNull java.lang.String mHashAlgorithm\nprivate final @android.annotation.NonNull byte[] mImageHash\nprivate java.lang.String imageHashToString()\nprivate java.lang.String byteArrayToString(byte[])\nclass VerifiedDisplayHash extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genAidl=true)")
@Deprecated
private void __metadata() {}
diff --git a/core/java/android/view/translation/TranslationResponse.java b/core/java/android/view/translation/TranslationResponse.java
index f9b7012b8f03..eef283d7a6db 100644
--- a/core/java/android/view/translation/TranslationResponse.java
+++ b/core/java/android/view/translation/TranslationResponse.java
@@ -87,7 +87,7 @@ public final class TranslationResponse implements Parcelable {
/**
* Adds {@link TranslationResponseValue} to be translated. The input
* TranslationResponseValue format should match those provided by the
- * {@link android.view.translation.Translator}'s destSpec.
+ * {@link android.view.translation.Translator}'s targetSpec.
*
* @param value the translated value.
* @return this Builder.
@@ -109,7 +109,7 @@ public final class TranslationResponse implements Parcelable {
/**
* Sets the list of {@link ViewTranslationResponse} to be translated. The input
* ViewTranslationResponse contains {@link TranslationResponseValue}s whose format should
- * match those provided by the {@link android.view.translation.Translator}'s destSpec.
+ * match those provided by the {@link android.view.translation.Translator}'s targetSpec.
*
* @param response the translated response.
* @return this Builder.
diff --git a/core/java/android/view/translation/UiTranslationController.java b/core/java/android/view/translation/UiTranslationController.java
index c09e8bde7417..b6d3d0953d71 100644
--- a/core/java/android/view/translation/UiTranslationController.java
+++ b/core/java/android/view/translation/UiTranslationController.java
@@ -100,7 +100,7 @@ public class UiTranslationController {
* Update the Ui translation state.
*/
public void updateUiTranslationState(@UiTranslationState int state, TranslationSpec sourceSpec,
- TranslationSpec destSpec, List<AutofillId> views) {
+ TranslationSpec targetSpec, List<AutofillId> views) {
if (!mActivity.isResumed() && (state == STATE_UI_TRANSLATION_STARTED
|| state == STATE_UI_TRANSLATION_RESUMED)) {
return;
@@ -113,11 +113,11 @@ public class UiTranslationController {
switch (state) {
case STATE_UI_TRANSLATION_STARTED:
final Pair<TranslationSpec, TranslationSpec> specs =
- new Pair<>(sourceSpec, destSpec);
+ new Pair<>(sourceSpec, targetSpec);
if (!mTranslators.containsKey(specs)) {
mWorkerHandler.sendMessage(PooledLambda.obtainMessage(
UiTranslationController::createTranslatorAndStart,
- UiTranslationController.this, sourceSpec, destSpec, views));
+ UiTranslationController.this, sourceSpec, targetSpec, views));
} else {
onUiTranslationStarted(mTranslators.get(specs), views);
}
@@ -362,17 +362,20 @@ public class UiTranslationController {
continue;
}
mActivity.runOnUiThread(() -> {
- if (view.getViewTranslationCallback() == null) {
+ final ViewTranslationCallback callback = view.getViewTranslationCallback();
+ if (callback == null) {
if (DEBUG) {
Log.d(TAG, view + " doesn't support showing translation because of "
+ "null ViewTranslationCallback.");
}
return;
}
+
+ // TODO: Do this for specific views on request only.
+ callback.enableContentPadding();
+
view.onTranslationResponse(response);
- if (view.getViewTranslationCallback() != null) {
- view.getViewTranslationCallback().onShowTranslation(view);
- }
+ callback.onShowTranslation(view);
});
}
}
@@ -383,12 +386,13 @@ public class UiTranslationController {
* translation when the Translator is created successfully.
*/
@WorkerThread
- private void createTranslatorAndStart(TranslationSpec sourceSpec, TranslationSpec destSpec,
+ private void createTranslatorAndStart(TranslationSpec sourceSpec, TranslationSpec targetSpec,
List<AutofillId> views) {
- final Translator translator = createTranslatorIfNeeded(sourceSpec, destSpec);
+ // Create Translator
+ final Translator translator = createTranslatorIfNeeded(sourceSpec, targetSpec);
if (translator == null) {
- Log.w(TAG, "Can not create Translator for sourceSpec:" + sourceSpec + " destSpec:"
- + destSpec);
+ Log.w(TAG, "Can not create Translator for sourceSpec:" + sourceSpec + " targetSpec:"
+ + targetSpec);
return;
}
onUiTranslationStarted(translator, views);
diff --git a/core/java/android/view/translation/UiTranslationManager.java b/core/java/android/view/translation/UiTranslationManager.java
index 62868acac756..130e07889d84 100644
--- a/core/java/android/view/translation/UiTranslationManager.java
+++ b/core/java/android/view/translation/UiTranslationManager.java
@@ -124,7 +124,7 @@ public final class UiTranslationManager {
* ActivityId)} instead.
*
* @param sourceSpec {@link TranslationSpec} for the data to be translated.
- * @param destSpec {@link TranslationSpec} for the translated data.
+ * @param targetSpec {@link TranslationSpec} for the translated data.
* @param viewIds A list of the {@link View}'s {@link AutofillId} which needs to be translated
* @param taskId the Activity Task id which needs ui translation
* @deprecated Use {@code startTranslation(TranslationSpec, TranslationSpec, List<AutofillId>,
@@ -137,17 +137,17 @@ public final class UiTranslationManager {
@RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION)
@SystemApi
public void startTranslation(@NonNull TranslationSpec sourceSpec,
- @NonNull TranslationSpec destSpec, @NonNull List<AutofillId> viewIds,
+ @NonNull TranslationSpec targetSpec, @NonNull List<AutofillId> viewIds,
int taskId) {
Objects.requireNonNull(sourceSpec);
- Objects.requireNonNull(destSpec);
+ Objects.requireNonNull(targetSpec);
Objects.requireNonNull(viewIds);
if (viewIds.size() == 0) {
throw new IllegalArgumentException("Invalid empty views: " + viewIds);
}
try {
mService.updateUiTranslationStateByTaskId(STATE_UI_TRANSLATION_STARTED, sourceSpec,
- destSpec, viewIds, taskId, mContext.getUserId());
+ targetSpec, viewIds, taskId, mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -157,11 +157,11 @@ public final class UiTranslationManager {
* Request ui translation for a given Views.
*
* @param sourceSpec {@link TranslationSpec} for the data to be translated.
- * @param destSpec {@link TranslationSpec} for the translated data.
+ * @param targetSpec {@link TranslationSpec} for the translated data.
* @param viewIds A list of the {@link View}'s {@link AutofillId} which needs to be translated
* @param activityId the identifier for the Activity which needs ui translation
* @throws IllegalArgumentException if the no {@link View}'s {@link AutofillId} in the list
- * @throws NullPointerException the sourceSpec, destSpec, viewIds, activityId or
+ * @throws NullPointerException the sourceSpec, targetSpec, viewIds, activityId or
* {@link android.app.assist.ActivityId#getToken()} is {@code null}
*
* @hide
@@ -169,11 +169,11 @@ public final class UiTranslationManager {
@RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION)
@SystemApi
public void startTranslation(@NonNull TranslationSpec sourceSpec,
- @NonNull TranslationSpec destSpec, @NonNull List<AutofillId> viewIds,
+ @NonNull TranslationSpec targetSpec, @NonNull List<AutofillId> viewIds,
@NonNull ActivityId activityId) {
// TODO(b/177789967): Return result code or find a way to notify the status.
Objects.requireNonNull(sourceSpec);
- Objects.requireNonNull(destSpec);
+ Objects.requireNonNull(targetSpec);
Objects.requireNonNull(viewIds);
Objects.requireNonNull(activityId);
Objects.requireNonNull(activityId.getToken());
@@ -182,7 +182,7 @@ public final class UiTranslationManager {
}
try {
mService.updateUiTranslationState(STATE_UI_TRANSLATION_STARTED, sourceSpec,
- destSpec, viewIds, activityId.getToken(), activityId.getTaskId(),
+ targetSpec, viewIds, activityId.getToken(), activityId.getTaskId(),
mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -208,7 +208,7 @@ public final class UiTranslationManager {
public void finishTranslation(int taskId) {
try {
mService.updateUiTranslationStateByTaskId(STATE_UI_TRANSLATION_FINISHED,
- null /* sourceSpec */, null /* destSpec*/, null /* viewIds */, taskId,
+ null /* sourceSpec */, null /* targetSpec */, null /* viewIds */, taskId,
mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -232,7 +232,7 @@ public final class UiTranslationManager {
Objects.requireNonNull(activityId);
Objects.requireNonNull(activityId.getToken());
mService.updateUiTranslationState(STATE_UI_TRANSLATION_FINISHED,
- null /* sourceSpec */, null /* destSpec*/, null /* viewIds */,
+ null /* sourceSpec */, null /* targetSpec */, null /* viewIds */,
activityId.getToken(), activityId.getTaskId(), mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -257,7 +257,7 @@ public final class UiTranslationManager {
public void pauseTranslation(int taskId) {
try {
mService.updateUiTranslationStateByTaskId(STATE_UI_TRANSLATION_PAUSED,
- null /* sourceSpec */, null /* destSpec*/, null /* viewIds */, taskId,
+ null /* sourceSpec */, null /* targetSpec */, null /* viewIds */, taskId,
mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -281,7 +281,7 @@ public final class UiTranslationManager {
Objects.requireNonNull(activityId);
Objects.requireNonNull(activityId.getToken());
mService.updateUiTranslationState(STATE_UI_TRANSLATION_PAUSED,
- null /* sourceSpec */, null /* destSpec*/, null /* viewIds */,
+ null /* sourceSpec */, null /* targetSpec */, null /* viewIds */,
activityId.getToken(), activityId.getTaskId(), mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -306,7 +306,7 @@ public final class UiTranslationManager {
public void resumeTranslation(int taskId) {
try {
mService.updateUiTranslationStateByTaskId(STATE_UI_TRANSLATION_RESUMED,
- null /* sourceSpec */, null /* destSpec*/, null /* viewIds */,
+ null /* sourceSpec */, null /* targetSpec */, null /* viewIds */,
taskId, mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -330,7 +330,7 @@ public final class UiTranslationManager {
Objects.requireNonNull(activityId);
Objects.requireNonNull(activityId.getToken());
mService.updateUiTranslationState(STATE_UI_TRANSLATION_RESUMED,
- null /* sourceSpec */, null /* destSpec*/, null /* viewIds */,
+ null /* sourceSpec */, null /* targetSpec */, null /* viewIds */,
activityId.getToken(), activityId.getTaskId(), mContext.getUserId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
diff --git a/core/java/android/view/translation/ViewTranslationCallback.java b/core/java/android/view/translation/ViewTranslationCallback.java
index c8959847d64b..78b4855bc7cf 100644
--- a/core/java/android/view/translation/ViewTranslationCallback.java
+++ b/core/java/android/view/translation/ViewTranslationCallback.java
@@ -48,4 +48,16 @@ public interface ViewTranslationCallback {
* @return {@code true} if the View handles clearing the translation.
*/
boolean onClearTranslation(@NonNull View view);
+
+ /**
+ * Enables padding on the view's original content.
+ * <p>
+ * This is useful when we do not modify the content directly, rather use a mechanism like
+ * {@link android.text.method.TransformationMethod}. If the app misbehaves when the displayed
+ * translation and the underlying content have different sizes, the platform intelligence can
+ * request that the original content be padded to make the sizes match.
+ *
+ * @hide
+ */
+ default void enableContentPadding() {}
}
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index b13cfc02e986..e47129e1d349 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -943,6 +943,13 @@ public class RemoteViews implements Parcelable, Filter {
View target = root.findViewById(viewId);
if (target == null) return;
+ // Ensure that we are applying to an AppWidget root
+ if (!(rootParent instanceof AppWidgetHostView)) {
+ Log.e(LOG_TAG, "setRemoteAdapter can only be used for "
+ + "AppWidgets (root id: " + viewId + ")");
+ return;
+ }
+
if (!(target instanceof AdapterView)) {
Log.e(LOG_TAG, "Cannot call setRemoteAdapter on a view which is not "
+ "an AdapterView (id: " + viewId + ")");
@@ -1008,14 +1015,15 @@ public class RemoteViews implements Parcelable, Filter {
// Ensure that we are applying to an AppWidget root
if (!(rootParent instanceof AppWidgetHostView)) {
- Log.e(LOG_TAG, "SetRemoteViewsAdapterIntent action can only be used for " +
- "AppWidgets (root id: " + viewId + ")");
+ Log.e(LOG_TAG, "setRemoteAdapter can only be used for "
+ + "AppWidgets (root id: " + viewId + ")");
return;
}
+
// Ensure that we are calling setRemoteAdapter on an AdapterView that supports it
if (!(target instanceof AbsListView) && !(target instanceof AdapterViewAnimator)) {
- Log.e(LOG_TAG, "Cannot setRemoteViewsAdapter on a view which is not " +
- "an AbsListView or AdapterViewAnimator (id: " + viewId + ")");
+ Log.e(LOG_TAG, "Cannot setRemoteAdapter on a view which is not "
+ + "an AbsListView or AdapterViewAnimator (id: " + viewId + ")");
return;
}
@@ -1897,31 +1905,49 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- protected @NonNull Object getParameterValue(View view) throws ActionException {
+ protected Object getParameterValue(View view) throws ActionException {
Resources resources = view.getContext().getResources();
try {
switch (this.mResourceType) {
case DIMEN_RESOURCE:
- if (this.type == BaseReflectionAction.INT) {
- return resources.getDimensionPixelSize(this.mResId);
+ switch (this.type) {
+ case BaseReflectionAction.INT:
+ return mResId == 0 ? 0 : resources.getDimensionPixelSize(mResId);
+ case BaseReflectionAction.FLOAT:
+ return mResId == 0 ? 0f : resources.getDimension(mResId);
+ default:
+ throw new ActionException(
+ "dimen resources must be used as INT or FLOAT, "
+ + "not " + this.type);
}
- return resources.getDimension(this.mResId);
case COLOR_RESOURCE:
- switch(this.type) {
+ switch (this.type) {
case BaseReflectionAction.INT:
- return view.getContext().getColor(this.mResId);
+ return mResId == 0 ? 0 : view.getContext().getColor(mResId);
case BaseReflectionAction.COLOR_STATE_LIST:
- return view.getContext().getColorStateList(this.mResId);
+ return mResId == 0
+ ? null : view.getContext().getColorStateList(mResId);
default:
throw new ActionException(
- "color resources must be used as int or ColorStateList, "
- + "not " + this.type);
+ "color resources must be used as INT or COLOR_STATE_LIST,"
+ + " not " + this.type);
}
case STRING_RESOURCE:
- return resources.getText(this.mResId);
+ switch (this.type) {
+ case BaseReflectionAction.CHAR_SEQUENCE:
+ return mResId == 0 ? null : resources.getText(mResId);
+ case BaseReflectionAction.STRING:
+ return mResId == 0 ? null : resources.getString(mResId);
+ default:
+ throw new ActionException(
+ "string resources must be used as STRING or CHAR_SEQUENCE,"
+ + " not " + this.type);
+ }
default:
throw new ActionException("unknown resource type: " + this.mResourceType);
}
+ } catch (ActionException ex) {
+ throw ex;
} catch (Throwable t) {
throw new ActionException(t);
}
@@ -1963,50 +1989,62 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- protected @NonNull Object getParameterValue(View view) throws ActionException {
+ protected Object getParameterValue(View view) throws ActionException {
+ TypedArray typedArray = view.getContext().obtainStyledAttributes(new int[]{mAttrId});
try {
- TypedArray typedArray = view.getContext().obtainStyledAttributes(
- new int[]{this.mAttrId});
- try {
- if (typedArray.getType(0) == TypedValue.TYPE_NULL) {
- throw new ActionException("Attribute 0x" + Integer.toHexString(this.mAttrId)
- + " is not defined");
- }
- switch (this.mResourceType) {
- case DIMEN_RESOURCE:
- if (this.type == BaseReflectionAction.INT) {
+ // When mAttrId == 0, we will depend on the default values below
+ if (mAttrId != 0 && typedArray.getType(0) == TypedValue.TYPE_NULL) {
+ throw new ActionException("Attribute 0x" + Integer.toHexString(this.mAttrId)
+ + " is not defined");
+ }
+ switch (this.mResourceType) {
+ case DIMEN_RESOURCE:
+ switch (this.type) {
+ case BaseReflectionAction.INT:
return typedArray.getDimensionPixelSize(0, 0);
- }
- return typedArray.getDimension(0, 0);
- case COLOR_RESOURCE:
- switch (this.type) {
- case BaseReflectionAction.INT:
- return typedArray.getColor(0, 0);
- case BaseReflectionAction.COLOR_STATE_LIST:
- return typedArray.getColorStateList(0);
- default:
- throw new ActionException(
- "Color attribute 0x" + Integer.toHexString(this.mAttrId)
- + " must be used as int or ColorStateList");
- }
- case STRING_RESOURCE:
- String value = typedArray.getString(0);
- if (value == null) {
- throw new ActionException("Attribute 0x"
- + Integer.toHexString(this.mAttrId)
- + " is not a defined or is not a string");
- }
- return value;
- default:
- // Note: This can only be an implementation error.
- throw new ActionException(
- "Unknown resource type: " + this.mResourceType);
- }
- } finally {
- typedArray.recycle();
+ case BaseReflectionAction.FLOAT:
+ return typedArray.getDimension(0, 0);
+ default:
+ throw new ActionException(
+ "dimen attribute 0x" + Integer.toHexString(this.mAttrId)
+ + " must be used as INT or FLOAT,"
+ + " not " + this.type);
+ }
+ case COLOR_RESOURCE:
+ switch (this.type) {
+ case BaseReflectionAction.INT:
+ return typedArray.getColor(0, 0);
+ case BaseReflectionAction.COLOR_STATE_LIST:
+ return typedArray.getColorStateList(0);
+ default:
+ throw new ActionException(
+ "color attribute 0x" + Integer.toHexString(this.mAttrId)
+ + " must be used as INT or COLOR_STATE_LIST,"
+ + " not " + this.type);
+ }
+ case STRING_RESOURCE:
+ switch (this.type) {
+ case BaseReflectionAction.CHAR_SEQUENCE:
+ return typedArray.getText(0);
+ case BaseReflectionAction.STRING:
+ return typedArray.getString(0);
+ default:
+ throw new ActionException(
+ "string attribute 0x" + Integer.toHexString(this.mAttrId)
+ + " must be used as STRING or CHAR_SEQUENCE,"
+ + " not " + this.type);
+ }
+ default:
+ // Note: This can only be an implementation error.
+ throw new ActionException(
+ "Unknown resource type: " + this.mResourceType);
}
+ } catch (ActionException ex) {
+ throw ex;
} catch (Throwable t) {
throw new ActionException(t);
+ } finally {
+ typedArray.recycle();
}
}
@@ -4511,7 +4549,7 @@ public class RemoteViews implements Parcelable, Filter {
*
* @param viewId The id of the view to change
* @param type The margin being set e.g. {@link #MARGIN_END}
- * @param attr a dimension attribute to apply to the margin.
+ * @param attr a dimension attribute to apply to the margin, or 0 to clear the margin.
*/
public void setViewLayoutMarginAttr(@IdRes int viewId, @MarginType int type,
@AttrRes int attr) {
@@ -4694,6 +4732,8 @@ public class RemoteViews implements Parcelable, Filter {
* The dimension will be resolved from the resources at the time the {@link RemoteViews} is
* (re-)applied.
*
+ * Undefined resources will result in an exception, except 0 which will resolve to 0.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param dimenResource The resource to resolve and pass as argument to the method.
@@ -4728,6 +4768,8 @@ public class RemoteViews implements Parcelable, Filter {
* The dimension will be resolved from the theme attribute at the time the
* {@link RemoteViews} is (re-)applied.
*
+ * Unresolvable attributes will result in an exception, except 0 which will resolve to 0.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param dimenAttr The attribute to resolve and pass as argument to the method.
@@ -4744,6 +4786,8 @@ public class RemoteViews implements Parcelable, Filter {
* The Color will be resolved from the resources at the time the {@link RemoteViews} is (re-)
* applied.
*
+ * Undefined resources will result in an exception, except 0 which will resolve to 0.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param colorResource The resource to resolve and pass as argument to the method.
@@ -4760,6 +4804,8 @@ public class RemoteViews implements Parcelable, Filter {
* The Color will be resolved from the theme attribute at the time the {@link RemoteViews} is
* (re-)applied.
*
+ * Unresolvable attributes will result in an exception, except 0 which will resolve to 0.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param colorAttribute The theme attribute to resolve and pass as argument to the method.
@@ -4838,6 +4884,8 @@ public class RemoteViews implements Parcelable, Filter {
* The ColorStateList will be resolved from the resources at the time the {@link RemoteViews} is
* (re-)applied.
*
+ * Undefined resources will result in an exception, except 0 which will resolve to null.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param colorResource The resource to resolve and pass as argument to the method.
@@ -4855,6 +4903,8 @@ public class RemoteViews implements Parcelable, Filter {
* The ColorStateList will be resolved from the theme attribute at the time the
* {@link RemoteViews} is (re-)applied.
*
+ * Unresolvable attributes will result in an exception, except 0 which will resolve to null.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param colorAttr The theme attribute to resolve and pass as argument to the method.
@@ -4895,6 +4945,8 @@ public class RemoteViews implements Parcelable, Filter {
* The dimension will be resolved from the resources at the time the {@link RemoteViews} is
* (re-)applied.
*
+ * Undefined resources will result in an exception, except 0 which will resolve to 0f.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param dimenResource The resource to resolve and pass as argument to the method.
@@ -4931,6 +4983,8 @@ public class RemoteViews implements Parcelable, Filter {
* The dimension will be resolved from the theme attribute at the time the {@link RemoteViews}
* is (re-)applied.
*
+ * Unresolvable attributes will result in an exception, except 0 which will resolve to 0f.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param dimenAttr The attribute to resolve and pass as argument to the method.
@@ -4992,6 +5046,8 @@ public class RemoteViews implements Parcelable, Filter {
* The CharSequence will be resolved from the resources at the time the {@link RemoteViews} is
* (re-)applied.
*
+ * Undefined resources will result in an exception, except 0 which will resolve to null.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param stringResource The resource to resolve and pass as argument to the method.
@@ -5009,6 +5065,8 @@ public class RemoteViews implements Parcelable, Filter {
* The CharSequence will be resolved from the theme attribute at the time the
* {@link RemoteViews} is (re-)applied.
*
+ * Unresolvable attributes will result in an exception, except 0 which will resolve to null.
+ *
* @param viewId The id of the view on which to call the method.
* @param methodName The name of the method to call.
* @param stringAttribute The attribute to resolve and pass as argument to the method.
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 40c79cf086fc..1953a7687cb9 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -770,6 +770,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
private final boolean mUseInternationalizedInput;
// True if fallback fonts that end up getting used should be allowed to affect line spacing.
/* package */ boolean mUseFallbackLineSpacing;
+ // True if the view text can be padded for compat reasons, when the view is translated.
+ private final boolean mUseTextPaddingForUiTranslation;
@ViewDebug.ExportedProperty(category = "text")
@UnsupportedAppUsage
@@ -1480,6 +1482,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
final int targetSdkVersion = context.getApplicationInfo().targetSdkVersion;
mUseInternationalizedInput = targetSdkVersion >= VERSION_CODES.O;
mUseFallbackLineSpacing = targetSdkVersion >= VERSION_CODES.P;
+ // TODO(b/179693024): Use a ChangeId instead.
+ mUseTextPaddingForUiTranslation = targetSdkVersion <= Build.VERSION_CODES.R;
if (inputMethod != null) {
Class<?> c;
@@ -2372,6 +2376,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
@ViewDebug.CapturedViewProperty
@InspectableProperty
public CharSequence getText() {
+ if (mUseTextPaddingForUiTranslation
+ && mDefaultTranslationCallback != null
+ && mDefaultTranslationCallback.isTextPaddingEnabled()
+ && mDefaultTranslationCallback.isShowingTranslation()) {
+ return mDefaultTranslationCallback.getPaddedText(mText, mTransformed);
+ }
return mText;
}
diff --git a/core/java/android/widget/TextViewTranslationCallback.java b/core/java/android/widget/TextViewTranslationCallback.java
index a479b8ac4760..73f19a7a48c0 100644
--- a/core/java/android/widget/TextViewTranslationCallback.java
+++ b/core/java/android/widget/TextViewTranslationCallback.java
@@ -17,6 +17,7 @@
package android.widget;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.os.Build;
import android.text.method.TranslationTransformationMethod;
import android.util.Log;
@@ -33,7 +34,7 @@ import android.view.translation.ViewTranslationResponse;
*/
public class TextViewTranslationCallback implements ViewTranslationCallback {
- private static final String TAG = "TextViewTranslationCallback";
+ private static final String TAG = "TextViewTranslationCb";
// TODO(b/182433547): remove Build.IS_DEBUGGABLE before ship. Enable the logging in debug build
// to help the debug during the development phase
@@ -41,6 +42,9 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
|| Build.IS_DEBUGGABLE;
private TranslationTransformationMethod mTranslationTransformation;
+ private boolean mIsShowingTranslation = false;
+ private boolean mIsTextPaddingEnabled = false;
+ private CharSequence mPaddedText;
/**
* Invoked by the platform when receiving the successful {@link ViewTranslationResponse} for the
@@ -74,6 +78,7 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
*/
@Override
public boolean onShowTranslation(@NonNull View view) {
+ mIsShowingTranslation = true;
if (mTranslationTransformation != null) {
((TextView) view).setTransformationMethod(mTranslationTransformation);
} else {
@@ -90,6 +95,7 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
*/
@Override
public boolean onHideTranslation(@NonNull View view) {
+ mIsShowingTranslation = false;
// Restore to original text content.
if (mTranslationTransformation != null) {
((TextView) view).setTransformationMethod(
@@ -110,9 +116,9 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
public boolean onClearTranslation(@NonNull View view) {
// Restore to original text content and clear TranslationTransformation
if (mTranslationTransformation != null) {
- ((TextView) view).setTransformationMethod(
- mTranslationTransformation.getOriginalTransformationMethod());
+ onHideTranslation(view);
clearTranslationTransformation();
+ mPaddedText = null;
} else {
if (DEBUG) {
// TODO(b/182433547): remove before S release
@@ -121,4 +127,59 @@ public class TextViewTranslationCallback implements ViewTranslationCallback {
}
return true;
}
+
+ boolean isShowingTranslation() {
+ return mIsShowingTranslation;
+ }
+
+ @Override
+ public void enableContentPadding() {
+ mIsTextPaddingEnabled = true;
+ }
+
+ /**
+ * Returns whether readers of the view text should receive padded text for compatibility
+ * reasons. The view's original text will be padded to match the length of the translated text.
+ */
+ boolean isTextPaddingEnabled() {
+ return mIsTextPaddingEnabled;
+ }
+
+ /**
+ * Returns the view's original text with padding added. If the translated text isn't longer than
+ * the original text, returns the original text itself.
+ *
+ * @param text the view's original text
+ * @param translatedText the view's translated text
+ * @see #isTextPaddingEnabled()
+ */
+ @Nullable
+ CharSequence getPaddedText(CharSequence text, CharSequence translatedText) {
+ if (text == null) {
+ return null;
+ }
+ if (mPaddedText == null) {
+ mPaddedText = computePaddedText(text, translatedText);
+ }
+ return mPaddedText;
+ }
+
+ @NonNull
+ private CharSequence computePaddedText(CharSequence text, CharSequence translatedText) {
+ if (translatedText == null) {
+ return text;
+ }
+ int newLength = translatedText.length();
+ if (newLength <= text.length()) {
+ return text;
+ }
+ StringBuilder sb = new StringBuilder(newLength);
+ sb.append(text);
+ for (int i = text.length(); i < newLength; i++) {
+ sb.append(COMPAT_PAD_CHARACTER);
+ }
+ return sb;
+ }
+
+ private static final char COMPAT_PAD_CHARACTER = '\u2002';
}
diff --git a/core/java/android/window/StartingWindowInfo.java b/core/java/android/window/StartingWindowInfo.java
index 08bb1a957e05..385d6cffa138 100644
--- a/core/java/android/window/StartingWindowInfo.java
+++ b/core/java/android/window/StartingWindowInfo.java
@@ -142,6 +142,12 @@ public final class StartingWindowInfo implements Parcelable {
*/
public boolean isKeyguardOccluded = false;
+ /**
+ * TaskSnapshot.
+ * @hide
+ */
+ public TaskSnapshot mTaskSnapshot;
+
public StartingWindowInfo() {
}
@@ -164,6 +170,7 @@ public final class StartingWindowInfo implements Parcelable {
dest.writeTypedObject(mainWindowLayoutParams, flags);
dest.writeInt(splashScreenThemeResId);
dest.writeBoolean(isKeyguardOccluded);
+ dest.writeTypedObject(mTaskSnapshot, flags);
}
void readFromParcel(@NonNull Parcel source) {
@@ -175,6 +182,7 @@ public final class StartingWindowInfo implements Parcelable {
mainWindowLayoutParams = source.readTypedObject(WindowManager.LayoutParams.CREATOR);
splashScreenThemeResId = source.readInt();
isKeyguardOccluded = source.readBoolean();
+ mTaskSnapshot = source.readTypedObject(TaskSnapshot.CREATOR);
}
@Override
diff --git a/core/java/com/android/internal/app/IAppOpsCallback.aidl b/core/java/com/android/internal/app/IAppOpsCallback.aidl
index 15221b1f0fa7..024ff66a67f6 100644
--- a/core/java/com/android/internal/app/IAppOpsCallback.aidl
+++ b/core/java/com/android/internal/app/IAppOpsCallback.aidl
@@ -17,7 +17,7 @@
package com.android.internal.app;
// This interface is also used by native code, so must
-// be kept in sync with frameworks/native/libs/binder/include/binder/IAppOpsCallback.h
+// be kept in sync with frameworks/native/libs/permission/include/binder/IAppOpsCallback.h
oneway interface IAppOpsCallback {
void opChanged(int op, int uid, String packageName);
}
diff --git a/core/java/com/android/internal/app/IAppOpsService.aidl b/core/java/com/android/internal/app/IAppOpsService.aidl
index 8a6856e3b51b..281702eebc2b 100644
--- a/core/java/com/android/internal/app/IAppOpsService.aidl
+++ b/core/java/com/android/internal/app/IAppOpsService.aidl
@@ -33,7 +33,7 @@ import com.android.internal.app.MessageSamplingConfig;
interface IAppOpsService {
// These methods are also called by native code, so must
- // be kept in sync with frameworks/native/libs/binder/include/binder/IAppOpsService.h
+ // be kept in sync with frameworks/native/libs/permission/include/binder/IAppOpsService.h
// and not be reordered
int checkOperation(int code, int uid, String packageName);
SyncNotedAppOp noteOperation(int code, int uid, String packageName, @nullable String attributionTag,
diff --git a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
index 5a5e745c2426..dddc08a88062 100644
--- a/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
+++ b/core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl
@@ -261,4 +261,11 @@ interface IVoiceInteractionManagerService {
in AudioFormat audioFormat,
in PersistableBundle options,
in IMicrophoneHotwordDetectionVoiceInteractionCallback callback);
+
+ /**
+ * Test API to simulate to trigger hardware recognition event for test.
+ */
+ void triggerHardwareRecognitionEventForTest(
+ in SoundTrigger.KeyphraseRecognitionEvent event,
+ in IHotwordRecognitionStatusCallback callback);
}
diff --git a/core/java/com/android/internal/infra/AbstractRemoteService.java b/core/java/com/android/internal/infra/AbstractRemoteService.java
index f63ac2e14e20..8b24f6451ccf 100644
--- a/core/java/com/android/internal/infra/AbstractRemoteService.java
+++ b/core/java/com/android/internal/infra/AbstractRemoteService.java
@@ -88,7 +88,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
private final int mBindingFlags;
protected I mService;
- private boolean mBinding;
+ private boolean mConnecting;
private boolean mDestroyed;
private boolean mServiceDied;
private boolean mCompleted;
@@ -228,7 +228,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
if (mService != null) {
mService.asBinder().unlinkToDeath(this, 0);
}
- mBinding = false;
+ mConnecting = true;
mService = null;
mServiceDied = true;
cancelScheduledUnbind();
@@ -435,10 +435,10 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
}
private void handleEnsureBound() {
- if (handleIsBound() || mBinding) return;
+ if (handleIsBound() || mConnecting) return;
if (mVerbose) Slog.v(mTag, "ensureBound()");
- mBinding = true;
+ mConnecting = true;
final int flags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE
| Context.BIND_INCLUDE_CAPABILITIES | mBindingFlags;
@@ -448,7 +448,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
if (!willBind) {
Slog.w(mTag, "could not bind to " + mIntent + " using flags " + flags);
- mBinding = false;
+ mConnecting = false;
if (!mServiceDied) {
handleBinderDied();
@@ -457,10 +457,10 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
}
private void handleEnsureUnbound() {
- if (!handleIsBound() && !mBinding) return;
+ if (!handleIsBound() && !mConnecting) return;
if (mVerbose) Slog.v(mTag, "ensureUnbound()");
- mBinding = false;
+ mConnecting = false;
if (handleIsBound()) {
handleOnConnectedStateChangedInternal(false);
if (mService != null) {
@@ -476,12 +476,12 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
if (mVerbose) Slog.v(mTag, "onServiceConnected()");
- if (mDestroyed || !mBinding) {
+ if (mDestroyed || !mConnecting) {
// This is abnormal. Unbinding the connection has been requested already.
Slog.wtf(mTag, "onServiceConnected() was dispatched after unbindService.");
return;
}
- mBinding = false;
+ mConnecting = false;
try {
service.linkToDeath(AbstractRemoteService.this, 0);
} catch (RemoteException re) {
@@ -496,7 +496,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I
@Override
public void onServiceDisconnected(ComponentName name) {
if (mVerbose) Slog.v(mTag, "onServiceDisconnected()");
- mBinding = true;
+ mConnecting = true;
mService = null;
}
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index cb1900f300c0..82ec737de267 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -6951,7 +6951,8 @@ public class BatteryStatsImpl extends BatteryStats {
/**
* Returns the names of custom power components.
*/
- public @NonNull String[] getCustomPowerComponentNames() {
+ @Override
+ public @NonNull String[] getCustomEnergyConsumerNames() {
if (mGlobalMeasuredEnergyStats == null) {
return new String[0];
}
@@ -12087,7 +12088,7 @@ public class BatteryStatsImpl extends BatteryStats {
/**
* Distribute Bluetooth energy info and network traffic to apps.
*
- * @param info The energy information from the bluetooth controller.
+ * @param info The accumulated energy information from the bluetooth controller.
*/
public void updateBluetoothStateLocked(@Nullable final BluetoothActivityEnergyInfo info,
final long consumedChargeUC, long elapsedRealtimeMs, long uptimeMs) {
@@ -12099,9 +12100,6 @@ public class BatteryStatsImpl extends BatteryStats {
return;
}
if (!mOnBatteryInternal || mIgnoreNextExternalStats) {
- // TODO(174818545): mLastBluetoothActivityInfo is actually extremely suspicious.
- // Firstly, the following line was originally missing. But even more so, BESW says that
- // info is a delta, not a total, so this entire algorithm requires review.
mLastBluetoothActivityInfo.set(info);
return;
}
diff --git a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
index c3986c27e4ba..9ad7c15b9a9c 100644
--- a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
+++ b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
@@ -21,6 +21,7 @@ import android.hardware.SensorManager;
import android.os.BatteryStats;
import android.os.BatteryUsageStats;
import android.os.BatteryUsageStatsQuery;
+import android.os.SystemClock;
import android.os.UidBatteryConsumer;
import android.util.SparseArray;
@@ -36,12 +37,12 @@ import java.util.Map;
*/
public class BatteryUsageStatsProvider {
private final Context mContext;
- private final BatteryStatsImpl mStats;
+ private final BatteryStats mStats;
private final PowerProfile mPowerProfile;
private final Object mLock = new Object();
private List<PowerCalculator> mPowerCalculators;
- public BatteryUsageStatsProvider(Context context, BatteryStatsImpl stats) {
+ public BatteryUsageStatsProvider(Context context, BatteryStats stats) {
mContext = context;
mStats = stats;
mPowerProfile = new PowerProfile(mContext);
@@ -97,7 +98,7 @@ public class BatteryUsageStatsProvider {
allowableStatsAge = Math.min(allowableStatsAge, query.getMaxStatsAge());
}
- return mStats.mClocks.elapsedRealtime() - lastUpdateTimeStampMs > allowableStatsAge;
+ return elapsedRealtime() - lastUpdateTimeStampMs > allowableStatsAge;
}
/**
@@ -120,10 +121,10 @@ public class BatteryUsageStatsProvider {
*/
@VisibleForTesting
public BatteryUsageStats getBatteryUsageStats(BatteryUsageStatsQuery query) {
- final long realtimeUs = mStats.mClocks.elapsedRealtime() * 1000;
- final long uptimeUs = mStats.mClocks.uptimeMillis() * 1000;
+ final long realtimeUs = elapsedRealtime() * 1000;
+ final long uptimeUs = uptimeMillis() * 1000;
- final String[] customPowerComponentNames = mStats.getCustomPowerComponentNames();
+ final String[] customPowerComponentNames = mStats.getCustomEnergyConsumerNames();
// TODO(b/174186358): read extra time component number from configuration
final int customTimeComponentCount = 0;
@@ -154,16 +155,22 @@ public class BatteryUsageStatsProvider {
if ((query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY) != 0) {
+ if (!(mStats instanceof BatteryStatsImpl)) {
+ throw new UnsupportedOperationException(
+ "History cannot be included for " + getClass().getName());
+ }
+
+ BatteryStatsImpl batteryStatsImpl = (BatteryStatsImpl) mStats;
ArrayList<BatteryStats.HistoryTag> tags = new ArrayList<>(
- mStats.mHistoryTagPool.size());
+ batteryStatsImpl.mHistoryTagPool.size());
for (Map.Entry<BatteryStats.HistoryTag, Integer> entry :
- mStats.mHistoryTagPool.entrySet()) {
+ batteryStatsImpl.mHistoryTagPool.entrySet()) {
final BatteryStats.HistoryTag tag = entry.getKey();
tag.poolIdx = entry.getValue();
tags.add(tag);
}
- batteryUsageStatsBuilder.setBatteryHistory(mStats.mHistoryBuffer, tags);
+ batteryUsageStatsBuilder.setBatteryHistory(batteryStatsImpl.mHistoryBuffer, tags);
}
return batteryUsageStatsBuilder.build();
@@ -199,4 +206,20 @@ public class BatteryUsageStatsProvider {
return uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_BACKGROUND, realtimeUs,
BatteryStats.STATS_SINCE_CHARGED) / 1000;
}
+
+ private long elapsedRealtime() {
+ if (mStats instanceof BatteryStatsImpl) {
+ return ((BatteryStatsImpl) mStats).mClocks.elapsedRealtime();
+ } else {
+ return SystemClock.elapsedRealtime();
+ }
+ }
+
+ private long uptimeMillis() {
+ if (mStats instanceof BatteryStatsImpl) {
+ return ((BatteryStatsImpl) mStats).mClocks.uptimeMillis();
+ } else {
+ return SystemClock.uptimeMillis();
+ }
+ }
}
diff --git a/core/java/com/android/internal/os/BinderLatencyObserver.java b/core/java/com/android/internal/os/BinderLatencyObserver.java
index 4ca59be4877a..007980150237 100644
--- a/core/java/com/android/internal/os/BinderLatencyObserver.java
+++ b/core/java/com/android/internal/os/BinderLatencyObserver.java
@@ -157,7 +157,10 @@ public class BinderLatencyObserver {
FrameworkStatsLog.BINDER_LATENCY_REPORTED,
atom.getBytes(),
mPeriodicSamplingInterval,
- 1);
+ 1,
+ mBucketCount,
+ mFirstBucketSize,
+ mBucketScaleFactor);
}
private void noteLatencyDelayed() {
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index 1673362028f9..993e4e7b4b3d 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -149,8 +149,11 @@ class ZygoteConnection {
return null;
}
- if (parsedArgs.mUsapPoolStatusSpecified) {
- // Handle this once we've released the argBuffer, to avoid opening a second one.
+ if (parsedArgs.mUsapPoolStatusSpecified
+ || parsedArgs.mApiDenylistExemptions != null
+ || parsedArgs.mHiddenApiAccessLogSampleRate != -1
+ || parsedArgs.mHiddenApiAccessStatslogSampleRate != -1) {
+ // Handle these once we've released argBuffer, to avoid opening a second one.
break;
}
@@ -183,18 +186,6 @@ class ZygoteConnection {
return null;
}
- if (parsedArgs.mApiDenylistExemptions != null) {
- return handleApiDenylistExemptions(zygoteServer,
- parsedArgs.mApiDenylistExemptions);
- }
-
- if (parsedArgs.mHiddenApiAccessLogSampleRate != -1
- || parsedArgs.mHiddenApiAccessStatslogSampleRate != -1) {
- return handleHiddenApiAccessLogSampleRate(zygoteServer,
- parsedArgs.mHiddenApiAccessLogSampleRate,
- parsedArgs.mHiddenApiAccessStatslogSampleRate);
- }
-
if (parsedArgs.mPermittedCapabilities != 0
|| parsedArgs.mEffectiveCapabilities != 0) {
throw new ZygoteSecurityException("Client may not specify capabilities: "
@@ -311,10 +302,20 @@ class ZygoteConnection {
}
}
}
+ // Handle anything that may need a ZygoteCommandBuffer after we've released ours.
if (parsedArgs.mUsapPoolStatusSpecified) {
- // Now that we've released argBuffer:
return handleUsapPoolStatusChange(zygoteServer, parsedArgs.mUsapPoolEnabled);
}
+ if (parsedArgs.mApiDenylistExemptions != null) {
+ return handleApiDenylistExemptions(zygoteServer,
+ parsedArgs.mApiDenylistExemptions);
+ }
+ if (parsedArgs.mHiddenApiAccessLogSampleRate != -1
+ || parsedArgs.mHiddenApiAccessStatslogSampleRate != -1) {
+ return handleHiddenApiAccessLogSampleRate(zygoteServer,
+ parsedArgs.mHiddenApiAccessLogSampleRate,
+ parsedArgs.mHiddenApiAccessStatslogSampleRate);
+ }
throw new AssertionError("Shouldn't get here");
}
diff --git a/core/java/com/android/internal/util/LatencyTracker.java b/core/java/com/android/internal/util/LatencyTracker.java
index 90c728293eb0..61a5014177a3 100644
--- a/core/java/com/android/internal/util/LatencyTracker.java
+++ b/core/java/com/android/internal/util/LatencyTracker.java
@@ -95,6 +95,11 @@ public class LatencyTracker {
*/
public static final int ACTION_START_RECENTS_ANIMATION = 8;
+ /**
+ * Time it takes the sensor to detect rotation.
+ */
+ public static final int ACTION_ROTATE_SCREEN_SENSOR = 9;
+
private static final int[] ACTIONS_ALL = {
ACTION_EXPAND_PANEL,
ACTION_TOGGLE_RECENTS,
@@ -104,7 +109,8 @@ public class LatencyTracker {
ACTION_TURN_ON_SCREEN,
ACTION_ROTATE_SCREEN,
ACTION_FACE_WAKE_AND_UNLOCK,
- ACTION_START_RECENTS_ANIMATION
+ ACTION_START_RECENTS_ANIMATION,
+ ACTION_ROTATE_SCREEN_SENSOR
};
/** @hide */
@@ -117,7 +123,8 @@ public class LatencyTracker {
ACTION_TURN_ON_SCREEN,
ACTION_ROTATE_SCREEN,
ACTION_FACE_WAKE_AND_UNLOCK,
- ACTION_START_RECENTS_ANIMATION
+ ACTION_START_RECENTS_ANIMATION,
+ ACTION_ROTATE_SCREEN_SENSOR
})
@Retention(RetentionPolicy.SOURCE)
public @interface Action {
@@ -133,6 +140,7 @@ public class LatencyTracker {
FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_ROTATE_SCREEN,
FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_FACE_WAKE_AND_UNLOCK,
FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_START_RECENTS_ANIMATION,
+ FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_ROTATE_SCREEN_SENSOR
};
private static LatencyTracker sLatencyTracker;
@@ -209,6 +217,8 @@ public class LatencyTracker {
return "ACTION_FACE_WAKE_AND_UNLOCK";
case 9:
return "ACTION_START_RECENTS_ANIMATION";
+ case 11:
+ return "ACTION_ROTATE_SCREEN_SENSOR";
default:
throw new IllegalArgumentException("Invalid action");
}
diff --git a/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java b/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java
index 934241acd851..75bf1ce136c9 100644
--- a/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java
+++ b/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java
@@ -105,6 +105,14 @@ public class RecyclerViewCaptureHelper implements ScrollCaptureViewHelper<ViewGr
int prevAnchorTop = anchor.getTop();
// Note: requestChildRectangleOnScreen may modify rectangle, must pass pass in a copy here
Rect input = new Rect(requestedContentBounds);
+ // Expand input rect to get the requested rect to be in the center
+ int remainingHeight = recyclerView.getHeight() - recyclerView.getPaddingTop()
+ - recyclerView.getPaddingBottom() - input.height();
+ if (remainingHeight > 0) {
+ input.inset(0, -remainingHeight / 2);
+ }
+ Log.d(TAG, "input (post center adjustment) = " + input);
+
if (recyclerView.requestChildRectangleOnScreen(anchor, input, true)) {
int scrolled = prevAnchorTop - anchor.getTop(); // inverse of movement
Log.d(TAG, "RecyclerView scrolled by " + scrolled + " px");
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 4194acbfe015..27f82f1b52dd 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -394,6 +394,14 @@ static void nativeDisconnect(JNIEnv* env, jclass clazz, jlong nativeObject) {
}
}
+static void nativeSetDefaultBufferSize(JNIEnv* env, jclass clazz, jlong nativeObject,
+ jint width, jint height) {
+ SurfaceControl* const ctrl = reinterpret_cast<SurfaceControl *>(nativeObject);
+ if (ctrl != NULL) {
+ ctrl->updateDefaultBufferSize(width, height);
+ }
+}
+
static Rect rectFromObj(JNIEnv* env, jobject rectObj) {
int left = env->GetIntField(rectObj, gRectClassInfo.left);
int top = env->GetIntField(rectObj, gRectClassInfo.top);
@@ -1771,6 +1779,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = {
(void*)nativeRelease },
{"nativeDisconnect", "(J)V",
(void*)nativeDisconnect },
+ {"nativeUpdateDefaultBufferSize", "(JII)V",
+ (void*)nativeSetDefaultBufferSize},
{"nativeCreateTransaction", "()J",
(void*)nativeCreateTransaction },
{"nativeApplyTransaction", "(JZ)V",
diff --git a/core/proto/android/internal/binder_latency.proto b/core/proto/android/internal/binder_latency.proto
index e32c3e3441c5..8b11f5b34645 100644
--- a/core/proto/android/internal/binder_latency.proto
+++ b/core/proto/android/internal/binder_latency.proto
@@ -34,6 +34,7 @@ message Dims {
UNKNOWN_PROCESS_SOURCE = 0;
SYSTEM_SERVER = 1;
TELEPHONY = 2;
+ BLUETOOTH = 3;
}
enum ServiceClassName {
@@ -74,4 +75,19 @@ message ApiStats {
// Stores the count of samples for each bucket. The number of buckets and
// their sizes are controlled server side with a flag.
repeated int32 buckets = 3;
-} \ No newline at end of file
+
+ // Params for histogram buckets.
+ // The number of buckets in the histogram. Store this value separately
+ // as the tail of empty buckets is truncated when stored in the proto to
+ // conserve space. Thus it is not possible to infer this value from there.
+ optional int32 bucket_count = 4;
+
+ // The size (upper bound) of the first bucket (used to avoid creating an
+ // excessive amount of small buckets). E.g. for first_bucket_size of 5, the
+ // first bucket will be [0, 5) and the second will be [5, 5 * scaleFactor).
+ optional int32 first_bucket_size = 5;
+
+ // The rate in which each consecutive bucket increases (before rounding).
+ // Implemented in: com.android.internal.os.BinderLatencyBuckets.
+ optional float scale_factor = 6;
+}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 925a212d10cb..9d65e71317c5 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -4099,6 +4099,15 @@
<permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES"
android:protectionLevel="signature|privileged" />
+ <!-- Allows an application to use the package installer v2 APIs.
+ <p>The package installer v2 APIs are still a work in progress and we're
+ currently validating they work in all scenarios.
+ <p>Not for use by third-party applications.
+ @hide
+ -->
+ <permission android:name="com.android.permission.USE_INSTALLER_V2"
+ android:protectionLevel="signature|installer" />
+
<!-- Allows an application to use System Data Loaders.
<p>Not for use by third-party applications.
@hide
@@ -5673,12 +5682,12 @@
<permission android:name="android.permission.CONTROL_DEVICE_STATE"
android:protectionLevel="signature" />
- <!-- Must be required by a
- {@link android.service.displayhash.DisplayHasherService}
+ <!-- @hide @SystemApi Must be required by a
+ {@link android.service.displayhash.DisplayHashingService}
to ensure that only the system can bind to it.
- @hide This is not a third-party API (intended for OEMs and system apps).
+ This is not a third-party API (intended for OEMs and system apps).
-->
- <permission android:name="android.permission.BIND_DISPLAY_HASHER_SERVICE"
+ <permission android:name="android.permission.BIND_DISPLAY_HASHING_SERVICE"
android:protectionLevel="signature" />
<!-- @hide @TestApi Allows an application to enable/disable toast rate limiting.
diff --git a/core/res/res/drawable/btn_borderless_material.xml b/core/res/res/drawable/btn_borderless_material.xml
index 1a0912ee47dc..08e1060ebad3 100644
--- a/core/res/res/drawable/btn_borderless_material.xml
+++ b/core/res/res/drawable/btn_borderless_material.xml
@@ -15,8 +15,7 @@
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="?attr/colorControlHighlight"
- android:rippleStyle="?attr/rippleStyle">
+ android:color="?attr/colorControlHighlight">
<item android:id="@id/mask"
android:drawable="@drawable/btn_default_mtrl_shape" />
</ripple>
diff --git a/core/res/res/drawable/btn_colored_material.xml b/core/res/res/drawable/btn_colored_material.xml
index 5274ef2f6dce..7ba21e840a59 100644
--- a/core/res/res/drawable/btn_colored_material.xml
+++ b/core/res/res/drawable/btn_colored_material.xml
@@ -19,8 +19,7 @@
android:insetTop="@dimen/button_inset_vertical_material"
android:insetRight="@dimen/button_inset_horizontal_material"
android:insetBottom="@dimen/button_inset_vertical_material">
- <ripple android:color="?attr/colorControlHighlight"
- android:rippleStyle="?attr/rippleStyle">
+ <ripple android:color="?attr/colorControlHighlight">
<item>
<shape android:shape="rectangle"
android:tint="@color/btn_colored_background_material">
diff --git a/core/res/res/drawable/btn_default_material.xml b/core/res/res/drawable/btn_default_material.xml
index 6a9e62110ba4..ed2b5aacb236 100644
--- a/core/res/res/drawable/btn_default_material.xml
+++ b/core/res/res/drawable/btn_default_material.xml
@@ -15,7 +15,6 @@
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="?attr/colorControlHighlight"
- android:rippleStyle="?attr/rippleStyle">
+ android:color="?attr/colorControlHighlight">
<item android:drawable="@drawable/btn_default_mtrl_shape" />
</ripple>
diff --git a/core/res/res/drawable/btn_toggle_material.xml b/core/res/res/drawable/btn_toggle_material.xml
index 7cee3820172b..8b19e4ae3561 100644
--- a/core/res/res/drawable/btn_toggle_material.xml
+++ b/core/res/res/drawable/btn_toggle_material.xml
@@ -21,8 +21,7 @@
android:insetBottom="@dimen/button_inset_vertical_material">
<layer-list android:paddingMode="stack">
<item>
- <ripple android:color="?attr/colorControlHighlight"
- android:rippleStyle="?attr/rippleStyle">
+ <ripple android:color="?attr/colorControlHighlight">
<item>
<shape android:shape="rectangle"
android:tint="?attr/colorButtonNormal">
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 5d260d54b30c..445bac5dffa8 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Maak toe"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Antwoord"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Wys af"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Lui af"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Inkomende oproep"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index d7a0b160c421..a78c0e351690 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -2248,7 +2248,7 @@
<item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> و<xliff:g id="COUNT_3">%d</xliff:g> ملف</item>
<item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> وملف (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
</plurals>
- <string name="chooser_no_direct_share_targets" msgid="1511722103987329028">"ليس هناك أشخاص مقترحون للمشاركة معهم"</string>
+ <string name="chooser_no_direct_share_targets" msgid="1511722103987329028">"ليس هناك أشخاص مقترحون للمشاركة معهم."</string>
<string name="chooser_all_apps_button_label" msgid="3230427756238666328">"قائمة التطبيقات"</string>
<string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"‏لم يتم منح هذا التطبيق إذن تسجيل، ولكن يمكنه تسجيل الصوت من خلال جهاز USB هذا."</string>
<string name="accessibility_system_action_home_label" msgid="3234748160850301870">"الشاشة الرئيسية"</string>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index e7bee00cef02..4d6b0b78a806 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"আপোনাৰ প্ৰশাসকে আপেডট কৰিছে"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"আপোনাৰ প্ৰশাসকে মচিছে"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"ঠিক আছে"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"বেটাৰী সঞ্চয়কাৰীয়ে গাঢ় থীম অন কৰে আৰু নেপথ্যৰ কাৰ্যকলাপ, কিছুমান ভিজুৱেল ইফেক্ট আৰু “Hey Google”ৰ দৰে সুবিধাসমূহ অফ কৰে অথবা সীমাবদ্ধ কৰে\n\n"<annotation id="url">"অধিক জানক"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"বেটাৰী সঞ্চয়কাৰীয়ে গাঢ় থীম অন কৰে আৰু নেপথ্যৰ কাৰ্যকলাপ, কিছুমান ভিজুৱেল ইফেক্ট আৰু “Hey Google”ৰ দৰে সুবিধাসমূহ অফ কৰে অথবা সীমাবদ্ধ কৰে।"</string>
<string name="data_saver_description" msgid="4995164271550590517">"ডেটা ব্য়ৱহাৰ মাত্ৰা কম কৰিবৰ বাবে ডেটা সঞ্চয়কাৰীয়ে কিছুমান এপক নেপথ্য়ত ডেটা প্ৰেৰণ বা সংগ্ৰহ কৰাত বাধা প্ৰদান কৰে। আপুনি বৰ্তমান ব্য়ৱহাৰ কৰি থকা এটা এপে ডেটা ব্য়ৱহাৰ কৰিব পাৰে, কিন্তু সঘনাই এই কার্য কৰিব নোৱাৰিব পাৰে। ইয়াৰ অৰ্থ এইয়ে হ\'ব পাৰে যে, উদাহৰণস্বৰূপে, আপুনি নিটিপা পর্যন্ত প্ৰতিচ্ছবিসমূহ দেখুওৱা নহ’ব।"</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"ডেটা সঞ্চয়কাৰী অন কৰিবনে?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"অন কৰক"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"এই জাননীটোৰ গুৰুত্ব নীৰৱলৈ হ্ৰাস কৰা হৈছে। মতামত দিবলৈ টিপক।"</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"এই জাননীটোৰ স্থান ওপৰলৈ কৰা হৈছে। মতামত দিবলৈ টিপক।"</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"এই জাননীটোৰ স্থান তললৈ কৰা হৈছে। মতামত দিবলৈ টিপক।"</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"উন্নত জাননী ব্যৱহাৰ কৰি চাওক"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"পৰামৰ্শ দিয়া কাৰ্য, প্ৰত্যুত্তৰ আৰু বহুতো সুবিধা পাই থাকিবলৈ উন্নত জাননী অন কৰক। Androidৰ অভিযোজিত জাননী আৰু সমৰ্থিত নহয়।"</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"অন কৰক"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"এতিয়া নহয়"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"অধিক জানক"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"উন্নত প্ৰত্যুত্তৰে সম্পৰ্কৰ নাম আৰু বাৰ্তাৰ দৰে ব্যক্তিগত তথ্যৰ লগতে আটাইবোৰ জাননীৰ সমল পঢ়িব পাৰে। এই সুবিধাটোৱে জাননী অগ্ৰাহ্য কৰাৰ লগতে জাননীত থকা ফ’ন কলৰ উত্তৰ দিয়াৰ দৰে কাৰ্য বুটামৰ ওপৰত কাৰ্যব্যৱস্থা ল’ব পাৰে।\n\nলগতে, এই সুবিধাটোৱে অগ্ৰাধিকাৰ দিয়া ম’ড অন অথবা অফ কৰিব পাৰে আৰু সম্পৰ্কিত ছেটিং সলনি কৰিব পাৰে।"</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ৰুটিন ম’ডৰ তথ্য জাননী"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"চ্চাৰ্জ কৰাৰ সচৰাচৰ সময়ৰ আগতেই বেটাৰি শেষ হ’ব পাৰে"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"বেটাৰিৰ খৰচ কমাবলৈ বেটাৰি সঞ্চয়কাৰী অন কৰা হৈছে"</string>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 00867b6de739..69e04008a604 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -1242,7 +1242,7 @@
<string name="unsupported_display_size_show" msgid="980129850974919375">"Həmişə göstərin"</string>
<string name="unsupported_compile_sdk_message" msgid="7326293500707890537">"<xliff:g id="APP_NAME">%1$s</xliff:g> Android OS sisteminin uyğunsuz versiyası üçün hazırlandı və gözlənilməz şəkildə davrana bilər. Tətbiqin güncəllənmiş versiyası əlçatan ola bilər."</string>
<string name="unsupported_compile_sdk_show" msgid="1601210057960312248">"Həmişə göstərin"</string>
- <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Güncəlləməni yoxlayın"</string>
+ <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Güncəllənmə olmasını yoxlayın"</string>
<string name="smv_application" msgid="3775183542777792638">"Tətbiq <xliff:g id="APPLICATION">%1$s</xliff:g> (proses <xliff:g id="PROCESS">%2$s</xliff:g>) StrictMode siyasətini pozdu."</string>
<string name="smv_process" msgid="1398801497130695446">"<xliff:g id="PROCESS">%1$s</xliff:g> prosesi StrictMode siyasətini pozdu."</string>
<string name="android_upgrading_title" product="default" msgid="7279077384220829683">"Telefon yenilənir…"</string>
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Qapadın"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Cavab verin"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"İmtina edin"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Dəstəyi asın"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Gələn zəng"</string>
@@ -1963,7 +1962,7 @@
<string name="app_blocked_title" msgid="7353262160455028160">"Tətbiq əlçatan deyil"</string>
<string name="app_blocked_message" msgid="542972921087873023">"<xliff:g id="APP_NAME">%1$s</xliff:g> hazırda əlçatan deyil."</string>
<string name="deprecated_target_sdk_message" msgid="5203207875657579953">"Bu tətbiq köhnə Android versiyası üçün hazırlanıb və düzgün işləməyə bilər. Güncəlləməni yoxlayın və ya developer ilə əlaqə saxlayın."</string>
- <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Güncəlləməni yoxlayın"</string>
+ <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Güncəllənmə olmasını yoxlayın"</string>
<string name="new_sms_notification_title" msgid="6528758221319927107">"Yeni mesajlarınız var"</string>
<string name="new_sms_notification_content" msgid="3197949934153460639">"Baxmaq üçün SMS tətbiqini açın"</string>
<string name="profile_encrypted_title" msgid="9001208667521266472">"Bəzi funksiyalar məhdudlaşdırıla bilər"</string>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index df8aa33eeb06..5a7e890bfce1 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -1960,8 +1960,7 @@
<string name="close_button_text" msgid="10603510034455258">"Zatvori"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Odgovori"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Odbij"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Prekini vezu"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Dolazni poziv"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 9aa0aea67513..5b8a81cba403 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Затваряне"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"„<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>“: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Отговор"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Видеообаждане"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Отхвърляне"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Затваряне"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Входящо обаждане"</string>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 7f1a81d6bbd6..57f215712dd9 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"আপনার প্রশাসক আপডেট করেছেন"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"আপনার প্রশাসক মুছে দিয়েছেন"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"ঠিক আছে"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"ব্যাটারি সেভার ডার্ক থিম চালু করে এবং ব্যাকগ্রাউন্ড অ্যাক্টিভিটি, কিছু ভিজ্যুয়াল এফেক্ট এবং “Ok Google”-এর মতো ফিচার সীমিত করে বা বন্ধ করে দেয়\n\n"<annotation id="url">"আরও জানুন"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"ব্যাটারি সেভার ডার্ক থিম চালু করে এবং ব্যাকগ্রাউন্ড অ্যাক্টিভিটি, কিছু ভিজ্যুয়াল এফেক্ট এবং “Ok Google”-এর মতো ফিচার সীমিত করে বা বন্ধ করে দেয়।"</string>
<string name="data_saver_description" msgid="4995164271550590517">"ডেটার ব্যবহার কমাতে সহায়তা করার জন্য, ডেটা সেভার ব্যাকগ্রাউন্ডে কিছু অ্যাপ্লিকেশনকে ডেটা পাঠাতে বা গ্রহণ করতে বাধা দেয়৷ আপনি বর্তমানে এমন একটি অ্যাপ্লিকেশন ব্যবহার করছেন যেটি ডেটা অ্যাক্সেস করতে পারে, তবে সেটি কমই করে৷ এর ফলে যা হতে পারে, উদাহরণস্বরূপ, আপনি ছবির উপর ট্যাপ না করা পর্যন্ত সেগুলি দেখানো হবে না৷"</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"ডেটা সেভার চালু করবেন?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"চালু করুন"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"এই বিজ্ঞপ্তির গুরুত্ব কমিয়ে মিউট হিসেবে সেট করা হয়েছে। মতামত জানাতে ট্যাপ করুন।"</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"এই বিজ্ঞপ্তির গুরুত্ব বাড়ানো হয়েছে। মতামত জানাতে ট্যাপ করুন।"</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"এই বিজ্ঞপ্তির গুরুত্ব কমানো হয়েছে। মতামত জানাতে ট্যাপ করুন।"</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"উন্নত নোটিফিকেশন ব্যবহার করুন"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"সাজেস্ট করা অ্যাকশন, উত্তর এবং আরও অনেক কিছু পাওয়া চালিয়ে যেতে, উন্নত নোটিফিকেশন পাওয়ার সুবিধা চালু করুন। Android অ্যাডাপ্টিভ নোটিফিকেশন আর কাজ করবে না।"</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"চালু করুন"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"এখন নয়"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"আরও জানুন"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"উন্নত নোটিফিকেশন পরিচিতির নাম এবং মেসেজের মতো ব্যক্তিগত তথ্য ছাড়াও নোটিফিকেশনের সবকটি কন্টেন্ট পড়তে পারবে। এছাড়াও, এই ফিচার নোটিফিকেশন বাতিল করতে পারবে এবং নোটিফিকেশনে থাকা বোতামের সাহায্যে অ্যাকশন নিতে পারবে, যেমন ফোন কলের উত্তর দেওয়া।\n\nএই ফিচার প্রায়োরিটি মোড চালু বা বন্ধ করতে এবং সেই সম্পর্কিত সেটিংস পরিবর্তনও করতে পারবে।"</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"রুটিন মোডের তথ্য সংক্রান্ত বিজ্ঞপ্তি"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"সাধারণত যখন চার্জ দেন, তার আগে চার্জ শেষ হয়ে যেতে পারে"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ডিভাইস বেশিক্ষণ চালু রাখতে ব্যাটারি সেভার চালু করা হয়েছে"</string>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index 315efea85af9..195b8f7c903b 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -1960,8 +1960,7 @@
<string name="close_button_text" msgid="10603510034455258">"Zatvori"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Odgovori"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Videozapis"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Odbaci"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Prekini vezu"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Dolazni poziv"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 9f20b5e36b83..7fd2ede8ce0f 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Tanca"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Respon"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Vídeo"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Rebutja"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Penja"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Trucada entrant"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index e0c537611c55..04489545885c 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -1734,13 +1734,13 @@
<string name="accessibility_shortcut_off" msgid="3651336255403648739">"Nezapínat"</string>
<string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"ZAP"</string>
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"VYP"</string>
- <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Chcete službě <xliff:g id="SERVICE">%1$s</xliff:g> povolit, aby nad vaším zařízením měla plnou kontrolu?"</string>
+ <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Chcete službě <xliff:g id="SERVICE">%1$s</xliff:g> povolit plnou kontrolu nad vaším zařízením?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Pokud zapnete službu <xliff:g id="SERVICE">%1$s</xliff:g>, zařízení nebude používat zámek obrazovky k vylepšení šifrování dat."</string>
- <string name="accessibility_service_warning_description" msgid="291674995220940133">"Plná kontrola je vhodná u aplikací, které vám pomáhají s usnadněním přístupu, nikoli u většiny aplikací."</string>
+ <string name="accessibility_service_warning_description" msgid="291674995220940133">"Plná kontrola je vhodná u aplikací, které vám pomáhají s usnadněním přístupu. U většiny aplikací však vhodná není."</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Zobrazení a ovládání obrazovky"</string>
- <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Může číst veškerý obsah obrazovky a zobrazovat obsah přes ostatní aplikace."</string>
+ <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Služba může číst veškerý obsah obrazovky a zobrazovat ho přes ostatní aplikace."</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Zobrazení a provádění akcí"</string>
- <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi namísto vás."</string>
+ <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Služba může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi namísto vás."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Povolit"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Zakázat"</string>
<string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Chcete-li některou funkci začít používat, klepněte na ni:"</string>
@@ -2343,5 +2343,5 @@
<string name="splash_screen_view_icon_description" msgid="180638751260598187">"Ikona aplikace"</string>
<string name="splash_screen_view_branding_description" msgid="7911129347402728216">"Image značky aplikace"</string>
<string name="view_and_control_notification_title" msgid="4300765399209912240">"Zkontrolujte nastavení přístupu"</string>
- <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> může zobrazit a ovládat tuto obrazovku. Klepnutím to zkontrolujete."</string>
+ <string name="view_and_control_notification_content" msgid="8003766498562604034">"Tuto obrazovku může zobrazit a ovládat služba <xliff:g id="SERVICE_NAME">%s</xliff:g>. Klepnutím to zkontrolujete."</string>
</resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 45885a670764..969278192753 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Close"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Answer"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Decline"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Hang up"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Incoming call"</string>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index a4679e4b876b..f41ab423bdd6 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Close"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Answer"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Decline"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Hang up"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Incoming call"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 481c798eb7ba..098a93680704 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Close"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Answer"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Decline"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Hang up"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Incoming call"</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 3e3703735092..a7e1f5f10d2c 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Close"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Answer"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Decline"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Hang up"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Incoming call"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index f774f503d0c3..6a1cddc88da6 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Cerrar"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Responder"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Rechazar"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Colgar"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Llamada entrante"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 021d97e14dd7..62ecf653a546 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -34,7 +34,7 @@
<string name="defaultMsisdnAlphaTag" msgid="2285034592902077488">"MSISDN1"</string>
<string name="mmiError" msgid="2862759606579822246">"Se ha producido un problema de conexión o el código MMI no es válido."</string>
<string name="mmiFdnError" msgid="3975490266767565852">"La operación solo es válida para números de marcación fija."</string>
- <string name="mmiErrorWhileRoaming" msgid="1204173664713870114">"No se puede cambiar la configuración de desvío de llamadas desde tu teléfono mientras estás en itinerancia."</string>
+ <string name="mmiErrorWhileRoaming" msgid="1204173664713870114">"No se puede cambiar la configuración de desvío de llamadas desde tu teléfono mientras estás en roaming."</string>
<string name="serviceEnabled" msgid="7549025003394765639">"El servicio se ha habilitado."</string>
<string name="serviceEnabledFor" msgid="1463104778656711613">"Se ha habilitado el servicio para:"</string>
<string name="serviceDisabled" msgid="641878791205871379">"El servicio se ha inhabilitado."</string>
@@ -108,19 +108,19 @@
<string name="serviceClassDataSync" msgid="7895071363569133704">"Sincronización"</string>
<string name="serviceClassPacket" msgid="1430642951399303804">"Paquete"</string>
<string name="serviceClassPAD" msgid="6850244583416306321">"PAD"</string>
- <string name="roamingText0" msgid="7793257871609854208">"Indicador de itinerancia activado"</string>
- <string name="roamingText1" msgid="5073028598334616445">"Indicador de itinerancia desactivado"</string>
- <string name="roamingText2" msgid="2834048284153110598">"Indicador de itinerancia parpadeante"</string>
+ <string name="roamingText0" msgid="7793257871609854208">"Indicador de roaming activado"</string>
+ <string name="roamingText1" msgid="5073028598334616445">"Indicador de roaming desactivado"</string>
+ <string name="roamingText2" msgid="2834048284153110598">"Indicador de roaming parpadeante"</string>
<string name="roamingText3" msgid="831690234035748988">"Fuera del vecindario"</string>
<string name="roamingText4" msgid="2171252529065590728">"Fuera del edificio"</string>
- <string name="roamingText5" msgid="4294671587635796641">"Itinerancia: sistema preferido"</string>
- <string name="roamingText6" msgid="5536156746637992029">"Itinerancia: sistema disponible"</string>
- <string name="roamingText7" msgid="1783303085512907706">"Itinerancia: partner de alianza"</string>
- <string name="roamingText8" msgid="7774800704373721973">"Itinerancia: partner de gran calidad"</string>
- <string name="roamingText9" msgid="1933460020190244004">"Itinerancia: funcionalidad de servicio completa"</string>
- <string name="roamingText10" msgid="7434767033595769499">"Itinerancia: funcionalidad de servicio parcial"</string>
- <string name="roamingText11" msgid="5245687407203281407">"Banner de itinerancia activado"</string>
- <string name="roamingText12" msgid="673537506362152640">"Banner de itinerancia desactivado"</string>
+ <string name="roamingText5" msgid="4294671587635796641">"Roaming: sistema preferido"</string>
+ <string name="roamingText6" msgid="5536156746637992029">"Roaming: sistema disponible"</string>
+ <string name="roamingText7" msgid="1783303085512907706">"Roaming: partner de alianza"</string>
+ <string name="roamingText8" msgid="7774800704373721973">"Roaming: partner de gran calidad"</string>
+ <string name="roamingText9" msgid="1933460020190244004">"Roaming: funcionalidad de servicio completa"</string>
+ <string name="roamingText10" msgid="7434767033595769499">"Roaming: funcionalidad de servicio parcial"</string>
+ <string name="roamingText11" msgid="5245687407203281407">"Banner de roaming activado"</string>
+ <string name="roamingText12" msgid="673537506362152640">"Banner de roaming desactivado"</string>
<string name="roamingTextSearching" msgid="5323235489657753486">"Buscando servicio"</string>
<string name="wfcRegErrorTitle" msgid="3193072971584858020">"No se ha podido configurar la llamada por Wi‑Fi"</string>
<string-array name="wfcOperatorErrorAlertMessages">
@@ -521,21 +521,21 @@
<string name="permdesc_changeWifiMulticastState" product="tv" msgid="1336952358450652595">"Permite que la aplicación reciba paquetes enviados a través de una red Wi-Fi y mediante direcciones de multidifusión a todos los dispositivos, no solo a tu dispositivo Android TV. Consume más batería que el modo sin multidifusión."</string>
<string name="permdesc_changeWifiMulticastState" product="default" msgid="8296627590220222740">"Permite que la aplicación reciba paquetes enviados a todos los dispositivos de una red Wi-Fi que utilicen direcciones de multidifusión, no solo al teléfono. Utiliza más batería que el modo de no multidifusión."</string>
<string name="permlab_bluetoothAdmin" msgid="6490373569441946064">"acceder a los ajustes de Bluetooth"</string>
- <string name="permdesc_bluetoothAdmin" product="tablet" msgid="5370837055438574863">"Permite que la aplicación configure el tablet Bluetooth local y que detecte dispositivos remotos y se vincule con ellos."</string>
- <string name="permdesc_bluetoothAdmin" product="tv" msgid="1623992984547014588">"Permite que la aplicación configure el Bluetooth en tu dispositivo Android TV, detecte dispositivos remotos y se vincule con ellos."</string>
- <string name="permdesc_bluetoothAdmin" product="default" msgid="7381341743021234863">"Permite que la aplicación configure el teléfono Bluetooth local y que detecte dispositivos remotos y se vincule con ellos."</string>
+ <string name="permdesc_bluetoothAdmin" product="tablet" msgid="5370837055438574863">"Permite que la aplicación configure el tablet Bluetooth local y que detecte dispositivos remotos y se empareje con ellos."</string>
+ <string name="permdesc_bluetoothAdmin" product="tv" msgid="1623992984547014588">"Permite que la aplicación configure el Bluetooth en tu dispositivo Android TV, detecte dispositivos remotos y se empareje con ellos."</string>
+ <string name="permdesc_bluetoothAdmin" product="default" msgid="7381341743021234863">"Permite que la aplicación configure el teléfono Bluetooth local y que detecte dispositivos remotos y se empareje con ellos."</string>
<string name="permlab_accessWimaxState" msgid="7029563339012437434">"conectarse a WiMAX y desconectarse de esta red"</string>
<string name="permdesc_accessWimaxState" msgid="5372734776802067708">"Permite que la aplicación determine si está habilitada la conexión WiMAX y obtenga información sobre las redes WiMAX que están conectadas."</string>
<string name="permlab_changeWimaxState" msgid="6223305780806267462">"cambiar estado de WiMAX"</string>
<string name="permdesc_changeWimaxState" product="tablet" msgid="4011097664859480108">"Permite que la aplicación conecte el tablet a redes WiMAX y lo desconecte de ellas."</string>
<string name="permdesc_changeWimaxState" product="tv" msgid="5373274458799425276">"Permite que la aplicación active y desactive la conexión entre tu dispositivo Android TV y las redes WiMAX."</string>
<string name="permdesc_changeWimaxState" product="default" msgid="1551666203780202101">"Permite que la aplicación conecte el teléfono a redes WiMAX y lo desconecte de ellas."</string>
- <string name="permlab_bluetooth" msgid="586333280736937209">"vincular con dispositivos Bluetooth"</string>
+ <string name="permlab_bluetooth" msgid="586333280736937209">"emparejar con dispositivos Bluetooth"</string>
<string name="permdesc_bluetooth" product="tablet" msgid="3053222571491402635">"Permite que la aplicación acceda a la configuración de Bluetooth del tablet y que establezca y acepte conexiones con los dispositivos sincronizados."</string>
<string name="permdesc_bluetooth" product="tv" msgid="8851534496561034998">"Permite que la aplicación vea la configuración de Bluetooth de tu dispositivo Android TV y que cree y acepte conexiones con los dispositivos vinculados."</string>
<string name="permdesc_bluetooth" product="default" msgid="2779606714091276746">"Permite que la aplicación acceda a la configuración de Bluetooth del teléfono y que establezca y acepte conexiones con los dispositivos sincronizados."</string>
- <string name="permlab_bluetooth_scan" msgid="5402587142833124594">"detectar y vincular dispositivos Bluetooth cercanos"</string>
- <string name="permdesc_bluetooth_scan" product="default" msgid="6540723536925289276">"Permite que la aplicación detecte y vincule dispositivos Bluetooth cercanos"</string>
+ <string name="permlab_bluetooth_scan" msgid="5402587142833124594">"detectar y emparejar dispositivos Bluetooth cercanos"</string>
+ <string name="permdesc_bluetooth_scan" product="default" msgid="6540723536925289276">"Permite que la aplicación detecte y empareje dispositivos Bluetooth cercanos"</string>
<string name="permlab_bluetooth_connect" msgid="6657463246355003528">"conectarse a dispositivos Bluetooth vinculados"</string>
<string name="permdesc_bluetooth_connect" product="default" msgid="4546016548795544617">"Permite que la aplicación se conecte a dispositivos Bluetooth vinculados"</string>
<string name="permlab_bluetooth_advertise" msgid="2781147747928853177">"emitir a dispositivos Bluetooth cercanos"</string>
@@ -1335,7 +1335,7 @@
<string name="sms_short_code_confirm_never_allow" msgid="2688828813521652079">"No permitir nunca"</string>
<string name="sim_removed_title" msgid="5387212933992546283">"Tarjeta SIM retirada"</string>
<string name="sim_removed_message" msgid="9051174064474904617">"La red móvil no estará disponible hasta que reinicies el dispositivo con una tarjeta SIM válida."</string>
- <string name="sim_done_button" msgid="6464250841528410598">"Listo"</string>
+ <string name="sim_done_button" msgid="6464250841528410598">"Hecho"</string>
<string name="sim_added_title" msgid="7930779986759414595">"Tarjeta SIM añadida"</string>
<string name="sim_added_message" msgid="6602906609509958680">"Reinicia el dispositivo para acceder a la red móvil."</string>
<string name="sim_restart_button" msgid="8481803851341190038">"Reiniciar"</string>
@@ -1348,7 +1348,7 @@
<string name="time_picker_dialog_title" msgid="9053376764985220821">"Establecer hora"</string>
<string name="date_picker_dialog_title" msgid="5030520449243071926">"Establecer fecha"</string>
<string name="date_time_set" msgid="4603445265164486816">"Establecer"</string>
- <string name="date_time_done" msgid="8363155889402873463">"Listo"</string>
+ <string name="date_time_done" msgid="8363155889402873463">"Hecho"</string>
<string name="perms_new_perm_prefix" msgid="6984556020395757087"><font size="12" fgcolor="#ff33b5e5">"NUEVO:"</font></string>
<string name="perms_description_app" msgid="2747752389870161996">"Proporcionado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="no_permissions" msgid="5729199278862516390">"No es necesario ningún permiso"</string>
@@ -1438,7 +1438,7 @@
<string name="ext_media_status_removed" msgid="241223931135751691">"Extraído"</string>
<string name="ext_media_status_unmounted" msgid="8145812017295835941">"Expulsado"</string>
<string name="ext_media_status_checking" msgid="159013362442090347">"Comprobando..."</string>
- <string name="ext_media_status_mounted" msgid="3459448555811203459">"Listo"</string>
+ <string name="ext_media_status_mounted" msgid="3459448555811203459">"Hecho"</string>
<string name="ext_media_status_mounted_ro" msgid="1974809199760086956">"Solo lectura"</string>
<string name="ext_media_status_bad_removal" msgid="508448566481406245">"Extraído de forma no segura"</string>
<string name="ext_media_status_unmountable" msgid="7043574843541087748">"Dañado"</string>
@@ -1463,7 +1463,7 @@
<string name="ime_action_search" msgid="4501435960587287668">"Buscar"</string>
<string name="ime_action_send" msgid="8456843745664334138">"Enviar"</string>
<string name="ime_action_next" msgid="4169702997635728543">"Siguiente"</string>
- <string name="ime_action_done" msgid="6299921014822891569">"Listo"</string>
+ <string name="ime_action_done" msgid="6299921014822891569">"Hecho"</string>
<string name="ime_action_previous" msgid="6548799326860401611">"Anterior"</string>
<string name="ime_action_default" msgid="8265027027659800121">"Ejecutar"</string>
<string name="dial_number_using" msgid="6060769078933953531">"Marcar número\ncon <xliff:g id="NUMBER">%s</xliff:g>"</string>
@@ -1510,7 +1510,7 @@
<item quantity="other"><xliff:g id="INDEX">%d</xliff:g> de <xliff:g id="TOTAL">%d</xliff:g></item>
<item quantity="one">1 coincidencia</item>
</plurals>
- <string name="action_mode_done" msgid="2536182504764803222">"Listo"</string>
+ <string name="action_mode_done" msgid="2536182504764803222">"Hecho"</string>
<string name="progress_erasing" msgid="6891435992721028004">"Borrando almacenamiento compartido…"</string>
<string name="share" msgid="4157615043345227321">"Compartir"</string>
<string name="find" msgid="5015737188624767706">"Buscar"</string>
@@ -1551,7 +1551,7 @@
<string name="keyboardview_keycode_alt" msgid="8997420058584292385">"Alt"</string>
<string name="keyboardview_keycode_cancel" msgid="2134624484115716975">"Cancelar"</string>
<string name="keyboardview_keycode_delete" msgid="2661117313730098650">"Eliminar"</string>
- <string name="keyboardview_keycode_done" msgid="2524518019001653851">"Listo"</string>
+ <string name="keyboardview_keycode_done" msgid="2524518019001653851">"Hecho"</string>
<string name="keyboardview_keycode_mode_change" msgid="2743735349997999020">"Cambio de modo"</string>
<string name="keyboardview_keycode_shift" msgid="3026509237043975573">"Mayús"</string>
<string name="keyboardview_keycode_enter" msgid="168054869339091055">"Intro"</string>
@@ -1704,7 +1704,7 @@
<string name="accessibility_edit_shortcut_menu_volume_title" msgid="1077294237378645981">"Selecciona qué funciones usar con la tecla de volumen"</string>
<string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Se ha desactivado <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
<string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar accesos directos"</string>
- <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Listo"</string>
+ <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Hecho"</string>
<string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar acceso directo"</string>
<string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utilizar acceso directo"</string>
<string name="color_inversion_feature_name" msgid="326050048927789012">"Inversión de color"</string>
@@ -1834,7 +1834,7 @@
<string name="immersive_cling_title" msgid="2307034298721541791">"Modo de pantalla completa"</string>
<string name="immersive_cling_description" msgid="7092737175345204832">"Para salir, desliza el dedo de arriba abajo."</string>
<string name="immersive_cling_positive" msgid="7047498036346489883">"Entendido"</string>
- <string name="done_label" msgid="7283767013231718521">"Listo"</string>
+ <string name="done_label" msgid="7283767013231718521">"Hecho"</string>
<string name="hour_picker_description" msgid="5153757582093524635">"Control deslizante circular de horas"</string>
<string name="minute_picker_description" msgid="9029797023621927294">"Control deslizante circular de minutos"</string>
<string name="select_hours" msgid="5982889657313147347">"Seleccionar horas"</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 0379bac07827..1e58aedc5c45 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Sule"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Vasta"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Keeldu"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Lõpeta kõne"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Sissetulev kõne"</string>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index a5c6e2567f0e..3d2eda9197d0 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -2075,11 +2075,11 @@
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"Mailaz igo da jakinarazpena. Sakatu hau oharrak bidaltzeko."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"Mailaz jaitsi da jakinarazpena. Sakatu hau oharrak bidaltzeko."</string>
<string name="nas_upgrade_notification_title" msgid="4224351129445073051">"Probatu jakinarazpen hobetuak"</string>
- <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"Iradokitako ekintzak, erantzunak eta abar jasotzen jarraitzeko, aktibatu jakinarazpen hobetuak. Android-en jakinarazpen doigarriak ez dira onartzen jada."</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"Iradokitako ekintzak, erantzunak eta abar jasotzen jarraitzeko, aktibatu jakinarazpen hobetuak. Android-en jakinarazpen egokituak ez dira onartzen jada."</string>
<string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"Aktibatu"</string>
<string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"Orain ez"</string>
<string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Lortu informazio gehiago"</string>
- <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"Jakinarazpen hobetuek jakinarazpenen eduki osoa irakur dezakete, informazio pertsonala barne (esaterako, kontaktuen izenak eta mezuak). Halaber, eginbideak jakinarazpenak baztertu edo jakinarazpen-botoiak erabil ditzake; adibidez, telefono-deiak erantzutea.\n\nHorretaz gain, lehentasunezko modua aktibatu edo desaktibatu dezake, eta erlazionatutako ezarpenak aldatu."</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"Jakinarazpen hobetuek jakinarazpenen eduki osoa irakur dezakete, informazio pertsonala barne (esaterako, kontaktuen izenak eta mezuak). Halaber, jakinarazpenak baztertu edo jakinarazpenetako botoiak erabil ditzake eginbideak; adibidez, telefono-deiak erantzun.\n\nHorretaz gain, lehentasunezko modua aktibatu edo desaktiba dezake, eta erlazionatutako ezarpenak aldatu."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Ohitura moduaren informazio-jakinarazpena"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baliteke bateria ohi baino lehenago agortzea"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Bateria-aurrezlea aktibatuta dago bateriaren iraupena luzatzeko"</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index f5f19b6844c1..3d22748e0297 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Fermer"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g> : <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Répondre"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Vidéo"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Refuser"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Raccrocher"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Appel entrant"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 6e43b4274d0d..5f762ffd653e 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"Mis à jour par votre administrateur"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"Supprimé par votre administrateur"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"OK"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"L\'économiseur de batterie active le thème sombre et limite ou désactive les activités en arrière-plan, certains effets visuels et d\'autres fonctionnalités comme \"Hey Google\"\n\n"<annotation id="url">"En savoir plus"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"L\'économiseur de batterie active le thème sombre et limite ou désactive les activités en arrière-plan, certains effets visuels et d\'autres fonctionnalités comme \"Hey Google\"."</string>
<string name="data_saver_description" msgid="4995164271550590517">"Pour réduire la consommation de données, l\'économiseur de données empêche certaines applications d\'envoyer ou de recevoir des données en arrière-plan. Ainsi, les applications que vous utilisez peuvent toujours accéder aux données, mais pas en permanence. Par exemple, il se peut que les images ne s\'affichent pas tant que vous n\'appuyez pas dessus."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"Activer l\'économiseur de données ?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"Activer"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"Cette notification a été abaissée à la catégorie \"Silencieux\". Appuyez ici pour donner votre avis."</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"Cette notification a été élevée d\'un niveau. Appuyez ici pour donner votre avis."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"Cette notification a été abaissée d\'un niveau. Appuyez ici pour donner votre avis."</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"Testez les notifications améliorées"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"Activez les notifications améliorées pour continuer à recevoir des suggestions d\'actions, de réponses et plus encore. Les notifications intelligentes Android ne sont plus disponibles."</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"Activer"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"Pas maintenant"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"En savoir plus"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"Les notifications améliorées peuvent lire tout le contenu des notifications, y compris des informations personnelles comme le nom des contacts et les messages. Cette fonctionnalité peut aussi fermer des notifications ou effectuer des actions grâce aux boutons figurant dans ces notifications, par exemple répondre aux appels téléphoniques.\n\nElle peut aussi activer ou désactiver le mode Prioritaire et modifier les paramètres associés."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notification d\'information du mode Routine"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Vous risquez d\'être à court de batterie plus tôt que prévu"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Économiseur de batterie activé pour prolonger l\'autonomie"</string>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 92d74fe66a1d..2f2df475d18d 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"તમારા વ્યવસ્થાપક દ્વારા અપડેટ કરવામાં આવેલ છે"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"તમારા વ્યવસ્થાપક દ્વારા કાઢી નાખવામાં આવેલ છે"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"ઓકે"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"બૅટરી સેવર ઘેરી થીમની સુવિધા ચાલુ કરે છે અને બૅકગ્રાઉન્ડમાં થતી પ્રવૃત્તિ, કેટલીક વિઝ્યુઅલ ઇફેક્ટ અને “Ok Google” જેવી સુવિધાઓને મર્યાદિત કે બંધ કરે છે\n\n"<annotation id="url">"વધુ જાણો"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"બૅટરી સેવર ઘેરી થીમની સુવિધા ચાલુ કરે છે અને બૅકગ્રાઉન્ડમાં થતી પ્રવૃત્તિ, કેટલીક વિઝ્યુઅલ ઇફેક્ટ અને “Ok Google” જેવી સુવિધાઓને મર્યાદિત કે બંધ કરે છે."</string>
<string name="data_saver_description" msgid="4995164271550590517">"ડેટા વપરાશને ઘટાડવામાં સહાય માટે, ડેટા સેવર કેટલીક ઍપને બૅકગ્રાઉન્ડમાં ડેટા મોકલવા અથવા પ્રાપ્ત કરવાથી અટકાવે છે. તમે હાલમાં ઉપયોગ કરી રહ્યાં છો તે ઍપ ડેટાને ઍક્સેસ કરી શકે છે, પરંતુ તે આ ક્યારેક જ કરી શકે છે. આનો અર્થ એ હોઈ શકે છે, ઉદાહરણ તરીકે, છબીઓ ત્યાં સુધી પ્રદર્શિત થશે નહીં જ્યાં સુધી તમે તેને ટૅપ નહીં કરો."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"ડેટા સેવર ચાલુ કરીએ?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"ચાલુ કરો"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"નોટિફિકેશનને સાઇલન્ટ પર અવનત કરવામાં આવ્યું. પ્રતિસાદ આપવા માટે ટૅપ કરો."</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"આ નોટિફિકેશનને ઉપલી રેંક આપવામાં આવી. પ્રતિસાદ આપવા માટે ટૅપ કરો."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"આ નોટિફિકેશનને નીચલી રેંક આપવામાં આવી. પ્રતિસાદ આપવા માટે ટૅપ કરો."</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"વધારાના નોટિફિકેશન અજમાવી જુઓ"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"સૂચવેલી ક્રિયાઓ, જવાબો અને બીજું ઘણું મેળવવા માટે, વધારાના નોટિફિકેશન ચાલુ કરો. Android માટે અનુકૂળ નોટિફિકેશનને હવેથી સપોર્ટ કરવામાં આવતો નથી."</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"ચાલુ કરો"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"હમણાં નહીં"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"વધુ જાણો"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"વધારાના નોટિફિકેશન સંપર્કનું નામ અને સંદેશા જેવી વ્યક્તિગત માહિતી સહિત નોટિફિકેશનનું બધું કન્ટેન્ટ વાંચી શકે છે. આ સુવિધા નોટિફિકેશન છોડી પણ શકે છે અથવા નોટિફિકેશનમાં બટન પર ફોન કૉલનો જવાબ આપવા જેવી ક્રિયાઓ પણ કરી શકે છે.\n\nઆ સુવિધા પ્રાધાન્યતા મોડ ચાલુ કે બંધ પણ કરી શકે છે અને સંબંધિત સેટિંગ બદલી પણ શકે છે."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"રૂટિન મોડની માહિતીનું નોટિફિકેશન"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"સામાન્ય રીતે ચાર્જ કરવાના સમય પહેલાં બૅટરી સમાપ્ત થઈ શકે છે"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"બૅટરી આવરદા વધારવા માટે બૅટરી સેવર ચાલુ કર્યું"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 2ea640e449d8..190d5613ef89 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -1719,7 +1719,7 @@
<string name="accessibility_button_instructional_text" msgid="8853928358872550500">"एक सुविधा से दूसरी सुविधा पर जाने के लिए, सुलभता बटन दबाकर रखें."</string>
<string name="accessibility_gesture_instructional_text" msgid="9196230728837090497">"एक सुविधा से दूसरी सुविधा पर जाने के लिए, स्क्रीन पर दो उंगलियों से ऊपर की ओर स्वाइप करें और थोड़ी देर तक उंगलियां स्क्रीन पर रखे रहें."</string>
<string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"एक सुविधा से दूसरी सुविधा पर जाने के लिए, स्क्रीन पर तीन उंगलियों से ऊपर की ओर स्वाइप करें और थोड़ी देर तक उंगलियां स्क्रीन पर रखे रहें."</string>
- <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"बड़ा करना"</string>
+ <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ज़ूम करने की सुविधा"</string>
<string name="user_switched" msgid="7249833311585228097">"मौजूदा उपयोगकर्ता <xliff:g id="NAME">%1$s</xliff:g>."</string>
<string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> पर स्विच किया जा रहा है…"</string>
<string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g> द्वारा प्रस्‍थान किया जा रहा है…"</string>
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"बंद करें"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"जवाब दें"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"वीडियो"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"अस्वीकार करें"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"कॉल काटें"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"आने वाला (इनकमिंग) कॉल"</string>
@@ -1992,7 +1991,7 @@
<string name="app_category_productivity" msgid="1844422703029557883">"उत्पादकता"</string>
<string name="app_category_accessibility" msgid="6643521607848547683">"सुलभता"</string>
<string name="device_storage_monitor_notification_channel" msgid="5164244565844470758">"डिवाइस में जगह"</string>
- <string name="adb_debugging_notification_channel_tv" msgid="4764046459631031496">"USB डीबग करना"</string>
+ <string name="adb_debugging_notification_channel_tv" msgid="4764046459631031496">"यूएसबी डीबग करना"</string>
<string name="time_picker_hour_label" msgid="4208590187662336864">"घंटा"</string>
<string name="time_picker_minute_label" msgid="8307452311269824553">"मिनट"</string>
<string name="time_picker_header_text" msgid="9073802285051516688">"समय सेट करें"</string>
@@ -2075,11 +2074,11 @@
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"इस सूचना को रैंकिंग में ऊपर किया गया था. सुझाव/शिकायत/राय देने के लिए टैप करें."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"इस सूचना को रैंकिंग में नीचे किया गया था. सुझाव/शिकायत/राय देने के लिए टैप करें."</string>
<string name="nas_upgrade_notification_title" msgid="4224351129445073051">"\'बेहतर सूचनाएं\' सुविधा आज़माएं"</string>
- <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"सुझाई गई कार्रवाइयां, जवाब, और दूसरे सुझाव पाने के लिए, बेहतर सूचनाएं चालू करें. ज़रूरत के हिसाब से सूचनाएं पाने की Android की सुविधा अब काम नहीं करती है."</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"कार्रवाई और जवाब वगैरह के लिए सुझाव पाना चाहते हैं, तो सूचनाएं पाने की सुविधा बेहतर करें. Android की, ज़रूरत के हिसाब से सूचनाएं पाने की सुविधा अब काम नहीं करती है."</string>
<string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"चालू करें"</string>
<string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"अभी नहीं"</string>
<string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ज़्यादा जानें"</string>
- <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"\'बेहतर सूचनाएं\' सुविधा, डिवाइस पर मिलने वाली सभी सूचनाओं का कॉन्टेंट पढ़ सकती है. इसमें आपकी निजी जानकारी, जैसे कि संपर्कों के नाम और मैसेज भी शामिल हैं. यह सुविधा, सूचनाओं को रद्द कर सकती है या सूचनाओं में दिखने वाले बटन से कार्रवाइयां भी कर सकती है, जैसे कि फ़ोन कॉल का जवाब देना.\n\nयह सुविधा, प्राथमिकता मोड को चालू या बंद कर सकती है और इससे जुड़ी सेटिंग में बदलाव भी कर सकती है."</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"\'बेहतर सूचनाएं\' सुविधा, डिवाइस पर मिलने वाली सभी सूचनाओं का कॉन्टेंट पढ़ सकती है. इसमें आपकी निजी जानकारी, जैसे कि संपर्कों के नाम और मैसेज भी शामिल हैं. यह सुविधा, डिवाइस पर आने वाली सूचनाओं को रद्द कर सकती है या सूचनाओं में दिखने वाले बटन से कार्रवाइयां भी कर सकती है, जैसे कि फ़ोन कॉल का जवाब देना.\n\nयह सुविधा, प्राथमिकता मोड को चालू या बंद कर सकती है और इससे जुड़ी सेटिंग में बदलाव भी कर सकती है."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"रूटीन मोड जानकारी की सूचना"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"बैटरी आम तौर पर जितने समय चलती है, उससे पहले खत्म हो सकती है"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"बैटरी लाइफ़ बढ़ाने के लिए \'बैटरी सेवर\' चालू हो गया है"</string>
@@ -2263,7 +2262,7 @@
<string name="config_pdp_reject_user_authentication_failed" msgid="4531693033885744689"></string>
<string name="config_pdp_reject_service_not_subscribed" msgid="8190338397128671588"></string>
<string name="config_pdp_reject_multi_conn_to_same_pdn_not_allowed" msgid="6024904218067254186"></string>
- <string name="window_magnification_prompt_title" msgid="2876703640772778215">"ज़ूम करके देखने की नई सुविधा उपलब्ध है"</string>
+ <string name="window_magnification_prompt_title" msgid="2876703640772778215">"ज़ूम करने की सुविधा वाली नई सेटिंग"</string>
<string name="window_magnification_prompt_content" msgid="8159173903032344891">"अब आप अपनी स्क्रीन के किसी हिस्से को ज़ूम करके देख सकते हैं"</string>
<string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"सेटिंग में जाकर, इस सुविधा को चालू करें"</string>
<string name="dismiss_action" msgid="1728820550388704784">"खारिज करें"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index c3ef94c71678..28fb4003004e 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -1712,12 +1712,12 @@
<string name="accessibility_shortcut_off" msgid="3651336255403648739">"Nemoj uključiti"</string>
<string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"UKLJUČENO"</string>
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"ISKLJUČENO"</string>
- <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Želite li dopustiti usluzi <xliff:g id="SERVICE">%1$s</xliff:g> potpunu kontrolu nad uređajem?"</string>
+ <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Želite li usluzi <xliff:g id="SERVICE">%1$s</xliff:g> dopustiti potpunu kontrolu nad uređajem?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ako uključite <xliff:g id="SERVICE">%1$s</xliff:g>, vaš uređaj neće upotrebljavati zaključavanje zaslona za bolju enkripciju podataka."</string>
<string name="accessibility_service_warning_description" msgid="291674995220940133">"Potpuna kontrola prikladna je za aplikacije koje vam pomažu s potrebama pristupačnosti, ali ne i za većinu aplikacija."</string>
- <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Prikaz zaslona i upravljanje njime"</string>
+ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Pregled zaslona i upravljanje njime"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Može čitati sav sadržaj na zaslonu i prikazati sadržaj povrh drugih aplikacija."</string>
- <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Prikaz i izvršavanje radnji"</string>
+ <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Pregled i izvršavanje radnji"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Može pratiti vaše interakcije s aplikacijama ili senzorom uređaja i stupati u interakciju s aplikacijama u vaše ime."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Dopusti"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Odbij"</string>
@@ -1960,8 +1960,7 @@
<string name="close_button_text" msgid="10603510034455258">"Zatvori"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Odgovori"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Videozapis"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Odbij"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Prekini"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Dolazni poziv"</string>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 1e424f86c64d..bbf50a7e2ef7 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -1988,7 +1988,7 @@
<string name="app_category_image" msgid="7307840291864213007">"Լուսանկարներ և պատկերներ"</string>
<string name="app_category_social" msgid="2278269325488344054">"Սոցցանցեր և հաղորդակցություն"</string>
<string name="app_category_news" msgid="1172762719574964544">"Նորություններ և ամսագրեր"</string>
- <string name="app_category_maps" msgid="6395725487922533156">"Քարտեզներ և նավարկում"</string>
+ <string name="app_category_maps" msgid="6395725487922533156">"Քարտեզներ և նավիգացիա"</string>
<string name="app_category_productivity" msgid="1844422703029557883">"Արդյունավետություն"</string>
<string name="app_category_accessibility" msgid="6643521607848547683">"Հատուկ գործառույթներ"</string>
<string name="device_storage_monitor_notification_channel" msgid="5164244565844470758">"Սարքի հիշողություն"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 57f46335f61e..31096c75b43a 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Chiudi"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Rispondi"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Rifiuta"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Riaggancia"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Chiamata in arrivo"</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index cd9f28abfbd1..b3134a76a9e5 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -325,7 +325,7 @@
<string name="permgroupdesc_activityRecognition" msgid="4725624819457670704">"גישה לפעילות הגופנית שלך"</string>
<string name="permgrouplab_camera" msgid="9090413408963547706">"מצלמה"</string>
<string name="permgroupdesc_camera" msgid="7585150538459320326">"צילום תמונות והקלטת וידאו"</string>
- <string name="permgrouplab_nearby_devices" msgid="5529147543651181991">"מכשירים קרובים"</string>
+ <string name="permgrouplab_nearby_devices" msgid="5529147543651181991">"מכשירים בקרבת מקום"</string>
<string name="permgroupdesc_nearby_devices" msgid="3213561597116913508">"איתור מכשירים שנמצאים בקרבת מקום והתחברות אליהם"</string>
<string name="permgrouplab_calllog" msgid="7926834372073550288">"יומני שיחות"</string>
<string name="permgroupdesc_calllog" msgid="2026996642917801803">"קריאה וכתיבה של יומן השיחות של הטלפון"</string>
@@ -1405,7 +1405,7 @@
<string name="usb_power_notification_message" msgid="7284765627437897702">"המכשיר המחובר בטעינה. יש להקיש לאפשרויות נוספות."</string>
<string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"המכשיר זיהה התקן אודיו אנלוגי"</string>
<string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"ההתקן שחיברת לא תואם לטלפון הזה. יש להקיש לקבלת מידע נוסף."</string>
- <string name="adb_active_notification_title" msgid="408390247354560331">"‏ניפוי באגים של USB מחובר"</string>
+ <string name="adb_active_notification_title" msgid="408390247354560331">"‏ניפוי באגים ב-USB מחובר"</string>
<string name="adb_active_notification_message" msgid="5617264033476778211">"‏יש להקיש כדי לכבות את ניפוי הבאגים ב-USB"</string>
<string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‏יש ללחוץ על ההתראה כדי להשבית ניפוי באגים ב-USB."</string>
<string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ניפוי הבאגים האלחוטי מחובר"</string>
@@ -1734,13 +1734,13 @@
<string name="accessibility_shortcut_off" msgid="3651336255403648739">"לא להפעיל"</string>
<string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"מופעל"</string>
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"כבוי"</string>
- <string name="accessibility_enable_service_title" msgid="3931558336268541484">"ברצונך להעניק לשירות <xliff:g id="SERVICE">%1$s</xliff:g> שליטה מלאה במכשיר?"</string>
+ <string name="accessibility_enable_service_title" msgid="3931558336268541484">"להעניק לשירות <xliff:g id="SERVICE">%1$s</xliff:g> שליטה מלאה במכשיר?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"אם השירות <xliff:g id="SERVICE">%1$s</xliff:g> יופעל, המכשיר לא ישתמש בנעילת המסך כדי לשפר את הצפנת הנתונים."</string>
- <string name="accessibility_service_warning_description" msgid="291674995220940133">"שליטה מלאה מתאימה לאפליקציות שעוזרות עם צורכי הנגישות שלך, אבל לא לרוב האפליקציות."</string>
+ <string name="accessibility_service_warning_description" msgid="291674995220940133">"האפשרות לשליטה מלאה במכשיר לא מתאימה לכל האפליקציות, אלא רק לאפליקציות שעוזרות עם צורכי הנגישות שלך."</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"הצגת המסך ושליטה בו"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"אפשרות לקריאת כל התוכן במסך ולהצגת התוכן מעל אפליקציות אחרות."</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"הצגה וביצוע של פעולות"</string>
- <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"זוהי אפשרות למעקב אחר האינטראקציות שלך עם אפליקציה או חיישן חומרה כלשהם, ולביצוע אינטראקציה בשמך."</string>
+ <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"אפשרות למעקב אחר האינטראקציה שלך עם אפליקציות או חיישני חומרה, וביצוע אינטראקציה בשמך."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"אישור"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"עדיף שלא"</string>
<string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"יש להקיש על תכונה כדי להתחיל להשתמש בה:"</string>
@@ -2140,7 +2140,7 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"ההתראה הזו הורדה בדרגה ל\'שקטה\'. יש להקיש כדי לשלוח משוב."</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"דירוג ההתראה הזו הוגבה. יש להקיש כדי לשלוח משוב."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"ההתראה הזו דורגה נמוך יותר. יש להקיש כדי לשלוח משוב."</string>
- <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"רוצה לנסות את התראות המשופרות?"</string>
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"רוצה לנסות את ההתראות המשופרות?"</string>
<string name="nas_upgrade_notification_content" msgid="7036860187157134706">"‏כדי להמשיך לקבל הצעות לפעולות, לתשובות ועוד, יש להפעיל את ההתראות המשופרות. אין יותר תמיכה בהתראות מותאמות ל-Android."</string>
<string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"הפעלה"</string>
<string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"לא עכשיו"</string>
@@ -2331,7 +2331,7 @@
<string name="config_pdp_reject_user_authentication_failed" msgid="4531693033885744689"></string>
<string name="config_pdp_reject_service_not_subscribed" msgid="8190338397128671588"></string>
<string name="config_pdp_reject_multi_conn_to_same_pdn_not_allowed" msgid="6024904218067254186"></string>
- <string name="window_magnification_prompt_title" msgid="2876703640772778215">"הגדרות חדשות להגדלה"</string>
+ <string name="window_magnification_prompt_title" msgid="2876703640772778215">"הגדרות חדשות לתכונה \'הגדלה\'"</string>
<string name="window_magnification_prompt_content" msgid="8159173903032344891">"עכשיו אפשר להגדיל חלק מהמסך"</string>
<string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"הפעלה בהגדרות"</string>
<string name="dismiss_action" msgid="1728820550388704784">"סגירה"</string>
@@ -2343,5 +2343,5 @@
<string name="splash_screen_view_icon_description" msgid="180638751260598187">"סמל האפליקציה"</string>
<string name="splash_screen_view_branding_description" msgid="7911129347402728216">"תדמית המותג של האפליקציה"</string>
<string name="view_and_control_notification_title" msgid="4300765399209912240">"בדיקה של הגדרות הגישה"</string>
- <string name="view_and_control_notification_content" msgid="8003766498562604034">"לשירות <xliff:g id="SERVICE_NAME">%s</xliff:g> יהיו הרשאות לצפייה ולשליטה במסך. יש להקיש כדי לבדוק."</string>
+ <string name="view_and_control_notification_content" msgid="8003766498562604034">"לשירות <xliff:g id="SERVICE_NAME">%s</xliff:g> יש הרשאה להצגת המסך ושליטה בו. אפשר להקיש כדי לבדוק."</string>
</resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index d571a6b3da5c..a8d2f1a37ffc 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"閉じる"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"応答"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"ビデオ"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"拒否"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"通話終了"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"着信"</string>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index df0db67ea721..ba7beac095a4 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"დახურვა"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"პასუხი"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"ვიდეო"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"უარყოფა"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"გათიშვა"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"შემომავალი ზარი"</string>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 7a4585181a8a..7d6bf121f34d 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -1690,7 +1690,7 @@
<string name="accessibility_shortcut_off" msgid="3651336255403648739">"Қосылмасын"</string>
<string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"ҚОСУЛЫ"</string>
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"ӨШІРУЛІ"</string>
- <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметі құрылғыңызды толық басқаруына рұқсат етілсін бе?"</string>
+ <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметіне құрылғыны толық басқаруға рұқсат етілсін бе?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> қоссаңыз, құрылғыңыз деректерді шифрлау үшін экранды бекітуді пайдаланбайды."</string>
<string name="accessibility_service_warning_description" msgid="291674995220940133">"Арнайы мүмкіндіктер бойынша көмектесетін қолданбаларға ғана құрылғыны толық басқару рұқсатын берген дұрыс."</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Экранды көру және басқару"</string>
@@ -1698,7 +1698,7 @@
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Әрекеттерді көру және орындау"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Рұқсат ету"</string>
- <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Қабылдамау"</string>
+ <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Тыйым салу"</string>
<string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Функцияны пайдалана бастау үшін түртіңіз:"</string>
<string name="accessibility_edit_shortcut_menu_button_title" msgid="239446795930436325">"\"Арнайы мүмкіндіктер\" түймесімен қолданылатын функцияларды таңдаңыз"</string>
<string name="accessibility_edit_shortcut_menu_volume_title" msgid="1077294237378645981">"Дыбыс деңгейі пернелері тіркесімімен қолданылатын функцияларды таңдаңыз"</string>
@@ -2275,5 +2275,5 @@
<string name="splash_screen_view_icon_description" msgid="180638751260598187">"Қолданба белгішесі"</string>
<string name="splash_screen_view_branding_description" msgid="7911129347402728216">"Қолданба брендін ілгері жылжыту кескіні"</string>
<string name="view_and_control_notification_title" msgid="4300765399209912240">"Пайдалану параметрлерін тексеріңіз"</string>
- <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> қызметі экраныңызды көріп, бақылай алады. Көру үшін түртіңіз."</string>
+ <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> экраныңызды көріп, оны басқара алады. Өту үшін түртіңіз."</string>
</resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 110641dea26d..370bb29e0ff6 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"បិទ"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>៖ <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"ឆ្លើយ"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"វីដេអូ"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"បដិសេធ"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"ដាក់​ចុះ"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"ការ​ហៅ​ចូល"</string>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index e5183dc08ece..0daa7fe2eb65 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -1693,7 +1693,7 @@
<string name="accessibility_enable_service_title" msgid="3931558336268541484">"ನಿಮ್ಮ ಸಾಧನದ ಪೂರ್ಣ ನಿಯಂತ್ರಣ ಹೊಂದಲು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸಬೇಕೆ?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ನೀವು <xliff:g id="SERVICE">%1$s</xliff:g> ಅನ್ನು ಆನ್ ಮಾಡಿದರೆ, ನಿಮ್ಮ ಸಾಧನವು ಡೇಟಾ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ವರ್ಧಿಸಲು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ಲಾಕ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ."</string>
<string name="accessibility_service_warning_description" msgid="291674995220940133">"ಪ್ರವೇಶಿಸುವಿಕೆಯ ಅವಶ್ಯಕತೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುವ ಆ್ಯಪ್‌ಗಳಿಗೆ ಪೂರ್ಣ ನಿಯಂತ್ರಣ ನೀಡುವುದು ಸೂಕ್ತವಾಗಿರುತ್ತದೆ, ಆದರೆ ಬಹುತೇಕ ಆ್ಯಪ್‌ಗಳಿಗೆ ಇದು ಸೂಕ್ತವಲ್ಲ."</string>
- <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ಪರದೆಯನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ"</string>
+ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ಸ್ಕ್ರೀನ್ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ಇದು ಪರದೆಯ ಮೇಲಿನ ಎಲ್ಲಾ ವಿಷಯವನ್ನು ಓದಬಹುದು ಮತ್ತು ಇತರ ಆ್ಯಪ್‌ಗಳ ಮೇಲೆ ವಿಷಯವನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು."</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ಕ್ರಿಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ಇದು ಆ್ಯಪ್ ಅಥವಾ ಹಾರ್ಡ್‌ವೇರ್ ಸೆನ್ಸರ್‌ನ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಪರವಾಗಿ ಆ್ಯಪ್‌ಗಳ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು."</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index cad3dff1ad1c..da8f4ab04921 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"닫기"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"답변"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"동영상"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"거절"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"전화 끊기"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"수신 전화"</string>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 40d1bfea0f1e..de0acbea4c14 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Жабуу"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Жооп берүү"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Видео"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Четке кагуу"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Чалууну бүтүрүү"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Кирүүчү чалуу"</string>
@@ -2263,7 +2262,7 @@
<string name="config_pdp_reject_user_authentication_failed" msgid="4531693033885744689"></string>
<string name="config_pdp_reject_service_not_subscribed" msgid="8190338397128671588"></string>
<string name="config_pdp_reject_multi_conn_to_same_pdn_not_allowed" msgid="6024904218067254186"></string>
- <string name="window_magnification_prompt_title" msgid="2876703640772778215">"Жаңы чоңойтуу жөндөөлөрү"</string>
+ <string name="window_magnification_prompt_title" msgid="2876703640772778215">"Чоңойтуу функциясынын жаңы жөндөөлөрү"</string>
<string name="window_magnification_prompt_content" msgid="8159173903032344891">"Эми экрандын бир бөлүгүн чоңойто аласыз"</string>
<string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"Жөндөөлөрдөн күйгүзүү"</string>
<string name="dismiss_action" msgid="1728820550388704784">"Жабуу"</string>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index a13befc42778..caa91544290a 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"ປິດ"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"ຮັບສາຍ"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"ວິດີໂອ"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"ປະຕິເສດ"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"ວາງສາຍ"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"ສາຍໂທເຂົ້າ"</string>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 26b1dd6f39dc..a3a3cdb901dd 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -1693,7 +1693,7 @@
<string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>-д таны төхөөрөмжийг бүрэн хянахыг зөвшөөрөх үү?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Хэрэв та <xliff:g id="SERVICE">%1$s</xliff:g>-г асаавал таны төхөөрөмж өгөгдлийн шифрлэлтийг сайжруулахын тулд таны дэлгэцийн түгжээг ашиглахгүй."</string>
<string name="accessibility_service_warning_description" msgid="291674995220940133">"Бүрэн хянах нь таны хандалтын үйлчилгээний шаардлагад тусалдаг аппуудад тохиромжтой боловч ихэнх аппад тохиромжгүй байдаг."</string>
- <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Харах болон хянах дэлгэц"</string>
+ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Дэлгэцийг харах ба хянах"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Энэ нь дэлгэц дээрх бүх контентыг унших болон контентыг бусад аппад харуулах боломжтой."</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Үйлдлийг харах болон гүйцэтгэх"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Энэ нь таны апп болон техник хангамжийн мэдрэгчтэй хийх харилцан үйлдлийг хянах болон таны өмнөөс апптай харилцан үйлдэл хийх боломжтой."</string>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 393226bb0a95..24ed1b6b3b16 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -277,7 +277,7 @@
<string name="notification_hidden_text" msgid="2835519769868187223">"नवीन सूचना"</string>
<string name="notification_channel_virtual_keyboard" msgid="6465975799223304567">"व्हर्च्युअल कीबोर्ड"</string>
<string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"वास्तविक कीबोर्ड"</string>
- <string name="notification_channel_security" msgid="8516754650348238057">"सुरक्षितता"</string>
+ <string name="notification_channel_security" msgid="8516754650348238057">"सुरक्षा"</string>
<string name="notification_channel_car_mode" msgid="2123919247040988436">"कार मोड"</string>
<string name="notification_channel_account" msgid="6436294521740148173">"खाते स्थिती"</string>
<string name="notification_channel_developer" msgid="1691059964407549150">"डेव्हलपर मेसेज"</string>
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"आपल्या प्रशासकाने अपडेट केले"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"आपल्या प्रशासकाने हटवले"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"ओके"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"बॅटरी सेव्हर गडद थीम सुरू करते आणि बॅकग्राउंड ॲक्टिव्हिटी, काही व्हिज्युअल इफेक्ट व “Ok Google” सारखी वैशिष्‍ट्ये मर्यादित किंवा बंद करते\n\n"<annotation id="url">"अधिक जाणून घ्या"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"बॅटरी सेव्हर गडद थीम सुरू करते आणि बॅकग्राउंड ॲक्टिव्हिटी, काही व्हिज्युअल इफेक्ट व “Ok Google” सारखी वैशिष्‍ट्ये मर्यादित किंवा बंद करते."</string>
<string name="data_saver_description" msgid="4995164271550590517">"डेटाचा वापर कमी करण्यात मदत करण्यासाठी काही अ‍ॅप्सना बॅकग्राउंडमध्ये डेटा पाठवण्यास किंवा मिळवण्यास डेटा सर्व्हर प्रतिबंध करतो. तुम्ही सध्या वापरत असलेले अ‍ॅप डेटा अ‍ॅक्सेस करू शकते, पण तसे खूप कमी वेळा होते. याचाच अर्थ असा की, तुम्ही इमेजवर टॅप करेपर्यंत त्या डिस्प्ले होणार नाहीत असे होऊ शकते."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"डेटा सेव्हर सुरू करायचे?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"सुरू करा"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"ही सूचना सायलंट करण्यात आली आहे. फीडबॅक देण्यासाठी टॅप करा."</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"हा सूचनेला उच्च रँक करण्यात आले. फीडबॅक देण्यासाठी टॅप करा."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"या सूचनेला कमी रँक करण्यात आले. फीडबॅक देण्यासाठी टॅप करा."</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"वर्धित सूचना वापरून पहा"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"सुचवलेल्या कृती, उत्तरे आणि आणखी बरेच काही मिळवत राहण्यासाठी, वर्धित सूचना सुरू करा. Android अ‍ॅडॅप्टिव्ह सूचना यांना आता सपोर्ट नाही."</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"सुरू करा"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"आता नको"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"अधिक जाणून घ्या"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"संपर्कांची नावे आणि मेसेज यांसारख्या वैयक्तिक माहितीच्या समावेशासह वर्धित सूचना या सर्व सूचनांचा आशय वाचू शकतात. हे वैशिष्‍ट्य सूचना डिसमिस करू शकते किंवा फोन कॉलना उत्तर देण्यासारख्या सूचनांमधील बटणवर कृतीदेखील करू शकते.\n\nहे वैशिष्‍ट्य प्राधान्य मोड सुरू किंवा बंद करू शकते आणि संबंधित सेटिंग्जदेखील बदलू शकते."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"दिनक्रम मोडची माहिती सूचना"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"चार्जिंगची सामान्य पातळी गाठेपर्यंत कदाचित बॅटरी संपू शकते"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"बॅटरी लाइफ वाढवण्यासाठी बॅटरी सेव्हर सुरू केला आहे"</string>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 2802c0c0532f..be4bf4fa72d4 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -1692,12 +1692,12 @@
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"ပိတ်ထားသည်"</string>
<string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> ကို သင့်စက်အား အပြည့်အဝထိန်းချုပ်ခွင့် ပေးလိုပါသလား။"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> ဖွင့်လိုက်ပါက သင်၏စက်သည် ဒေတာအသွင်ဝှက်ခြင်း ပိုကောင်းမွန်စေရန် သင့်ဖန်သားပြင်လော့ခ်ကို သုံးမည်မဟုတ်ပါ။"</string>
- <string name="accessibility_service_warning_description" msgid="291674995220940133">"အများသုံးစွဲနိုင်မှု လိုအပ်ချက်များအတွက် အထောက်အကူပြုသည့် အက်ပ်များကို အပြည့်အဝထိန်းချုပ်ခြင်းသည် သင့်လျော်သော်လည်း အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
- <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"မျက်နှာပြင်ကို ကြည့်ရှုပြီး ထိန်းချုပ်ပါ"</string>
+ <string name="accessibility_service_warning_description" msgid="291674995220940133">"အများသုံးစွဲနိုင်မှု လိုအပ်ချက်များအတွက် အထောက်အကူပြုသည့် အက်ပ်များအား အပြည့်အဝ ထိန်းချုပ်ခွင့်ပေးခြင်းသည် သင့်လျော်သော်လည်း အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
+ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ဖန်သားပြင်ကို ကြည့်ရှုထိန်းချုပ်ခြင်း"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"၎င်းသည် မျက်နှာပြင်ပေါ်ရှိ အကြောင်းအရာများအားလုံးကို ဖတ်နိုင်ပြီး အခြားအက်ပ်များအပေါ်တွင် ထိုအကြောင်းအရာကို ဖော်ပြနိုင်သည်။"</string>
- <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"လုပ်ဆောင်ချက်များကို ကြည့်ရှုလုပ်ဆောင်ပါ"</string>
+ <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"လုပ်ဆောင်ချက်များကို ကြည့်ရှုဆောင်ရွက်ခြင်း"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"၎င်းသည် အက်ပ်တစ်ခု သို့မဟုတ် အာရုံခံကိရိယာကို အသုံးပြု၍ သင့်ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"</string>
- <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ခွင့်ပြု"</string>
+ <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ခွင့်ပြုရန်"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ပယ်ရန်"</string>
<string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ဝန်ဆောင်မှုကို စတင်အသုံးပြုရန် တို့ပါ−"</string>
<string name="accessibility_edit_shortcut_menu_button_title" msgid="239446795930436325">"အများသုံးစွဲနိုင်မှု ခလုတ်ဖြင့် အသုံးပြုရန် ဝန်ဆောင်မှုများကို ရွေးပါ"</string>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index e7c8e4bb9296..ece2a53a9504 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -1692,7 +1692,7 @@
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"निष्क्रिय"</string>
<string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई तपाईंको यन्त्र पूर्ण रूपमा नियन्त्रण गर्न दिने हो?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"तपाईंले <xliff:g id="SERVICE">%1$s</xliff:g> सक्रिय गर्नुभयो भने तपाईंको यन्त्रले डेटा इन्क्रिप्ट गर्ने सुविधाको स्तरोन्नति गर्न तपाईंको स्क्रिन लक सुविधाको प्रयोग गर्ने छैन।"</string>
- <string name="accessibility_service_warning_description" msgid="291674995220940133">"तपाईंलाई पहुँच राख्न आवश्यक पर्ने कुरामा सहयोग गर्ने एपमाथि पूर्ण नियन्त्रण गर्नु उपयुक्त हुन्छ तर अधिकांश अनुप्रयोगहरूका हकमा यस्तो नियन्त्रण उपयुक्त हुँदैन।"</string>
+ <string name="accessibility_service_warning_description" msgid="291674995220940133">"एक्सेसिबिलिटीसम्बन्धी आवश्यकतामा सहयोग गर्ने एपको पूर्ण नियन्त्रण गर्नु उपयुक्त हुन्छ तर अधिकांश एपका हकमा यस्तो नियन्त्रण उपयुक्त हुँदैन।"</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"स्क्रिन हेर्नुहोस् र नियन्त्रण गर्नुहोस्"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"यसले स्क्रिनमा देखिने सबै सामग्री पढ्न सक्छ र अन्य एपहरूमा उक्त सामग्री देखाउन सक्छ।"</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"कारबाहीहरू हेर्नुहोस् र तिनमा कार्य गर्नुहोस्"</string>
@@ -2272,7 +2272,7 @@
<string name="config_pdp_reject_service_not_subscribed" msgid="8190338397128671588"></string>
<string name="config_pdp_reject_multi_conn_to_same_pdn_not_allowed" msgid="6024904218067254186"></string>
<string name="window_magnification_prompt_title" msgid="2876703640772778215">"जुम इन गर्ने सुविधासम्बन्धी नयाँ सेटिङ"</string>
- <string name="window_magnification_prompt_content" msgid="8159173903032344891">"तपाईं अब स्क्रिनको जुनसुकै भाग जुम इन गर्न सक्नुहुन्छ"</string>
+ <string name="window_magnification_prompt_content" msgid="8159173903032344891">"तपाईं अब स्क्रिनको जुनसुकै भागमा जुम इन गर्न सक्नुहुन्छ"</string>
<string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"सेटिङमा गई यो सुविधा अन गर्नुहोस्"</string>
<string name="dismiss_action" msgid="1728820550388704784">"हटाउनुहोस्"</string>
<string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"डिभाइसको माइक्रोफोन अनब्लक गर्नुहोस्"</string>
@@ -2282,6 +2282,6 @@
<string name="sensor_privacy_notification_channel_label" msgid="936036783155261349">"सेन्सरसम्बन्धी गोपनीयता"</string>
<string name="splash_screen_view_icon_description" msgid="180638751260598187">"एप जनाउने आइकन"</string>
<string name="splash_screen_view_branding_description" msgid="7911129347402728216">"एपको ब्रान्डिङ फोटो"</string>
- <string name="view_and_control_notification_title" msgid="4300765399209912240">"हेर्ने तथा नियन्त्रण गर्ने अनुमतिसम्बन्धी सेटिङ जाँच्नु…"</string>
- <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ले तपाईंको स्क्रिन हेर्न र नियन्त्रण गर्न सक्छ। समीक्षा गर्न ट्याप गर्नुहोस्।"</string>
+ <string name="view_and_control_notification_title" msgid="4300765399209912240">"हेराइ र नियन्त्रणसम्बन्धी सेटिङ जाँच्नुहोस्"</string>
+ <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> तपाईंको स्क्रिन हेर्न र नियन्त्रण गर्न सक्छ। सेटिङ मिलाउन ट्याप गर्नुहोस्।"</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 1b34edc416e4..0222f6f32409 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -1108,8 +1108,8 @@
<item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> minuut geleden</item>
</plurals>
<plurals name="duration_hours_relative" formatted="false" msgid="420434788589102019">
- <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uur geleden</item>
- <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> uur geleden</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uur geleden, </item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> uur geleden, </item>
</plurals>
<plurals name="duration_days_relative" formatted="false" msgid="6056425878237482431">
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dagen geleden</item>
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Sluiten"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Beantwoorden"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Weigeren"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Ophangen"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Inkomend gesprek"</string>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 077aaf50e226..ac5af41ea33c 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -1694,7 +1694,7 @@
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ਜੇਕਰ ਤੁਸੀਂ <xliff:g id="SERVICE">%1$s</xliff:g> ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਇਨਕ੍ਰਿਪਸ਼ਨ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰੇਗਾ।"</string>
<string name="accessibility_service_warning_description" msgid="291674995220940133">"ਪੂਰਾ ਕੰਟਰੋਲ ਉਹਨਾਂ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਹੈ ਜੋ ਪਹੁੰਚਯੋਗਤਾ ਸੰਬੰਧੀ ਲੋੜਾਂ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਨਹੀਂ ਹੁੰਦਾ।"</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ਸਕ੍ਰੀਨ ਨੂੰ ਦੇਖੋ ਅਤੇ ਕੰਟਰੋਲ ਕਰੋ"</string>
- <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ਇਹ ਸਕ੍ਰੀਨ \'ਤੇ ਸਾਰੀ ਸਮੱਗਰੀ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦੀ ਹੈ।"</string>
+ <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ਇਹ ਸਕ੍ਰੀਨ \'ਤੇ ਸਾਰੀ ਸਮੱਗਰੀ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਦਿਖਾ ਸਕਦੀ ਹੈ।"</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ਕਾਰਵਾਈਆਂ ਦੇਖੋ ਅਤੇ ਕਰੋ"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ਇਹ ਕਿਸੇ ਐਪ ਜਾਂ ਹਾਰਡਵੇਅਰ ਸੈਂਸਰ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੀ ਹੈ, ਅਤੇ ਤੁਹਾਡੀ ਤਰਫ਼ੋਂ ਐਪਾਂ ਦੇ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰ ਸਕਦੀ ਹੈ।"</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ਕਰਨ ਦਿਓ"</string>
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਮਿਟਾਇਆ ਗਿਆ"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"ਠੀਕ ਹੈ"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"ਬੈਟਰੀ ਸੇਵਰ ਗੂੜ੍ਹੇ ਥੀਮ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ ਅਤੇ ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ, ਕੁਝ ਦ੍ਰਿਸ਼ਟੀਗਤ ਪ੍ਰਭਾਵਾਂ ਅਤੇ \"Ok Google\" ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ ਜਾਂ ਬੰਦ ਕਰਦਾ ਹੈ\n\n"<annotation id="url">"ਹੋਰ ਜਾਣੋ"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"ਬੈਟਰੀ ਸੇਵਰ ਗੂੜ੍ਹੇ ਥੀਮ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ ਅਤੇ ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ, ਕੁਝ ਦ੍ਰਿਸ਼ਟੀਗਤ ਪ੍ਰਭਾਵਾਂ ਅਤੇ \"Ok Google\" ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ ਜਾਂ ਬੰਦ ਕਰਦਾ ਹੈ।"</string>
<string name="data_saver_description" msgid="4995164271550590517">"ਡਾਟਾ ਵਰਤੋਂ ਘਟਾਉਣ ਵਿੱਚ ਮਦਦ ਲਈ, ਡਾਟਾ ਸੇਵਰ ਕੁਝ ਐਪਾਂ ਨੂੰ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਡਾਟਾ ਭੇਜਣ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਰਤਮਾਨ ਤੌਰ \'ਤੇ ਵਰਤੀ ਜਾ ਰਹੀ ਐਪ ਡਾਟਾ \'ਤੇ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ, ਪਰ ਉਹ ਇੰਝ ਕਦੇ-ਕਦਾਈਂ ਕਰ ਸਕਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਸ ਦਾ ਮਤਲਬ ਇਹ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਚਿੱਤਰ ਤਦ ਤੱਕ ਨਹੀਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤੇ ਜਾਂਦੇ, ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ \'ਤੇ ਟੈਪ ਨਹੀਂ ਕਰਦੇ।"</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"ਕੀ ਡਾਟਾ ਸੇਵਰ ਚਾਲੂ ਕਰਨਾ ਹੈ?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"ਚਾਲੂ ਕਰੋ"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"ਇਸ ਸੂਚਨਾ ਦਾ ਦਰਜਾ ਘਟਾ ਕੇ ਸ਼ਾਂਤ \'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਵਿਚਾਰ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"ਇਸ ਸੂਚਨਾ ਦਾ ਦਰਜਾ ਵਧਾ ਦਿੱਤਾ ਗਿਆ। ਵਿਚਾਰ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"ਇਸ ਸੂਚਨਾ ਦਾ ਦਰਜਾ ਘਟਾ ਦਿੱਤਾ ਗਿਆ। ਵਿਚਾਰ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਟੈਪ ਕਰੋ।"</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"ਵਿਸਤ੍ਰਿਤ ਸੂਚਨਾਵਾਂ ਅਜ਼ਮਾਓ"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"ਸੁਝਾਈਆਂ ਗਈਆਂ ਕਾਰਵਾਈਆਂ, ਜਵਾਬਾਂ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਰਹਿਣ ਲਈ, ਵਿਸਤ੍ਰਿਤ ਸੂਚਨਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ। Android ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹਨ।"</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"ਚਾਲੂ ਕਰੋ"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"ਹੁਣੇ ਨਹੀਂ"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ਹੋਰ ਜਾਣੋ"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"ਵਿਸਤ੍ਰਿਤ ਸੂਚਨਾਵਾਂ ਸਾਰੀ ਸੂਚਨਾ ਸਮੱਗਰੀ ਨੂੰ ਪੜ੍ਹ ਸਕਦੀਆਂ ਹਨ, ਜਿਸ ਵਿੱਚ ਸੰਪਰਕ ਨਾਮ ਅਤੇ ਸੁਨੇਹੇ ਵਰਗੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਵੀ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਸੂਚਨਾਵਾਂ ਨੂੰ ਖਾਰਜ ਵੀ ਕਰ ਸਕਦੀ ਹੈ ਜਾਂ ਸੂਚਨਾਵਾਂ ਵਿੱਚ ਬਟਨਾਂ \'ਤੇ ਕਾਰਵਾਈਆਂ ਵੀ ਕਰ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਫ਼ੋਨ ਕਾਲਾਂ ਦਾ ਜਵਾਬ ਦੇਣਾ।\n\nਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਤਰਜੀਹੀ ਮੋਡ ਨੂੰ ਚਾਲੂ ਜਾਂ ਬੰਦ ਵੀ ਕਰ ਸਕਦੀ ਹੈ ਅਤੇ ਸੰਬੰਧਿਤ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲ ਸਕਦੀ ਹੈ।"</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ਨਿਯਮਬੱਧ ਮੋਡ ਦੀ ਜਾਣਕਾਰੀ ਵਾਲੀ ਸੂਚਨਾ"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ਬੈਟਰੀ ਚਾਰਜ ਕਰਨ ਦੇ ਮਿੱਥੇ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ਾਇਦ ਬੈਟਰੀ ਖਤਮ ਹੋ ਜਾਵੇ"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ਬੈਟਰੀ ਲਾਈਫ਼ ਵਧਾਉਣ ਲਈ ਬੈਟਰੀ ਸੇਵਰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
@@ -2272,7 +2264,7 @@
<string name="config_pdp_reject_service_not_subscribed" msgid="8190338397128671588"></string>
<string name="config_pdp_reject_multi_conn_to_same_pdn_not_allowed" msgid="6024904218067254186"></string>
<string name="window_magnification_prompt_title" msgid="2876703640772778215">"ਨਵੀਆਂ ਵੱਡਦਰਸ਼ੀਕਰਨ ਸੈਟਿੰਗਾਂ"</string>
- <string name="window_magnification_prompt_content" msgid="8159173903032344891">"ਹੁਣ ਤੁਸੀਂ ਆਪਣੀ ਸਕ੍ਰੀਨ ਦਾ ਕੁਝ ਹਿੱਸਾ ਵੱਡਦਰਸ਼ੀ ਕਰ ਸਕਦੇ ਹੋ"</string>
+ <string name="window_magnification_prompt_content" msgid="8159173903032344891">"ਹੁਣ ਤੁਸੀਂ ਆਪਣੀ ਸਕ੍ਰੀਨ ਦਾ ਕੁਝ ਹਿੱਸਾ ਵੱਡਾ ਕਰ ਸਕਦੇ ਹੋ"</string>
<string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਚਾਲੂ ਕਰੋ"</string>
<string name="dismiss_action" msgid="1728820550388704784">"ਖਾਰਜ ਕਰੋ"</string>
<string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"ਡੀਵਾਈਸ ਦੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਨੂੰ ਅਣਬਲਾਕ ਕਰੋ"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 66a9f5e3541c..89279d4f0f0b 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -1898,10 +1898,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"Zaktualizowany przez administratora"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"Usunięty przez administratora"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"OK"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"Oszczędzanie baterii uruchamia ciemny motyw oraz wyłącza lub ogranicza aktywność w tle, niektóre efekty wizualne i inne funkcje, np. „OK Google”\n\n"<annotation id="url">"Więcej informacji"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"Oszczędzanie baterii uruchamia ciemny motyw oraz wyłącza lub ogranicza aktywność w tle, niektóre efekty wizualne i inne funkcje, np. „OK Google”."</string>
<string name="data_saver_description" msgid="4995164271550590517">"Oszczędzanie danych uniemożliwia niektórym aplikacjom wysyłanie i odbieranie danych w tle, zmniejszając w ten sposób ich użycie. Aplikacja, z której w tej chwili korzystasz, może uzyskiwać dostęp do danych, ale rzadziej. Może to powodować, że obrazy będą się wyświetlać dopiero po kliknięciu."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"Włączyć Oszczędzanie danych?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"Włącz"</string>
@@ -2142,18 +2140,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"To powiadomienie zostało zmienione na Ciche. Kliknij, by przesłać opinię."</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"Podniesiono ważność tego powiadomienia. Kliknij, by przesłać opinię."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"Obniżono ważność tego powiadomienia. Kliknij, by przesłać opinię."</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"Wypróbuj ulepszone powiadomienia"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"Aby nadal otrzymywać sugestie działań oraz odpowiedzi i inne podpowiedzi, włącz ulepszone powiadomienia. Powiadomienia adaptacyjne w Androidzie nie są już obsługiwane."</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"Włącz"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"Nie teraz"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Więcej informacji"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"Ulepszone powiadomienia mogą czytać wszystkie powiadomienia, w tym dane osobowe takie jak nazwy kontaktów i treść wiadomości. Funkcja będzie też mogła odrzucać powiadomienia oraz używać zawartych w nich przycisków, np. odbierać połączenia telefoniczne.\n\nMoże również włączać i wyłączać tryb Priorytet oraz zmieniać powiązane ustawienia."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Powiadomienie z informacją o trybie rutynowym"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Bateria może się wyczerpać przed zwykłą porą ładowania"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Włączono Oszczędzanie baterii, by wydłużyć czas pracy na baterii"</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 354b238cafee..102073e5921e 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Fechar"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Atender"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Vídeo"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Recusar"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Desligar"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Chamada recebida"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 7c1a9ef86cfa..019107a019c1 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Fechar"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Atender"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Vídeo"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Recusar"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Desligar"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Chamada recebida"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 354b238cafee..102073e5921e 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Fechar"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Atender"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Vídeo"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Recusar"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Desligar"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Chamada recebida"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 78324f64b3b0..76b39914ed25 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -1991,8 +1991,7 @@
<string name="close_button_text" msgid="10603510034455258">"Закрыть"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Ответить"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Видео"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Отклонить"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Завершить"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Входящий вызов"</string>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 35f125c9a81a..c0577d68ab97 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"වසන්න"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"පිළිතුරු දෙ."</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"වීඩියෝ"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"ප්‍රතික්ෂේප ක"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"විසන්ධි කරන්න"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"එන ඇමතුම"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index eacc9acd402c..806e5a01516c 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -1991,8 +1991,7 @@
<string name="close_button_text" msgid="10603510034455258">"Zavrieť"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Prijať"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Odmietnuť"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Zložiť"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Prichádzajúci hovor"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 18d2b991525c..96fa82de9a4b 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -1960,8 +1960,7 @@
<string name="close_button_text" msgid="10603510034455258">"Затвори"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Одговори"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Видео"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Одбиј"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Прекини везу"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Долазни позив"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 46944ab8156b..ea069e191f75 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Funga"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Jibu"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Kataa"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Kata simu"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Simu uliyopigiwa"</string>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 36ee454669b7..882af553cdf9 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -251,7 +251,7 @@
<string name="global_action_bug_report" msgid="5127867163044170003">"బగ్ నివేదిక"</string>
<string name="global_action_logout" msgid="6093581310002476511">"సెషన్‌ను ముగించు"</string>
<string name="global_action_screenshot" msgid="2610053466156478564">"స్క్రీన్‌షాట్"</string>
- <string name="bugreport_title" msgid="8549990811777373050">"బగ్ నివేదిక"</string>
+ <string name="bugreport_title" msgid="8549990811777373050">"బగ్ రిపోర్ట్‌"</string>
<string name="bugreport_message" msgid="5212529146119624326">"ఇది ఇ-మెయిల్ సందేశం రూపంలో పంపడానికి మీ ప్రస్తుత పరికర స్థితి గురించి సమాచారాన్ని సేకరిస్తుంది. బగ్ నివేదికను ప్రారంభించడం మొదలుకొని పంపడానికి సిద్ధం చేసే వరకు ఇందుకు కొంత సమయం పడుతుంది; దయచేసి ఓపిక పట్టండి."</string>
<string name="bugreport_option_interactive_title" msgid="7968287837902871289">"ప్రభావశీల నివేదిక"</string>
<string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"చాలా సందర్భాల్లో దీన్ని ఉపయోగించండి. ఇది నివేదిక ప్రోగ్రెస్‌ను ట్రాక్ చేయడానికి, సమస్య గురించి మరిన్ని వివరాలను నమోదు చేయడానికి మరియు స్క్రీన్‌షాట్‌లు తీయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇది నివేదించడానికి ఎక్కువ సమయం పట్టే తక్కువ వినియోగ విభాగాలను విడిచిపెట్టవచ్చు."</string>
@@ -1563,7 +1563,7 @@
<string name="description_target_unlock_tablet" msgid="7431571180065859551">"అన్‌లాక్ చేయడానికి స్వైప్ చేయండి."</string>
<string name="action_bar_home_description" msgid="1501655419158631974">"హోమ్‌కు నావిగేట్ చేయండి"</string>
<string name="action_bar_up_description" msgid="6611579697195026932">"పైకి నావిగేట్ చేయండి"</string>
- <string name="action_menu_overflow_description" msgid="4579536843510088170">"మరిన్ని ఎంపికలు"</string>
+ <string name="action_menu_overflow_description" msgid="4579536843510088170">"మరిన్ని ఆప్షన్‌లు"</string>
<string name="action_bar_home_description_format" msgid="5087107531331621803">"%1$s, %2$s"</string>
<string name="action_bar_home_subtitle_description_format" msgid="4346835454749569826">"%1$s, %2$s, %3$s"</string>
<string name="storage_internal" msgid="8490227947584914460">"షేర్ చేయబడిన అంతర్గత నిల్వ"</string>
@@ -1690,13 +1690,13 @@
<string name="accessibility_shortcut_off" msgid="3651336255403648739">"ఆన్ చేయకండి"</string>
<string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"ఆన్"</string>
<string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"ఆఫ్"</string>
- <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>కి మీ పరికరంపై పూర్తి నియంత్రణను ఇవ్వాలనుకుంటున్నారా?"</string>
+ <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>కి మీ పరికరంపై పూర్తి కంట్రోల్‌ను ఇవ్వాలనుకుంటున్నారా?"</string>
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"మీరు <xliff:g id="SERVICE">%1$s</xliff:g>ని ఆన్ చేస్తే, డేటా ఎన్‌క్రిప్షన్‌ను మెరుగుపరచడానికి మీ పరికరం మీ స్క్రీన్ లాక్‌ను ఉపయోగించదు."</string>
- <string name="accessibility_service_warning_description" msgid="291674995220940133">"అవసరమైన యాక్సెస్ సామర్ధ్యం కోసం యాప్‌లకు పూర్తి నియంత్రణ ఇవ్వడం తగిన పనే అయినా, అన్ని యాప్‌లకు అలా ఇవ్వడం సరికాదు."</string>
- <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"స్క్రీన్‌ను చూసి, నియంత్రించండి"</string>
+ <string name="accessibility_service_warning_description" msgid="291674995220940133">"అవసరమైన యాక్సెసిబిలిటీ కోసం యాప్‌లకు పూర్తి కంట్రోల్ ఇవ్వడం తగిన పనే అయినా, అన్ని యాప్‌లకు అలా ఇవ్వడం సరికాదు."</string>
+ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"స్క్రీన్‌ను చూసి, కంట్రోల్ చేయడం"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"స్క్రీన్‌పై ఉండే కంటెంట్‌ మొత్తాన్ని చదవగలుగుతుంది మరియు ఇతర యాప్‌లలో కూడా ఈ కంటెంట్‌ను ప్రదర్శిస్తుంది."</string>
<string name="accessibility_service_action_perform_title" msgid="779670378951658160">"చర్యలను చూసి, అమలు చేయండి"</string>
- <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"మీరు యాప్‌‌తో చేసే పరస్పర చర్యల‌ను లేదా హార్డ్‌వేర్ సెన్సార్‌ను ట్రాక్ చేస్తూ మీ త‌ర‌ఫున యాప్‌లతో పరస్పరం సమన్వయం చేస్తుంది."</string>
+ <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"మీరు ఒక యాప్‌‌తో చేసే ఇంటరాక్షన్‌లను లేదా హార్డ్‌వేర్ సెన్సార్‌ను ట్రాక్ చేస్తూ మీ త‌ర‌ఫున యాప్‌లతో ఇంటరాక్ట్ చేయగలదు."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"అనుమతించు"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"నిరాకరించు"</string>
<string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ఫీచర్‌ని ఉపయోగించడం ప్రారంభించడానికి, దాన్ని ట్యాప్ చేయండి:"</string>
@@ -1709,7 +1709,7 @@
<string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"సత్వరమార్గాన్ని ఉపయోగించు"</string>
<string name="color_inversion_feature_name" msgid="326050048927789012">"కలర్ మార్పిడి"</string>
<string name="color_correction_feature_name" msgid="3655077237805422597">"కలర్ సరిచేయడం"</string>
- <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"కాంతిని మరింత డిమ్ చేసే"</string>
+ <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"కాంతిని మరింత డిమ్ చేయడం"</string>
<string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"వాల్యూమ్ కీలు నొక్కి ఉంచబడ్డాయి. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ఆన్ చేయబడింది"</string>
<string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"వాల్యూమ్ కీలు నొక్కి ఉంచబడ్డాయి. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ఆఫ్ చేయబడింది"</string>
<string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>ని ఉపయోగించడానికి వాల్యూమ్ కీలు రెండింటినీ 3 సెకన్లు నొక్కి ఉంచండి"</string>
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"మీ నిర్వాహకులు నవీకరించారు"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"మీ నిర్వాహకులు తొలగించారు"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"సరే"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"బ్యాటరీ సేవర్ ముదురు రంగు రూపంను ఆన్ చేస్తుంది అలాగే బ్యాక్‌గ్రౌండ్ యాక్టివిటీని, కొన్ని విజువల్ ఎఫెక్ట్‌లు, అలాగే “Ok Google” వంటి ఫీచర్‌లను పరిమితం చేస్తుంది లేదా ఆఫ్ చేస్తుంది\n\n"<annotation id="url">"మరింత తెలుసుకోండి"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"బ్యాటరీ సేవర్ ముదురు రంగు రూపంను ఆన్ చేస్తుంది అలాగే బ్యాక్‌గ్రౌండ్ యాక్టివిటీని, కొన్ని విజువల్ ఎఫెక్ట్‌లు, అలాగే “Ok Google” వంటి ఫీచర్‌లను పరిమితం చేస్తుంది లేదా ఆఫ్ చేస్తుంది."</string>
<string name="data_saver_description" msgid="4995164271550590517">"డేటా వినియోగాన్ని తగ్గించడంలో డేటా సేవర్ సహాయకరంగా ఉంటుంది. బ్యాక్‌గ్రౌండ్‌లో కొన్ని యాప్‌లు డేటాను పంపకుండా లేదా స్వీకరించకుండా నిరోధిస్తుంది. మీరు ప్రస్తుతం ఉపయోగిస్తోన్న యాప్‌, డేటాను యాక్సెస్ చేయగలదు. కానీ త‌క్కువ సార్లు మాత్ర‌మే అలా చేయవచ్చు. ఉదాహరణకు, మీరు నొక్కే వరకు ఫోటోలు ప్రదర్శించబడవు."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"డేటా సేవర్‌ను ఆన్ చేయాలా?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"ఆన్ చేయి"</string>
@@ -1925,7 +1923,7 @@
<string name="usb_midi_peripheral_name" msgid="490523464968655741">"Android USB పెరిఫెరల్ పోర్ట్"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7557148557088787741">"Android"</string>
<string name="usb_midi_peripheral_product_name" msgid="2836276258480904434">"USB పెరిఫెరల్ పోర్ట్"</string>
- <string name="floating_toolbar_open_overflow_description" msgid="2260297653578167367">"మరిన్ని ఎంపికలు"</string>
+ <string name="floating_toolbar_open_overflow_description" msgid="2260297653578167367">"మరిన్ని ఆప్షన్‌లు"</string>
<string name="floating_toolbar_close_overflow_description" msgid="3949818077708138098">"అతివ్యాప్తిని మూసివేస్తుంది"</string>
<string name="maximize_button_text" msgid="4258922519914732645">"గరిష్టీకరించు"</string>
<string name="close_button_text" msgid="10603510034455258">"మూసివేయి"</string>
@@ -1981,7 +1979,7 @@
<string name="negative_duration" msgid="1938335096972945232">"−<xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="demo_starting_message" msgid="6577581216125805905">"డెమోను ప్రారంభిస్తోంది..."</string>
<string name="demo_restarting_message" msgid="1160053183701746766">"పరికరాన్ని రీసెట్ చేస్తోంది..."</string>
- <string name="suspended_widget_accessibility" msgid="6331451091851326101">"<xliff:g id="LABEL">%1$s</xliff:g> నిలిపివేయబడింది"</string>
+ <string name="suspended_widget_accessibility" msgid="6331451091851326101">"<xliff:g id="LABEL">%1$s</xliff:g> డిజేబుల్ చేయబడింది"</string>
<string name="conference_call" msgid="5731633152336490471">"కాన్ఫరెన్స్ కాల్"</string>
<string name="tooltip_popup_title" msgid="7863719020269945722">"సాధనం చిట్కా"</string>
<string name="app_category_game" msgid="4534216074910244790">"గేమ్‌లు"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"ఈ నోటిఫికేషన్ స్థాయి నిశ్శబ్దంగా ఉండేలా తగ్గించబడింది. ఫీడ్‌బ్యాక్‌ను అందించడానికి ట్యాప్ చేయండి."</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"ఈ నోటిఫికేషన్‌కు ఎక్కువ ర్యాంక్ ఇవ్వబడింది. ఫీడ్‌బ్యాక్‌ను అందించడానికి ట్యాప్ చేయండి."</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"ఈ నోటిఫికేషన్‌కు తక్కువ ర్యాంక్ ఇవ్వబడింది. ఫీడ్‌బ్యాక్‌ను అందించడానికి ట్యాప్ చేయండి."</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"మెరుగైన నోటిఫికేషన్‌ల ట్రై"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"సూచించిన చర్యలు, రిప్లయిలు, అలాగే మరిన్ని పొందడం కొనసాగించడానికి మెరుగైన నోటిఫికేషన్‌లను ఆన్ చేయండి. Android అనుకూల నోటిఫికేషన్‌లు ఇకపై సపోర్ట్ చేయవు."</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"ఆన్ చేయి"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"ఇప్పుడు కాదు"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"మరింత తెలుసుకోండి"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"కాంటాక్ట్ పేర్లు, మెసేజ్‌లు వంటి వ్యక్తిగత సమాచారంతో సహా మెరుగైన నోటిఫికేషన్‌లు అన్ని నోటిఫికేషన్ కంటెంట్‌ను చదవగలవు. ఈ ఫీచర్ నోటిఫికేషన్‌లను తీసివేయవచ్చు లేదా ఫోన్ కాల్‌లకు సమాధానం ఇవ్వడం వంటి నోటిఫికేషన్‌లలోని బటన్‌లపై చర్యలు తీసుకోవచ్చు.\n\nఈ ఫీచర్ ప్రాధాన్యత మోడ్‌ను కూడా ఆన్ లేదా ఆఫ్ చేయవచ్చు, ఇది సంబంధిత సెట్టింగ్‌లను మార్చగలదు."</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"రొటీన్ మోడ్ సమాచార నోటిఫికేషన్"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"మామూలుగా ఛార్జ్ చేసేలోపు బ్యాటరీ ఖాళీ కావచ్చు"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"బ్యాటరీ జీవితకాలాన్ని పెంచడానికి బ్యాటరీ సేవర్ యాక్టివేట్ చేయబడింది"</string>
@@ -2283,5 +2275,5 @@
<string name="splash_screen_view_icon_description" msgid="180638751260598187">"యాప్ చిహ్నం"</string>
<string name="splash_screen_view_branding_description" msgid="7911129347402728216">"యాప్ బ్రాండింగ్ ఇమేజ్"</string>
<string name="view_and_control_notification_title" msgid="4300765399209912240">"యాక్సెస్ సెట్టింగ్‌లను చెక్ చేయండి"</string>
- <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> మీ స్క్రీన్‌ను చూడవచ్చు, నియంత్రించవచ్చు. రివ్యూ చేయడానికి ట్యాప్ చేయండి."</string>
+ <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> మీ స్క్రీన్‌ను చూడవచ్చు, కంట్రోల్ చేయవచ్చు. రివ్యూ చేయడానికి ట్యాప్ చేయండి."</string>
</resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 0860d6ff989f..adaa774d8786 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Isara"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Sagutin"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Tanggihan"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Ibaba"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Papasok na tawag"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 9d12acca668e..bd8532207d88 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -1694,8 +1694,8 @@
<string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetini açarsanız cihazınız veri şifrelemeyi geliştirmek için ekran kilidinizi kullanmaz."</string>
<string name="accessibility_service_warning_description" msgid="291674995220940133">"Erişebilirlik ihtiyaçlarınıza yardımcı olan uygulamalara tam kontrol verilmesi uygundur ancak diğer pek çok uygulama için uygun değildir."</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ekranı görüntüleme ve kontrol etme"</string>
- <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ekrandaki tüm içeriği okuyabilir ve içeriği diğer uygulamaların üzerinde gösterebilir"</string>
- <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"İşlemleri görüntüleyin ve gerçekleştirin"</string>
+ <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ekrandaki tüm içeriği okuyabilir ve içeriği diğer uygulamaların üzerinde gösterebilir."</string>
+ <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"İşlemleri görüntüleme ve gerçekleştirme"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Bir uygulama veya donanım sensörüyle etkileşimlerinizi takip edebilir ve sizin adınıza uygulamalarla etkileşimde bulunabilir."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"İzin ver"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Reddet"</string>
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Kapat"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Yanıtla"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Reddet"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Kapat"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Gelen çağrı"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 16b5ff6f3867..9401d500c2f5 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -1739,7 +1739,7 @@
<string name="accessibility_service_warning_description" msgid="291674995220940133">"Повний доступ доречний для додатків, які надають спеціальні можливості, але його не варто відкривати для більшості інших додатків."</string>
<string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Перегляд і контроль екрана"</string>
<string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Цей сервіс може переглядати всі дані на екрані й показувати вміст над іншими додатками."</string>
- <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Переглянути й виконати дії"</string>
+ <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Перегляд і виконання дій"</string>
<string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені."</string>
<string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Дозволити"</string>
<string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Заборонити"</string>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 92936e00abb0..9291cd2e7064 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"آپ کے منتظم کے ذریعے اپ ڈیٹ کیا گیا"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"آپ کے منتظم کے ذریعے حذف کیا گیا"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"ٹھیک ہے"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"‏بیٹری سیور گہری تھیم کو آن کرتی ہے اور پس منظر کی سرگرمی، کچھ بصری اثرات اور \"Hey Google\" جیسی خصوصیات کو محدود یا آف کرتی ہے\n\n"<annotation id="url">"مزید جانیں"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"‏بیٹری سیور گہری تھیم کو آن کرتی ہے اور پس منظر کی سرگرمی، کچھ بصری اثرات اور \"Hey Google\" جیسی خصوصیات کو محدود یا آف کرتی ہے۔"</string>
<string name="data_saver_description" msgid="4995164271550590517">"ڈیٹا کے استعمال کو کم کرنے میں مدد کیلئے، ڈیٹا سیور پس منظر میں کچھ ایپس کو ڈیٹا بھیجنے یا موصول کرنے سے روکتی ہے۔ آپ جو ایپ فی الحال استعمال کر رہے ہیں وہ ڈیٹا تک رسائی کر سکتی ہے مگر ہو سکتا ہے ایسا اکثر نہ ہو۔ اس کا مطلب مثال کے طور پر یہ ہو سکتا ہے کہ تصاویر تھپتھپانے تک ظاہر نہ ہوں۔"</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"ڈیٹا سیور آن کریں؟"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"آن کریں"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"اس اطلاع کو خاموش پر ڈیموٹ کیا گيا۔ تاثرات فراہم کرنے کے ليے تھپتھپائیں۔"</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"اس اطلاع کو اعلی درجہ دیا گیا۔ تاثرات فراہم کرنے کے ليے تھپتھپائیں۔"</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"اس اطلاع کو کم درجہ دیا گیا۔ تاثرات فراہم کرنے کے ليے تھپتھپائیں۔"</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"بہتر کردہ اطلاعات آزمائیں"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"‏تجویز کردہ کارروائیاں، جوابات اور مزید بہت کچھ حاصل کرنا جاری رکھنے کے لیے بہتر کردہ اطلاعات آن کریں۔ Android اڈاپٹیو اطلاعات اب تعاون یافتہ نہیں ہیں۔"</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"آن کریں"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"ابھی نہیں"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"مزید جانیں"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"بہتر کردہ اطلاعات رابطوں کے نام اور پیغامات جیسی ذاتی معلومات سمیت تمام اطلاعی مواد پڑھ سکتی ہیں۔ یہ خصوصیت اطلاعات کو برخاست بھی کر سکتی ہے یا کالز کا جواب دینے جیسے اطلاعات میں نظر آنے والے بٹنوں سے کارروائیاں کر سکتی ہے۔\n\nیہ خصوصیت ترجیحی موڈ کو آن یا آف بھی کر سکتی ہے اور متعلقہ ترتیبات کو تبدیل کر سکتی ہے۔"</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"روٹین موڈ معلومات کی اطلاع"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"معمول چارج سے پہلے بیٹری ختم ہو سکتی ہے"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"بیٹری لائف کو بڑھانے کے لیے بیٹری سیور کو فعال کر دیا گیا ہے"</string>
@@ -2283,5 +2275,5 @@
<string name="splash_screen_view_icon_description" msgid="180638751260598187">"ایپلیکیشن کا آئیکن"</string>
<string name="splash_screen_view_branding_description" msgid="7911129347402728216">"ایپلیکیشن کی برانڈنگ تصویر"</string>
<string name="view_and_control_notification_title" msgid="4300765399209912240">"رسائی کی ترتیبات چیک کریں"</string>
- <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> آپ کی اسکرین کو دیکھ اور کنٹرول کر سکتی ہیں۔ جائزے کے لیے تھپتھپائیں۔"</string>
+ <string name="view_and_control_notification_content" msgid="8003766498562604034">"‫<xliff:g id="SERVICE_NAME">%s</xliff:g> آپ کی اسکرین کو دیکھ اور کنٹرول کر سکتی ہیں۔ جائزے کے لیے تھپتھپائیں۔"</string>
</resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index c0349c0c99b1..77d81d8f97af 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Đóng"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Trả lời"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Video"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Từ chối"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Kết thúc"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Cuộc gọi đến"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 3e5c1bb1b25d..1d4ee440c9e0 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -1852,10 +1852,8 @@
<string name="package_updated_device_owner" msgid="7560272363805506941">"已由您的管理员更新"</string>
<string name="package_deleted_device_owner" msgid="2292335928930293023">"已由您的管理员删除"</string>
<string name="confirm_battery_saver" msgid="5247976246208245754">"确定"</string>
- <!-- no translation found for battery_saver_description_with_learn_more (7963058670863485450) -->
- <skip />
- <!-- no translation found for battery_saver_description (7695751399533397741) -->
- <skip />
+ <string name="battery_saver_description_with_learn_more" msgid="7963058670863485450">"省电模式会开启深色主题,并限制或关闭后台活动、部分视觉效果和“Ok Google”等功能\n\n"<annotation id="url">"了解详情"</annotation></string>
+ <string name="battery_saver_description" msgid="7695751399533397741">"省电模式会开启深色主题,并限制或关闭后台活动、部分视觉效果和“Ok Google”等功能。"</string>
<string name="data_saver_description" msgid="4995164271550590517">"为了减少流量消耗,流量节省程序会阻止某些应用在后台收发数据。您当前使用的应用可以收发数据,但频率可能会降低。举例而言,这可能意味着图片只有在您点按之后才会显示。"</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"要开启流量节省程序吗?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"开启"</string>
@@ -2076,18 +2074,12 @@
<string name="notification_feedback_indicator_silenced" msgid="3799442124723177262">"系统已将此通知的重要性降低为“静音”。点按即可提供反馈。"</string>
<string name="notification_feedback_indicator_promoted" msgid="9030204303764698640">"系统已提升此通知的重要性。点按即可提供反馈。"</string>
<string name="notification_feedback_indicator_demoted" msgid="8880309924296450875">"系统已降低此通知的重要性。点按即可提供反馈。"</string>
- <!-- no translation found for nas_upgrade_notification_title (4224351129445073051) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_content (7036860187157134706) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_enable_action (4823652531622744798) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_disable_action (7561210256700811433) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_action (7011130656195423947) -->
- <skip />
- <!-- no translation found for nas_upgrade_notification_learn_more_content (6276343083934111208) -->
- <skip />
+ <string name="nas_upgrade_notification_title" msgid="4224351129445073051">"试用增强型通知"</string>
+ <string name="nas_upgrade_notification_content" msgid="7036860187157134706">"如需继续接收建议的操作、回复等内容,请开启增强型通知功能。系统不再支持 Android 自动调节通知功能。"</string>
+ <string name="nas_upgrade_notification_enable_action" msgid="4823652531622744798">"开启"</string>
+ <string name="nas_upgrade_notification_disable_action" msgid="7561210256700811433">"以后再说"</string>
+ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"了解详情"</string>
+ <string name="nas_upgrade_notification_learn_more_content" msgid="6276343083934111208">"增强型通知功能可以读取所有通知内容,包括联系人姓名和消息等个人信息。该功能也能关闭通知或触发通知中的按钮,例如接听来电。\n\n此外,该功能还能开启或关闭“优先”模式,以及更改相关设置。"</string>
<string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"日常安排模式信息通知"</string>
<string name="dynamic_mode_notification_title" msgid="9205715501274608016">"电池电量可能会在您平时的充电时间之前耗尽"</string>
<string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"已启用省电模式以延长电池续航时间"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 2b16bdaaf2c6..9c6b851de2a7 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"關閉"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>:<xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"接聽"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"視像"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"拒接"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"掛斷"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"來電"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 5bfcdf595503..60cfa7e2484a 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -2263,7 +2263,7 @@
<string name="config_pdp_reject_user_authentication_failed" msgid="4531693033885744689"></string>
<string name="config_pdp_reject_service_not_subscribed" msgid="8190338397128671588"></string>
<string name="config_pdp_reject_multi_conn_to_same_pdn_not_allowed" msgid="6024904218067254186"></string>
- <string name="window_magnification_prompt_title" msgid="2876703640772778215">"放大功能推出新設定"</string>
+ <string name="window_magnification_prompt_title" msgid="2876703640772778215">"支援新的放大功能"</string>
<string name="window_magnification_prompt_content" msgid="8159173903032344891">"你現在可以放大局部畫面了"</string>
<string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"在「設定」中開啟"</string>
<string name="dismiss_action" msgid="1728820550388704784">"關閉"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index bf476f179d0f..e2a52f170fd7 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -1929,8 +1929,7 @@
<string name="close_button_text" msgid="10603510034455258">"Vala"</string>
<string name="notification_messaging_title_template" msgid="772857526770251989">"<xliff:g id="CONVERSATION_TITLE">%1$s</xliff:g>: <xliff:g id="SENDER_NAME">%2$s</xliff:g>"</string>
<string name="call_notification_answer_action" msgid="5999246836247132937">"Phendula"</string>
- <!-- no translation found for call_notification_answer_video_action (2086030940195382249) -->
- <skip />
+ <string name="call_notification_answer_video_action" msgid="2086030940195382249">"Ividiyo"</string>
<string name="call_notification_decline_action" msgid="3700345945214000726">"Yenqaba"</string>
<string name="call_notification_hang_up_action" msgid="9130720590159188131">"Vala Ucingo"</string>
<string name="call_notification_incoming_text" msgid="6143109825406638201">"Ikholi engenayo"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index bd1d84811d4f..f097009f9a6e 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -1176,6 +1176,9 @@
<!-- Alternative color applied to surfaces on top of colorBackground. @hide -->
<attr name="colorSurfaceHeader" format="color" />
+ <!-- Color applied to effects. -->
+ <attr name="effectColor" format="color" />
+
<!-- The type of the edge effect. The default is glow. -->
<attr name="edgeEffectType">
<!-- Use a colored glow at the edge. -->
@@ -6540,13 +6543,8 @@
<!-- The radius of the ripple when fully expanded. By default, the
radius is computed based on the size of the ripple's container. -->
<attr name="radius" />
- <!-- The style of the ripple drawable is solid by default -->
- <attr name="rippleStyle">
- <!-- Solid is the default style -->
- <enum name="solid" value="0" />
- <!-- Patterned style-->
- <enum name="patterned" value="1" />
- </attr>
+ <!-- Secondary color of the ripple effect. -->
+ <attr name="effectColor" />
</declare-styleable>
<declare-styleable name="ScaleDrawable">
@@ -9577,7 +9575,7 @@
<!-- Perceptual luminance of a color, in accessibility friendly color space. From 0 to 100. -->
<attr name="lStar" format="float"/>
- <declare-styleable name="DisplayHasherService">
+ <declare-styleable name="DisplayHashingService">
<!-- The throttle duration for display hash requests
@hide @SystemApi -->
<attr name="throttleDurationMillis" format="integer" />
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 588ae79cda1d..3b155dec5693 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1880,6 +1880,9 @@
apps due to inconsistencies in MediaStore collection and lower file system.
When the flag is set, app should scan the file after file path operations to ensure
consistency of MediaStore collection.
+ <p> The flag can be set to false if the app doesn't do many bulk file path operations or if
+ app prefers the system to ensure the consistency of the MediaStore collection for file path
+ operations without scanning the file.
<p> The default value is {@code true} if
<ul>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index f24d663ced16..097244d2a5a0 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -59,6 +59,7 @@
<item><xliff:g id="id">@string/status_bar_mobile</xliff:g></item>
<item><xliff:g id="id">@string/status_bar_airplane</xliff:g></item>
<item><xliff:g id="id">@string/status_bar_no_calling</xliff:g></item>
+ <item><xliff:g id="id">@string/status_bar_call_strength</xliff:g></item>
<item><xliff:g id="id">@string/status_bar_battery</xliff:g></item>
<item><xliff:g id="id">@string/status_bar_sensors_off</xliff:g></item>
</string-array>
@@ -96,6 +97,7 @@
<string translatable="false" name="status_bar_camera">camera</string>
<string translatable="false" name="status_bar_airplane">airplane</string>
<string translatable="false" name="status_bar_no_calling">no_calling</string>
+ <string translatable="false" name="status_bar_call_strength">call_strength</string>
<string translatable="false" name="status_bar_sensors_off">sensors_off</string>
<string translatable="false" name="status_bar_screen_record">screen_record</string>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 0e436e36b474..43c0ec979281 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -242,6 +242,9 @@
this = conversation_content_start (80dp) - button inset (4dp) - action padding (12dp) -->
<dimen name="call_notification_collapsible_indent">64dp</dimen>
+ <!-- The minimum width of the system actions added to the CallStyle notifications. -->
+ <dimen name="call_notification_system_action_min_width">100dp</dimen>
+
<!-- The size of icons for visual actions in the notification_material_action_list -->
<dimen name="notification_actions_icon_size">56dp</dimen>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index f6a67d2ae710..2a76c57f9e07 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3099,6 +3099,7 @@
<!-- @hide @SystemApi -->
<public name="throttleDurationMillis" />
<public name="showInInputMethodPicker" />
+ <public name="effectColor" />
</staging-public-group>
<staging-public-group type="drawable" first-id="0x010800b5">
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 5715fabd3f24..cfde7a1750c2 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2979,6 +2979,7 @@
<java-symbol type="string" name="status_bar_clock" />
<java-symbol type="string" name="status_bar_airplane" />
<java-symbol type="string" name="status_bar_no_calling" />
+ <java-symbol type="string" name="status_bar_call_strength" />
<java-symbol type="string" name="status_bar_mobile" />
<java-symbol type="string" name="status_bar_ethernet" />
<java-symbol type="string" name="status_bar_vpn" />
@@ -3126,6 +3127,7 @@
<java-symbol type="color" name="call_notification_decline_color"/>
<java-symbol type="color" name="call_notification_answer_color"/>
<java-symbol type="dimen" name="call_notification_collapsible_indent"/>
+ <java-symbol type="dimen" name="call_notification_system_action_min_width"/>
<java-symbol type="drawable" name="ic_call_answer" />
<java-symbol type="drawable" name="ic_call_answer_video" />
<java-symbol type="drawable" name="ic_call_decline" />
diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml
index 1d4beae8cc58..41bedb2ed43c 100644
--- a/core/res/res/values/themes_device_defaults.xml
+++ b/core/res/res/values/themes_device_defaults.xml
@@ -234,9 +234,6 @@ easier.
<item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item>
<item name="colorForeground">@color/foreground_device_default_dark</item>
<item name="colorForegroundInverse">@color/foreground_device_default_light</item>
-
- <!-- Ripple style-->
- <item name="rippleStyle">solid</item>
</style>
<style name="Theme.DeviceDefault" parent="Theme.DeviceDefaultBase" />
diff --git a/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java b/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java
index 4dbdc606497e..281ce2bd3ab6 100644
--- a/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java
+++ b/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java
@@ -693,7 +693,7 @@ public class TransactionParcelTests {
@Override
public void updateUiTranslationState(IBinder activityToken, int state,
- TranslationSpec sourceSpec, TranslationSpec destSpec, List<AutofillId> viewIds) {
+ TranslationSpec sourceSpec, TranslationSpec targetSpec, List<AutofillId> viewIds) {
}
}
diff --git a/core/tests/coretests/src/android/graphics/FontListParserTest.java b/core/tests/coretests/src/android/graphics/FontListParserTest.java
index bef1a4e7010f..b2df98dc6374 100644
--- a/core/tests/coretests/src/android/graphics/FontListParserTest.java
+++ b/core/tests/coretests/src/android/graphics/FontListParserTest.java
@@ -59,7 +59,7 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("test.ttf"), null,
+ new FontConfig.Font(new File("test.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", null)),
"sans-serif", LocaleList.getEmptyLocaleList(), VARIANT_DEFAULT);
@@ -77,10 +77,10 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("test.ttf"), null,
+ new FontConfig.Font(new File("test.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", null),
- new FontConfig.Font(new File("test.ttf"), null,
+ new FontConfig.Font(new File("test.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", "serif")),
null, LocaleList.forLanguageTags("en"), VARIANT_DEFAULT);
@@ -97,7 +97,7 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("test.ttf"), null,
+ new FontConfig.Font(new File("test.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", null)),
null, LocaleList.forLanguageTags("en"), VARIANT_COMPACT);
@@ -114,7 +114,7 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("test.ttf"), null,
+ new FontConfig.Font(new File("test.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", null)),
null, LocaleList.forLanguageTags("en"), VARIANT_ELEGANT);
@@ -133,13 +133,13 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("normal.ttf"), null,
+ new FontConfig.Font(new File("normal.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", null),
- new FontConfig.Font(new File("weight.ttf"), null,
+ new FontConfig.Font(new File("weight.ttf"), null, "test",
new FontStyle(100, FONT_SLANT_UPRIGHT),
0, "", null),
- new FontConfig.Font(new File("italic.ttf"), null,
+ new FontConfig.Font(new File("italic.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_ITALIC),
0, "", null)),
"sans-serif", LocaleList.getEmptyLocaleList(), VARIANT_DEFAULT);
@@ -162,10 +162,10 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("test-VF.ttf"), null,
+ new FontConfig.Font(new File("test-VF.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "'wdth' 100.0,'wght' 200.0", null),
- new FontConfig.Font(new File("test-VF.ttf"), null,
+ new FontConfig.Font(new File("test-VF.ttf"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "'wdth' 400.0,'wght' 700.0", null)),
"sans-serif", LocaleList.getEmptyLocaleList(), VARIANT_DEFAULT);
@@ -182,10 +182,30 @@ public final class FontListParserTest {
+ "</family>";
FontConfig.FontFamily expected = new FontConfig.FontFamily(
Arrays.asList(
- new FontConfig.Font(new File("test.ttc"), null,
+ new FontConfig.Font(new File("test.ttc"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
0, "", null),
- new FontConfig.Font(new File("test.ttc"), null,
+ new FontConfig.Font(new File("test.ttc"), null, "test",
+ new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
+ 1, "", null)),
+ "sans-serif", LocaleList.getEmptyLocaleList(), VARIANT_DEFAULT);
+ FontConfig.FontFamily family = readFamily(xml);
+ assertThat(family).isEqualTo(expected);
+ }
+
+ @Test
+ public void psName() throws Exception {
+ String xml = "<?xml version='1.0' encoding='UTF-8'?>"
+ + "<family name='sans-serif'>"
+ + " <font index='0' postScriptName='foo'>test.ttc</font>"
+ + " <font index='1'>test.ttc</font>"
+ + "</family>";
+ FontConfig.FontFamily expected = new FontConfig.FontFamily(
+ Arrays.asList(
+ new FontConfig.Font(new File("test.ttc"), null, "foo",
+ new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
+ 0, "", null),
+ new FontConfig.Font(new File("test.ttc"), null, "test",
new FontStyle(FONT_WEIGHT_NORMAL, FONT_SLANT_UPRIGHT),
1, "", null)),
"sans-serif", LocaleList.getEmptyLocaleList(), VARIANT_DEFAULT);
diff --git a/core/tests/coretests/src/android/graphics/TypefaceTest.java b/core/tests/coretests/src/android/graphics/TypefaceTest.java
index d12f495055e1..6defe9113132 100644
--- a/core/tests/coretests/src/android/graphics/TypefaceTest.java
+++ b/core/tests/coretests/src/android/graphics/TypefaceTest.java
@@ -27,6 +27,7 @@ import android.graphics.fonts.FontFamily;
import android.graphics.fonts.SystemFonts;
import android.os.SharedMemory;
import android.text.FontConfig;
+import android.util.ArrayMap;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.LargeTest;
@@ -200,8 +201,9 @@ public class TypefaceTest {
Map<String, Typeface> systemFontMap = SystemFonts.buildSystemTypefaces(fontConfig,
fallbackMap);
SharedMemory sharedMemory = Typeface.serializeFontMap(systemFontMap);
- Map<String, Typeface> copiedFontMap =
- Typeface.deserializeFontMap(sharedMemory.mapReadOnly().order(ByteOrder.BIG_ENDIAN));
+ Map<String, Typeface> copiedFontMap = new ArrayMap<>();
+ Typeface.deserializeFontMap(sharedMemory.mapReadOnly().order(ByteOrder.BIG_ENDIAN),
+ copiedFontMap);
assertEquals(systemFontMap.size(), copiedFontMap.size());
for (String key : systemFontMap.keySet()) {
assertTrue(copiedFontMap.containsKey(key));
diff --git a/core/tests/coretests/src/android/view/ViewGroupScrollCaptureTest.java b/core/tests/coretests/src/android/view/ViewGroupScrollCaptureTest.java
index 2833ea3f9ac0..695eb0ced756 100644
--- a/core/tests/coretests/src/android/view/ViewGroupScrollCaptureTest.java
+++ b/core/tests/coretests/src/android/view/ViewGroupScrollCaptureTest.java
@@ -92,6 +92,18 @@ public class ViewGroupScrollCaptureTest {
viewGroup.getScrollCaptureHint());
}
+ /** Make sure the hint flags are saved and loaded correctly. */
+ @Test
+ public void testSetScrollCaptureHint_mutuallyExclusiveFlags() throws Exception {
+ final Context context = getInstrumentation().getContext();
+ final MockViewGroup viewGroup = new MockViewGroup(context);
+
+ viewGroup.setScrollCaptureHint(
+ View.SCROLL_CAPTURE_HINT_INCLUDE | View.SCROLL_CAPTURE_HINT_EXCLUDE);
+ assertEquals("Mutually exclusive flags were not resolved correctly",
+ ViewGroup.SCROLL_CAPTURE_HINT_EXCLUDE, viewGroup.getScrollCaptureHint());
+ }
+
/**
* Ensure a ViewGroup with 'scrollCaptureHint=auto', but no ScrollCaptureCallback set dispatches
* correctly. Verifies that the framework helper is called. Verifies a that non-null callback
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java
index 3a6f7b8a1618..e0739be1b295 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java
@@ -167,7 +167,7 @@ public class BatteryUsageStatsRule implements TestRule {
}
BatteryUsageStats apply(BatteryUsageStatsQuery query, PowerCalculator... calculators) {
- final String[] customPowerComponentNames = mBatteryStats.getCustomPowerComponentNames();
+ final String[] customPowerComponentNames = mBatteryStats.getCustomEnergyConsumerNames();
final boolean includePowerModels = (query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_POWER_MODELS) != 0;
BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(
diff --git a/core/tests/coretests/src/com/android/internal/view/RecyclerViewCaptureHelperTest.java b/core/tests/coretests/src/com/android/internal/view/RecyclerViewCaptureHelperTest.java
index 88bbcc29e71a..a6b26be2b9fc 100644
--- a/core/tests/coretests/src/com/android/internal/view/RecyclerViewCaptureHelperTest.java
+++ b/core/tests/coretests/src/com/android/internal/view/RecyclerViewCaptureHelperTest.java
@@ -145,7 +145,9 @@ public class RecyclerViewCaptureHelperTest {
ScrollResult scrollResult = rvc.onScrollRequested(mTarget, scrollBounds, request);
assertThat(request).isEqualTo(scrollResult.requestedArea);
assertThat(request).isEqualTo(scrollResult.availableArea);
- assertThat(scrollResult.scrollDelta).isEqualTo(CAPTURE_HEIGHT);
+ // Capture height centered in the window
+ assertThat(scrollResult.scrollDelta).isEqualTo(
+ CAPTURE_HEIGHT + (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2);
assertAvailableAreaCompletelyVisible(scrollResult, mTarget);
}
@@ -163,7 +165,8 @@ public class RecyclerViewCaptureHelperTest {
ScrollResult scrollResult = helper.onScrollRequested(mTarget, scrollBounds, request);
assertThat(request).isEqualTo(scrollResult.requestedArea);
assertThat(request).isEqualTo(scrollResult.availableArea);
- assertThat(scrollResult.scrollDelta).isEqualTo(-CAPTURE_HEIGHT);
+ assertThat(scrollResult.scrollDelta).isEqualTo(
+ -CAPTURE_HEIGHT - (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2);
assertAvailableAreaCompletelyVisible(scrollResult, mTarget);
}
@@ -182,7 +185,8 @@ public class RecyclerViewCaptureHelperTest {
ScrollResult scrollResult = helper.onScrollRequested(mTarget, scrollBounds, request);
assertThat(request).isEqualTo(scrollResult.requestedArea);
assertThat(request).isEqualTo(scrollResult.availableArea);
- assertThat(scrollResult.scrollDelta).isEqualTo(CAPTURE_HEIGHT);
+ assertThat(scrollResult.scrollDelta).isEqualTo(
+ CAPTURE_HEIGHT + (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2);
assertAvailableAreaCompletelyVisible(scrollResult, mTarget);
}
@@ -200,7 +204,8 @@ public class RecyclerViewCaptureHelperTest {
ScrollResult scrollResult = helper.onScrollRequested(mTarget, scrollBounds, request);
assertThat(request).isEqualTo(scrollResult.requestedArea);
assertThat(request).isEqualTo(scrollResult.availableArea);
- assertThat(scrollResult.scrollDelta).isEqualTo(-CAPTURE_HEIGHT);
+ assertThat(scrollResult.scrollDelta).isEqualTo(
+ -CAPTURE_HEIGHT - (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2);
assertAvailableAreaCompletelyVisible(scrollResult, mTarget);
}
diff --git a/data/etc/car/com.android.car.shell.xml b/data/etc/car/com.android.car.shell.xml
index ec903ad05b12..578c46ee1006 100644
--- a/data/etc/car/com.android.car.shell.xml
+++ b/data/etc/car/com.android.car.shell.xml
@@ -28,5 +28,9 @@
<permission name="android.car.permission.CONTROL_CAR_CLIMATE"/>
<permission name="android.car.permission.CAR_TIRES"/>
<permission name="android.car.permission.READ_CAR_STEERING"/>
+ <permission name="android.car.permission.REQUEST_CAR_EVS_ACTIVITY" />
+ <permission name="android.car.permission.CONTROL_CAR_EVS_ACTIVITY" />
+ <permission name="android.car.permission.USE_CAR_EVS_CAMERA" />
+ <permission name="android.car.permission.MONITOR_CAR_EVS_STATUS" />
</privapp-permissions>
</permissions>
diff --git a/data/etc/car/com.google.android.car.kitchensink.xml b/data/etc/car/com.google.android.car.kitchensink.xml
index e6196c296552..40dda6573ccc 100644
--- a/data/etc/car/com.google.android.car.kitchensink.xml
+++ b/data/etc/car/com.google.android.car.kitchensink.xml
@@ -87,5 +87,9 @@
<permission name="android.car.permission.STORAGE_MONITORING"/>
<permission name="android.car.permission.VMS_PUBLISHER"/>
<permission name="android.car.permission.VMS_SUBSCRIBER"/>
+ <permission name="android.car.permission.REQUEST_CAR_EVS_ACTIVITY" />
+ <permission name="android.car.permission.CONTROL_CAR_EVS_ACTIVITY" />
+ <permission name="android.car.permission.USE_CAR_EVS_CAMERA" />
+ <permission name="android.car.permission.MONITOR_CAR_EVS_STATUS" />
</privapp-permissions>
</permissions>
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index 5f344267d71c..c5a796fb8ce9 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -417,6 +417,8 @@ applications that come with the platform
<permission name="android.permission.SET_WALLPAPER" />
<permission name="android.permission.SET_WALLPAPER_COMPONENT" />
<permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
+ <!-- Permissions required for Incremental CTS tests -->
+ <permission name="com.android.permission.USE_INSTALLER_V2"/>
<permission name="android.permission.LOADER_USAGE_STATS"/>
<!-- Permission required to test system only camera devices. -->
<permission name="android.permission.SYSTEM_CAMERA" />
@@ -517,7 +519,9 @@ applications that come with the platform
<permission name="android.permission.CONFIGURE_DISPLAY_BRIGHTNESS" />
<permission name="android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER" />
<permission name="android.permission.SET_MEDIA_KEY_LISTENER" />
- <permission name="android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER" />
+ <permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS" />
+ <!-- Permission required for CTS test - CtsAlarmManagerTestCases -->
+ <permission name="android.permission.UPDATE_DEVICE_STATS" />
</privapp-permissions>
<privapp-permissions package="com.android.statementservice">
diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json
index 81f1021c6eab..7ed791d6ca71 100644
--- a/data/etc/services.core.protolog.json
+++ b/data/etc/services.core.protolog.json
@@ -1735,6 +1735,12 @@
"group": "WM_DEBUG_IME",
"at": "com\/android\/server\/wm\/InsetsSourceProvider.java"
},
+ "-108977760": {
+ "message": "Sandbox max bounds for uid %s to bounds %s. config to never sandbox = %s, config to always sandbox = %s, letterboxing from mismatch with parent bounds = %s, has mCompatDisplayInsets = %s, should create compatDisplayInsets = %s",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_CONFIGURATION",
+ "at": "com\/android\/server\/wm\/ActivityRecord.java"
+ },
"-106400104": {
"message": "Preload recents with %s",
"level": "DEBUG",
@@ -2887,12 +2893,6 @@
"group": "WM_DEBUG_BOOT",
"at": "com\/android\/server\/wm\/WindowManagerService.java"
},
- "1237719089": {
- "message": "Sandbox max bounds for uid %s to bounds %s. letterboxing from mismatch with parent bounds = %s, has mCompatDisplayInsets = %s, should create compatDisplayInsets = %s",
- "level": "DEBUG",
- "group": "WM_DEBUG_CONFIGURATION",
- "at": "com\/android\/server\/wm\/ActivityRecord.java"
- },
"1246035185": {
"message": "stopFreezingDisplayLocked: Returning waitingForConfig=%b, waitingForRemoteRotation=%b, mAppsFreezingScreen=%d, mWindowsFreezingScreen=%d, mClientFreezingScreen=%b, mOpeningApps.size()=%d",
"level": "DEBUG",
diff --git a/data/fonts/fonts.xml b/data/fonts/fonts.xml
index 2db4c5d6bf2a..11635366a222 100644
--- a/data/fonts/fonts.xml
+++ b/data/fonts/fonts.xml
@@ -223,7 +223,7 @@
<alias name="sans-serif-condensed-medium" to="sans-serif-condensed" weight="500" />
<family name="serif">
- <font weight="400" style="normal">NotoSerif-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSerif">NotoSerif-Regular.ttf</font>
<font weight="700" style="normal">NotoSerif-Bold.ttf</font>
<font weight="400" style="italic">NotoSerif-Italic.ttf</font>
<font weight="700" style="italic">NotoSerif-BoldItalic.ttf</font>
@@ -245,7 +245,7 @@
<alias name="monaco" to="monospace" />
<family name="serif-monospace">
- <font weight="400" style="normal">CutiveMono.ttf</font>
+ <font weight="400" style="normal" postScriptName="CutiveMono-Regular">CutiveMono.ttf</font>
</family>
<alias name="courier" to="serif-monospace" />
<alias name="courier new" to="serif-monospace" />
@@ -255,7 +255,8 @@
</family>
<family name="cursive">
- <font weight="400" style="normal">DancingScript-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="DancingScript">DancingScript-Regular.ttf
+ </font>
<font weight="700" style="normal">DancingScript-Bold.ttf</font>
</family>
@@ -271,148 +272,195 @@
<font weight="700" style="normal">SourceSansPro-Bold.ttf</font>
<font weight="700" style="italic">SourceSansPro-BoldItalic.ttf</font>
</family>
- <alias name="source-sans-pro-semi-bold" to="source-sans-pro" weight="600" />
+ <alias name="source-sans-pro-semi-bold" to="source-sans-pro" weight="600"/>
<!-- fallback fonts -->
<family lang="und-Arab" variant="elegant">
- <font weight="400" style="normal">NotoNaskhArabic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoNaskhArabic">
+ NotoNaskhArabic-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoNaskhArabic-Bold.ttf</font>
</family>
<family lang="und-Arab" variant="compact">
- <font weight="400" style="normal">NotoNaskhArabicUI-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoNaskhArabicUI">
+ NotoNaskhArabicUI-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoNaskhArabicUI-Bold.ttf</font>
</family>
<family lang="und-Ethi">
- <font weight="400" style="normal">NotoSansEthiopic-VF.ttf
- <axis tag="wght" stylevalue="400"/>
- </font>
- <font weight="500" style="normal">NotoSansEthiopic-VF.ttf
- <axis tag="wght" stylevalue="500"/>
- </font>
- <font weight="600" style="normal">NotoSansEthiopic-VF.ttf
- <axis tag="wght" stylevalue="600"/>
- </font>
- <font weight="700" style="normal">NotoSansEthiopic-VF.ttf
- <axis tag="wght" stylevalue="700"/>
- </font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifEthiopic-VF.ttf
- <axis tag="wght" stylevalue="400"/>
- </font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifEthiopic-VF.ttf
- <axis tag="wght" stylevalue="500"/>
- </font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifEthiopic-VF.ttf
- <axis tag="wght" stylevalue="600"/>
- </font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifEthiopic-VF.ttf
- <axis tag="wght" stylevalue="700"/>
- </font>
+ <font weight="400" style="normal" postScriptName="NotoSansEthiopic-Regular">
+ NotoSansEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="400"/>
+ </font>
+ <font weight="500" style="normal" postScriptName="NotoSansEthiopic-Regular">
+ NotoSansEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="500"/>
+ </font>
+ <font weight="600" style="normal" postScriptName="NotoSansEthiopic-Regular">
+ NotoSansEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="600"/>
+ </font>
+ <font weight="700" style="normal" postScriptName="NotoSansEthiopic-Regular">
+ NotoSansEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="700"/>
+ </font>
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifEthiopic-Regular">NotoSerifEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="400"/>
+ </font>
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifEthiopic-Regular">NotoSerifEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="500"/>
+ </font>
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifEthiopic-Regular">NotoSerifEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="600"/>
+ </font>
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifEthiopic-Regular">NotoSerifEthiopic-VF.ttf
+ <axis tag="wght" stylevalue="700"/>
+ </font>
</family>
<family lang="und-Hebr">
- <font weight="400" style="normal">NotoSansHebrew-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansHebrew">
+ NotoSansHebrew-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansHebrew-Bold.ttf</font>
<font weight="400" style="normal" fallbackFor="serif">NotoSerifHebrew-Regular.ttf</font>
<font weight="700" style="normal" fallbackFor="serif">NotoSerifHebrew-Bold.ttf</font>
</family>
<family lang="und-Thai" variant="elegant">
- <font weight="400" style="normal">NotoSansThai-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansThai">NotoSansThai-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansThai-Bold.ttf</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifThai-Regular.ttf</font>
+ <font weight="400" style="normal" fallbackFor="serif" postScriptName="NotoSerifThai">
+ NotoSerifThai-Regular.ttf
+ </font>
<font weight="700" style="normal" fallbackFor="serif">NotoSerifThai-Bold.ttf</font>
</family>
<family lang="und-Thai" variant="compact">
- <font weight="400" style="normal">NotoSansThaiUI-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansThaiUI">
+ NotoSansThaiUI-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansThaiUI-Bold.ttf</font>
</family>
<family lang="und-Armn">
- <font weight="400" style="normal">NotoSansArmenian-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansArmenian-Regular">
+ NotoSansArmenian-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansArmenian-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansArmenian-Regular">
+ NotoSansArmenian-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansArmenian-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansArmenian-Regular">
+ NotoSansArmenian-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansArmenian-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansArmenian-Regular">
+ NotoSansArmenian-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifArmenian-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifArmenian-Regular">NotoSerifArmenian-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifArmenian-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifArmenian-Regular">NotoSerifArmenian-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifArmenian-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifArmenian-Regular">NotoSerifArmenian-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifArmenian-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifArmenian-Regular">NotoSerifArmenian-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Geor,und-Geok">
- <font weight="400" style="normal">NotoSansGeorgian-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansGeorgian-Regular">
+ NotoSansGeorgian-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansGeorgian-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansGeorgian-Regular">
+ NotoSansGeorgian-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansGeorgian-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansGeorgian-Regular">
+ NotoSansGeorgian-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansGeorgian-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansGeorgian-Regular">
+ NotoSansGeorgian-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGeorgian-Regular">NotoSerifGeorgian-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGeorgian-Regular">NotoSerifGeorgian-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGeorgian-Regular">NotoSerifGeorgian-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGeorgian-Regular">NotoSerifGeorgian-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Deva" variant="elegant">
- <font weight="400" style="normal">NotoSansDevanagari-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansDevanagari-Regular">
+ NotoSansDevanagari-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansDevanagari-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansDevanagari-Regular">
+ NotoSansDevanagari-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansDevanagari-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansDevanagari-Regular">
+ NotoSansDevanagari-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansDevanagari-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansDevanagari-Regular">
+ NotoSansDevanagari-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifDevanagari-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifDevanagari-Regular">NotoSerifDevanagari-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifDevanagari-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifDevanagari-Regular">NotoSerifDevanagari-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifDevanagari-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifDevanagari-Regular">NotoSerifDevanagari-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifDevanagari-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifDevanagari-Regular">NotoSerifDevanagari-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Deva" variant="compact">
- <font weight="400" style="normal">NotoSansDevanagariUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansDevanagariUI-Regular">
+ NotoSansDevanagariUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansDevanagariUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansDevanagariUI-Regular">
+ NotoSansDevanagariUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansDevanagariUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansDevanagariUI-Regular">
+ NotoSansDevanagariUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansDevanagariUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansDevanagariUI-Regular">
+ NotoSansDevanagariUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
@@ -421,347 +469,451 @@
danda characters.
-->
<family lang="und-Gujr" variant="elegant">
- <font weight="400" style="normal">NotoSansGujarati-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansGujarati">
+ NotoSansGujarati-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansGujarati-Bold.ttf</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifGujarati-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGujarati-Regular">NotoSerifGujarati-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifGujarati-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGujarati-Regular">NotoSerifGujarati-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifGujarati-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGujarati-Regular">NotoSerifGujarati-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifGujarati-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGujarati-Regular">NotoSerifGujarati-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Gujr" variant="compact">
- <font weight="400" style="normal">NotoSansGujaratiUI-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansGujaratiUI">
+ NotoSansGujaratiUI-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansGujaratiUI-Bold.ttf</font>
</family>
<family lang="und-Guru" variant="elegant">
- <font weight="400" style="normal">NotoSansGurmukhi-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansGurmukhi-Regular">
+ NotoSansGurmukhi-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansGurmukhi-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansGurmukhi-Regular">
+ NotoSansGurmukhi-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansGurmukhi-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansGurmukhi-Regular">
+ NotoSansGurmukhi-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansGurmukhi-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansGurmukhi-Regular">
+ NotoSansGurmukhi-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifGurmukhi-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGurmukhi-Regular">NotoSerifGurmukhi-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifGurmukhi-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGurmukhi-Regular">NotoSerifGurmukhi-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifGurmukhi-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGurmukhi-Regular">NotoSerifGurmukhi-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifGurmukhi-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifGurmukhi-Regular">NotoSerifGurmukhi-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Guru" variant="compact">
- <font weight="400" style="normal">NotoSansGurmukhiUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansGurmukhiUI-Regular">
+ NotoSansGurmukhiUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansGurmukhiUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansGurmukhiUI-Regular">
+ NotoSansGurmukhiUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansGurmukhiUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansGurmukhiUI-Regular">
+ NotoSansGurmukhiUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansGurmukhiUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansGurmukhiUI-Regular">
+ NotoSansGurmukhiUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Taml" variant="elegant">
- <font weight="400" style="normal">NotoSansTamil-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansTamil-Regular">
+ NotoSansTamil-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansTamil-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansTamil-Regular">
+ NotoSansTamil-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansTamil-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansTamil-Regular">
+ NotoSansTamil-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansTamil-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansTamil-Regular">
+ NotoSansTamil-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifTamil-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTamil-Regular">NotoSerifTamil-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifTamil-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTamil-Regular">NotoSerifTamil-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifTamil-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTamil-Regular">NotoSerifTamil-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifTamil-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTamil-Regular">NotoSerifTamil-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Taml" variant="compact">
- <font weight="400" style="normal">NotoSansTamilUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansTamilUI-Regular">
+ NotoSansTamilUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansTamilUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansTamilUI-Regular">
+ NotoSansTamilUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansTamilUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansTamilUI-Regular">
+ NotoSansTamilUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansTamilUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansTamilUI-Regular">
+ NotoSansTamilUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Mlym" variant="elegant">
- <font weight="400" style="normal">NotoSansMalayalam-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansMalayalam-Regular">
+ NotoSansMalayalam-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansMalayalam-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansMalayalam-Regular">
+ NotoSansMalayalam-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansMalayalam-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansMalayalam-Regular">
+ NotoSansMalayalam-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansMalayalam-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansMalayalam-Regular">
+ NotoSansMalayalam-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifMalayalam-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifMalayalam-Regular">NotoSerifMalayalam-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifMalayalam-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifMalayalam-Regular">NotoSerifMalayalam-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifMalayalam-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifMalayalam-Regular">NotoSerifMalayalam-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifMalayalam-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifMalayalam-Regular">NotoSerifMalayalam-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Mlym" variant="compact">
- <font weight="400" style="normal">NotoSansMalayalamUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansMalayalamUI-Regular">
+ NotoSansMalayalamUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansMalayalamUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansMalayalamUI-Regular">
+ NotoSansMalayalamUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansMalayalamUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansMalayalamUI-Regular">
+ NotoSansMalayalamUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansMalayalamUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansMalayalamUI-Regular">
+ NotoSansMalayalamUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Beng" variant="elegant">
- <font weight="400" style="normal">NotoSansBengali-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansBengali-Regular">
+ NotoSansBengali-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansBengali-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansBengali-Regular">
+ NotoSansBengali-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansBengali-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansBengali-Regular">
+ NotoSansBengali-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansBengali-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansBengali-Regular">
+ NotoSansBengali-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifBengali-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifBengali-Regular">NotoSerifBengali-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifBengali-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifBengali-Regular">NotoSerifBengali-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifBengali-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifBengali-Regular">NotoSerifBengali-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifBengali-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifBengali-Regular">NotoSerifBengali-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Beng" variant="compact">
- <font weight="400" style="normal">NotoSansBengaliUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansBengaliUI-Regular">
+ NotoSansBengaliUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansBengaliUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansBengaliUI-Regular">
+ NotoSansBengaliUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansBengaliUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansBengaliUI-Regular">
+ NotoSansBengaliUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansBengaliUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansBengaliUI-Regular">
+ NotoSansBengaliUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Telu" variant="elegant">
- <font weight="400" style="normal">NotoSansTelugu-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansTelugu-Regular">
+ NotoSansTelugu-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansTelugu-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansTelugu-Regular">
+ NotoSansTelugu-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansTelugu-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansTelugu-Regular">
+ NotoSansTelugu-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansTelugu-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansTelugu-Regular">
+ NotoSansTelugu-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifTelugu-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTelugu-Regular">NotoSerifTelugu-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifTelugu-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTelugu-Regular">NotoSerifTelugu-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifTelugu-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTelugu-Regular">NotoSerifTelugu-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifTelugu-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifTelugu-Regular">NotoSerifTelugu-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Telu" variant="compact">
- <font weight="400" style="normal">NotoSansTeluguUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansTeluguUI-Regular">
+ NotoSansTeluguUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansTeluguUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansTeluguUI-Regular">
+ NotoSansTeluguUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansTeluguUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansTeluguUI-Regular">
+ NotoSansTeluguUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansTeluguUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansTeluguUI-Regular">
+ NotoSansTeluguUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Knda" variant="elegant">
- <font weight="400" style="normal">NotoSansKannada-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansKannada-Regular">
+ NotoSansKannada-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansKannada-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansKannada-Regular">
+ NotoSansKannada-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansKannada-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansKannada-Regular">
+ NotoSansKannada-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansKannada-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansKannada-Regular">
+ NotoSansKannada-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifKannada-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifKannada-Regular">NotoSerifKannada-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifKannada-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifKannada-Regular">NotoSerifKannada-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifKannada-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifKannada-Regular">NotoSerifKannada-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifKannada-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifKannada-Regular">NotoSerifKannada-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Knda" variant="compact">
- <font weight="400" style="normal">NotoSansKannadaUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansKannadaUI-Regular">
+ NotoSansKannadaUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansKannadaUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansKannadaUI-Regular">
+ NotoSansKannadaUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansKannadaUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansKannadaUI-Regular">
+ NotoSansKannadaUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansKannadaUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansKannadaUI-Regular">
+ NotoSansKannadaUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Orya" variant="elegant">
- <font weight="400" style="normal">NotoSansOriya-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOriya">NotoSansOriya-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansOriya-Bold.ttf</font>
</family>
<family lang="und-Orya" variant="compact">
- <font weight="400" style="normal">NotoSansOriyaUI-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOriyaUI">
+ NotoSansOriyaUI-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansOriyaUI-Bold.ttf</font>
</family>
<family lang="und-Sinh" variant="elegant">
- <font weight="400" style="normal">NotoSansSinhala-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansSinhala-Regular">
+ NotoSansSinhala-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansSinhala-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansSinhala-Regular">
+ NotoSansSinhala-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansSinhala-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansSinhala-Regular">
+ NotoSansSinhala-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansSinhala-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansSinhala-Regular">
+ NotoSansSinhala-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifSinhala-VF.ttf
+ <font weight="400" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifSinhala-Regular">NotoSerifSinhala-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal" fallbackFor="serif">NotoSerifSinhala-VF.ttf
+ <font weight="500" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifSinhala-Regular">NotoSerifSinhala-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal" fallbackFor="serif">NotoSerifSinhala-VF.ttf
+ <font weight="600" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifSinhala-Regular">NotoSerifSinhala-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal" fallbackFor="serif">NotoSerifSinhala-VF.ttf
+ <font weight="700" style="normal" fallbackFor="serif"
+ postScriptName="NotoSerifSinhala-Regular">NotoSerifSinhala-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Sinh" variant="compact">
- <font weight="400" style="normal">NotoSansSinhalaUI-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansSinhalaUI-Regular">
+ NotoSansSinhalaUI-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansSinhalaUI-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansSinhalaUI-Regular">
+ NotoSansSinhalaUI-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansSinhalaUI-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansSinhalaUI-Regular">
+ NotoSansSinhalaUI-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansSinhalaUI-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansSinhalaUI-Regular">
+ NotoSansSinhalaUI-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Khmr" variant="elegant">
- <font weight="100" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="100" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="26.0"/>
</font>
- <font weight="200" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="200" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="39.0"/>
</font>
- <font weight="300" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="300" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="58.0"/>
</font>
- <font weight="400" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="90.0"/>
</font>
- <font weight="500" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="108.0"/>
</font>
- <font weight="600" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="128.0"/>
</font>
- <font weight="700" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="151.0"/>
</font>
- <font weight="800" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="800" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="169.0"/>
</font>
- <font weight="900" style="normal">NotoSansKhmer-VF.ttf
+ <font weight="900" style="normal" postScriptName="NotoSansKhmer-Regular">
+ NotoSansKhmer-VF.ttf
<axis tag="wdth" stylevalue="100.0"/>
<axis tag="wght" stylevalue="190.0"/>
</font>
@@ -769,17 +921,23 @@
<font weight="700" style="normal" fallbackFor="serif">NotoSerifKhmer-Bold.otf</font>
</family>
<family lang="und-Khmr" variant="compact">
- <font weight="400" style="normal">NotoSansKhmerUI-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansKhmerUI">
+ NotoSansKhmerUI-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansKhmerUI-Bold.ttf</font>
</family>
<family lang="und-Laoo" variant="elegant">
- <font weight="400" style="normal">NotoSansLao-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLao">NotoSansLao-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansLao-Bold.ttf</font>
- <font weight="400" style="normal" fallbackFor="serif">NotoSerifLao-Regular.ttf</font>
+ <font weight="400" style="normal" fallbackFor="serif" postScriptName="NotoSerifLao">
+ NotoSerifLao-Regular.ttf
+ </font>
<font weight="700" style="normal" fallbackFor="serif">NotoSerifLao-Bold.ttf</font>
</family>
<family lang="und-Laoo" variant="compact">
- <font weight="400" style="normal">NotoSansLaoUI-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLaoUI">NotoSansLaoUI-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansLaoUI-Bold.ttf</font>
</family>
<family lang="und-Mymr" variant="elegant">
@@ -795,56 +953,78 @@
<font weight="700" style="normal">NotoSansMyanmarUI-Bold.otf</font>
</family>
<family lang="und-Thaa">
- <font weight="400" style="normal">NotoSansThaana-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansThaana">
+ NotoSansThaana-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansThaana-Bold.ttf</font>
</family>
<family lang="und-Cham">
- <font weight="400" style="normal">NotoSansCham-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansCham">NotoSansCham-Regular.ttf
+ </font>
<font weight="700" style="normal">NotoSansCham-Bold.ttf</font>
</family>
<family lang="und-Ahom">
<font weight="400" style="normal">NotoSansAhom-Regular.otf</font>
</family>
<family lang="und-Adlm">
- <font weight="400" style="normal">NotoSansAdlam-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansAdlam-Regular">
+ NotoSansAdlam-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansAdlam-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansAdlam-Regular">
+ NotoSansAdlam-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansAdlam-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansAdlam-Regular">
+ NotoSansAdlam-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansAdlam-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansAdlam-Regular">
+ NotoSansAdlam-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Avst">
- <font weight="400" style="normal">NotoSansAvestan-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansAvestan">
+ NotoSansAvestan-Regular.ttf
+ </font>
</family>
<family lang="und-Bali">
- <font weight="400" style="normal">NotoSansBalinese-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansBalinese">
+ NotoSansBalinese-Regular.ttf
+ </font>
</family>
<family lang="und-Bamu">
- <font weight="400" style="normal">NotoSansBamum-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansBamum">NotoSansBamum-Regular.ttf
+ </font>
</family>
<family lang="und-Batk">
- <font weight="400" style="normal">NotoSansBatak-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansBatak">NotoSansBatak-Regular.ttf
+ </font>
</family>
<family lang="und-Brah">
- <font weight="400" style="normal">NotoSansBrahmi-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansBrahmi">
+ NotoSansBrahmi-Regular.ttf
+ </font>
</family>
<family lang="und-Bugi">
- <font weight="400" style="normal">NotoSansBuginese-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansBuginese">
+ NotoSansBuginese-Regular.ttf
+ </font>
</family>
<family lang="und-Buhd">
- <font weight="400" style="normal">NotoSansBuhid-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansBuhid">NotoSansBuhid-Regular.ttf
+ </font>
</family>
<family lang="und-Cans">
- <font weight="400" style="normal">NotoSansCanadianAboriginal-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansCanadianAboriginal">
+ NotoSansCanadianAboriginal-Regular.ttf
+ </font>
</family>
<family lang="und-Cari">
- <font weight="400" style="normal">NotoSansCarian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansCarian">
+ NotoSansCarian-Regular.ttf
+ </font>
</family>
<family lang="und-Cakm">
<font weight="400" style="normal">NotoSansChakma-Regular.otf</font>
@@ -853,164 +1033,255 @@
<font weight="400" style="normal">NotoSansCherokee-Regular.ttf</font>
</family>
<family lang="und-Copt">
- <font weight="400" style="normal">NotoSansCoptic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansCoptic">
+ NotoSansCoptic-Regular.ttf
+ </font>
</family>
<family lang="und-Xsux">
- <font weight="400" style="normal">NotoSansCuneiform-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansCuneiform">
+ NotoSansCuneiform-Regular.ttf
+ </font>
</family>
<family lang="und-Cprt">
- <font weight="400" style="normal">NotoSansCypriot-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansCypriot">
+ NotoSansCypriot-Regular.ttf
+ </font>
</family>
<family lang="und-Dsrt">
- <font weight="400" style="normal">NotoSansDeseret-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansDeseret">
+ NotoSansDeseret-Regular.ttf
+ </font>
</family>
<family lang="und-Egyp">
- <font weight="400" style="normal">NotoSansEgyptianHieroglyphs-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansEgyptianHieroglyphs">
+ NotoSansEgyptianHieroglyphs-Regular.ttf
+ </font>
</family>
<family lang="und-Elba">
<font weight="400" style="normal">NotoSansElbasan-Regular.otf</font>
</family>
<family lang="und-Glag">
- <font weight="400" style="normal">NotoSansGlagolitic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansGlagolitic">
+ NotoSansGlagolitic-Regular.ttf
+ </font>
</family>
<family lang="und-Goth">
- <font weight="400" style="normal">NotoSansGothic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansGothic">
+ NotoSansGothic-Regular.ttf
+ </font>
</family>
<family lang="und-Hano">
- <font weight="400" style="normal">NotoSansHanunoo-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansHanunoo">
+ NotoSansHanunoo-Regular.ttf
+ </font>
</family>
<family lang="und-Armi">
- <font weight="400" style="normal">NotoSansImperialAramaic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansImperialAramaic">
+ NotoSansImperialAramaic-Regular.ttf
+ </font>
</family>
<family lang="und-Phli">
- <font weight="400" style="normal">NotoSansInscriptionalPahlavi-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansInscriptionalPahlavi">
+ NotoSansInscriptionalPahlavi-Regular.ttf
+ </font>
</family>
<family lang="und-Prti">
- <font weight="400" style="normal">NotoSansInscriptionalParthian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansInscriptionalParthian">
+ NotoSansInscriptionalParthian-Regular.ttf
+ </font>
</family>
<family lang="und-Java">
<font weight="400" style="normal">NotoSansJavanese-Regular.otf</font>
</family>
<family lang="und-Kthi">
- <font weight="400" style="normal">NotoSansKaithi-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansKaithi">
+ NotoSansKaithi-Regular.ttf
+ </font>
</family>
<family lang="und-Kali">
- <font weight="400" style="normal">NotoSansKayahLi-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansKayahLi">
+ NotoSansKayahLi-Regular.ttf
+ </font>
</family>
<family lang="und-Khar">
- <font weight="400" style="normal">NotoSansKharoshthi-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansKharoshthi">
+ NotoSansKharoshthi-Regular.ttf
+ </font>
</family>
<family lang="und-Lepc">
- <font weight="400" style="normal">NotoSansLepcha-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLepcha">
+ NotoSansLepcha-Regular.ttf
+ </font>
</family>
<family lang="und-Limb">
- <font weight="400" style="normal">NotoSansLimbu-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLimbu">NotoSansLimbu-Regular.ttf
+ </font>
</family>
<family lang="und-Linb">
- <font weight="400" style="normal">NotoSansLinearB-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLinearB">
+ NotoSansLinearB-Regular.ttf
+ </font>
</family>
<family lang="und-Lisu">
- <font weight="400" style="normal">NotoSansLisu-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLisu">NotoSansLisu-Regular.ttf
+ </font>
</family>
<family lang="und-Lyci">
- <font weight="400" style="normal">NotoSansLycian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLycian">
+ NotoSansLycian-Regular.ttf
+ </font>
</family>
<family lang="und-Lydi">
- <font weight="400" style="normal">NotoSansLydian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansLydian">
+ NotoSansLydian-Regular.ttf
+ </font>
</family>
<family lang="und-Mand">
- <font weight="400" style="normal">NotoSansMandaic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansMandaic">
+ NotoSansMandaic-Regular.ttf
+ </font>
</family>
<family lang="und-Mtei">
- <font weight="400" style="normal">NotoSansMeeteiMayek-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansMeeteiMayek">
+ NotoSansMeeteiMayek-Regular.ttf
+ </font>
</family>
<family lang="und-Talu">
- <font weight="400" style="normal">NotoSansNewTaiLue-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansNewTaiLue">
+ NotoSansNewTaiLue-Regular.ttf
+ </font>
</family>
<family lang="und-Nkoo">
- <font weight="400" style="normal">NotoSansNKo-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansNKo">NotoSansNKo-Regular.ttf
+ </font>
</family>
<family lang="und-Ogam">
- <font weight="400" style="normal">NotoSansOgham-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOgham">NotoSansOgham-Regular.ttf
+ </font>
</family>
<family lang="und-Olck">
- <font weight="400" style="normal">NotoSansOlChiki-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOlChiki">
+ NotoSansOlChiki-Regular.ttf
+ </font>
</family>
<family lang="und-Ital">
- <font weight="400" style="normal">NotoSansOldItalic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOldItalic">
+ NotoSansOldItalic-Regular.ttf
+ </font>
</family>
<family lang="und-Xpeo">
- <font weight="400" style="normal">NotoSansOldPersian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOldPersian">
+ NotoSansOldPersian-Regular.ttf
+ </font>
</family>
<family lang="und-Sarb">
- <font weight="400" style="normal">NotoSansOldSouthArabian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOldSouthArabian">
+ NotoSansOldSouthArabian-Regular.ttf
+ </font>
</family>
<family lang="und-Orkh">
- <font weight="400" style="normal">NotoSansOldTurkic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOldTurkic">
+ NotoSansOldTurkic-Regular.ttf
+ </font>
</family>
<family lang="und-Osge">
<font weight="400" style="normal">NotoSansOsage-Regular.ttf</font>
</family>
<family lang="und-Osma">
- <font weight="400" style="normal">NotoSansOsmanya-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansOsmanya">
+ NotoSansOsmanya-Regular.ttf
+ </font>
</family>
<family lang="und-Phnx">
- <font weight="400" style="normal">NotoSansPhoenician-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansPhoenician">
+ NotoSansPhoenician-Regular.ttf
+ </font>
</family>
<family lang="und-Rjng">
- <font weight="400" style="normal">NotoSansRejang-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansRejang">
+ NotoSansRejang-Regular.ttf
+ </font>
</family>
<family lang="und-Runr">
- <font weight="400" style="normal">NotoSansRunic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansRunic">NotoSansRunic-Regular.ttf
+ </font>
</family>
<family lang="und-Samr">
- <font weight="400" style="normal">NotoSansSamaritan-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSamaritan">
+ NotoSansSamaritan-Regular.ttf
+ </font>
</family>
<family lang="und-Saur">
- <font weight="400" style="normal">NotoSansSaurashtra-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSaurashtra">
+ NotoSansSaurashtra-Regular.ttf
+ </font>
</family>
<family lang="und-Shaw">
- <font weight="400" style="normal">NotoSansShavian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansShavian">
+ NotoSansShavian-Regular.ttf
+ </font>
</family>
<family lang="und-Sund">
- <font weight="400" style="normal">NotoSansSundanese-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSundanese">
+ NotoSansSundanese-Regular.ttf
+ </font>
</family>
<family lang="und-Sylo">
- <font weight="400" style="normal">NotoSansSylotiNagri-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSylotiNagri">
+ NotoSansSylotiNagri-Regular.ttf
+ </font>
</family>
<!-- Esrangela should precede Eastern and Western Syriac, since it's our default form. -->
<family lang="und-Syre">
- <font weight="400" style="normal">NotoSansSyriacEstrangela-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSyriacEstrangela">
+ NotoSansSyriacEstrangela-Regular.ttf
+ </font>
</family>
<family lang="und-Syrn">
- <font weight="400" style="normal">NotoSansSyriacEastern-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSyriacEastern">
+ NotoSansSyriacEastern-Regular.ttf
+ </font>
</family>
<family lang="und-Syrj">
- <font weight="400" style="normal">NotoSansSyriacWestern-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansSyriacWestern">
+ NotoSansSyriacWestern-Regular.ttf
+ </font>
</family>
<family lang="und-Tglg">
- <font weight="400" style="normal">NotoSansTagalog-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansTagalog">
+ NotoSansTagalog-Regular.ttf
+ </font>
</family>
<family lang="und-Tagb">
- <font weight="400" style="normal">NotoSansTagbanwa-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansTagbanwa">
+ NotoSansTagbanwa-Regular.ttf
+ </font>
</family>
<family lang="und-Lana">
- <font weight="400" style="normal">NotoSansTaiTham-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansTaiTham">
+ NotoSansTaiTham-Regular.ttf
+ </font>
</family>
<family lang="und-Tavt">
- <font weight="400" style="normal">NotoSansTaiViet-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansTaiViet">
+ NotoSansTaiViet-Regular.ttf
+ </font>
</family>
<family lang="und-Tibt">
- <font weight="400" style="normal">NotoSerifTibetan-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSerifTibetan-Regular">
+ NotoSerifTibetan-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSerifTibetan-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSerifTibetan-Regular">
+ NotoSerifTibetan-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSerifTibetan-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSerifTibetan-Regular">
+ NotoSerifTibetan-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSerifTibetan-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSerifTibetan-Regular">
+ NotoSerifTibetan-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
@@ -1018,29 +1289,48 @@
<font weight="400" style="normal">NotoSansTifinagh-Regular.otf</font>
</family>
<family lang="und-Ugar">
- <font weight="400" style="normal">NotoSansUgaritic-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansUgaritic">
+ NotoSansUgaritic-Regular.ttf
+ </font>
</family>
<family lang="und-Vaii">
- <font weight="400" style="normal">NotoSansVai-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansVai">NotoSansVai-Regular.ttf
+ </font>
</family>
<family>
<font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted.ttf</font>
</family>
<family lang="zh-Hans">
- <font weight="400" style="normal" index="2">NotoSansCJK-Regular.ttc</font>
- <font weight="400" style="normal" index="2" fallbackFor="serif">NotoSerifCJK-Regular.ttc</font>
+ <font weight="400" style="normal" index="2" postScriptName="NotoSansCJKjp-Regular">
+ NotoSansCJK-Regular.ttc
+ </font>
+ <font weight="400" style="normal" index="2" fallbackFor="serif"
+ postScriptName="NotoSerifCJKjp-Regular">NotoSerifCJK-Regular.ttc
+ </font>
</family>
<family lang="zh-Hant,zh-Bopo">
- <font weight="400" style="normal" index="3">NotoSansCJK-Regular.ttc</font>
- <font weight="400" style="normal" index="3" fallbackFor="serif">NotoSerifCJK-Regular.ttc</font>
+ <font weight="400" style="normal" index="3" postScriptName="NotoSansCJKjp-Regular">
+ NotoSansCJK-Regular.ttc
+ </font>
+ <font weight="400" style="normal" index="3" fallbackFor="serif"
+ postScriptName="NotoSerifCJKjp-Regular">NotoSerifCJK-Regular.ttc
+ </font>
</family>
<family lang="ja">
- <font weight="400" style="normal" index="0">NotoSansCJK-Regular.ttc</font>
- <font weight="400" style="normal" index="0" fallbackFor="serif">NotoSerifCJK-Regular.ttc</font>
+ <font weight="400" style="normal" index="0" postScriptName="NotoSansCJKjp-Regular">
+ NotoSansCJK-Regular.ttc
+ </font>
+ <font weight="400" style="normal" index="0" fallbackFor="serif"
+ postScriptName="NotoSerifCJKjp-Regular">NotoSerifCJK-Regular.ttc
+ </font>
</family>
<family lang="ko">
- <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>
- <font weight="400" style="normal" index="1" fallbackFor="serif">NotoSerifCJK-Regular.ttc</font>
+ <font weight="400" style="normal" index="1" postScriptName="NotoSansCJKjp-Regular">
+ NotoSansCJK-Regular.ttc
+ </font>
+ <font weight="400" style="normal" index="1" fallbackFor="serif"
+ postScriptName="NotoSerifCJKjp-Regular">NotoSerifCJK-Regular.ttc
+ </font>
</family>
<family lang="und-Zsye">
<font weight="400" style="normal">NotoColorEmoji.ttf</font>
@@ -1053,16 +1343,21 @@
override the East Asian punctuation for Chinese.
-->
<family lang="und-Tale">
- <font weight="400" style="normal">NotoSansTaiLe-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansTaiLe">NotoSansTaiLe-Regular.ttf
+ </font>
</family>
<family lang="und-Yiii">
- <font weight="400" style="normal">NotoSansYi-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansYi">NotoSansYi-Regular.ttf</font>
</family>
<family lang="und-Mong">
- <font weight="400" style="normal">NotoSansMongolian-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansMongolian">
+ NotoSansMongolian-Regular.ttf
+ </font>
</family>
<family lang="und-Phag">
- <font weight="400" style="normal">NotoSansPhagsPa-Regular.ttf</font>
+ <font weight="400" style="normal" postScriptName="NotoSansPhagsPa">
+ NotoSansPhagsPa-Regular.ttf
+ </font>
</family>
<family lang="und-Hluw">
<font weight="400" style="normal">NotoSansAnatolianHieroglyphs-Regular.otf</font>
@@ -1152,72 +1447,92 @@
<font weight="400" style="normal">NotoSerifDogra-Regular.ttf</font>
</family>
<family lang="und-Medf">
- <font weight="400" style="normal">NotoSansMedefaidrin-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansMedefaidrin-Regular">
+ NotoSansMedefaidrin-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansMedefaidrin-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansMedefaidrin-Regular">
+ NotoSansMedefaidrin-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansMedefaidrin-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansMedefaidrin-Regular">
+ NotoSansMedefaidrin-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansMedefaidrin-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansMedefaidrin-Regular">
+ NotoSansMedefaidrin-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Soyo">
- <font weight="400" style="normal">NotoSansSoyombo-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansSoyombo-Regular">
+ NotoSansSoyombo-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansSoyombo-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansSoyombo-Regular">
+ NotoSansSoyombo-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansSoyombo-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansSoyombo-Regular">
+ NotoSansSoyombo-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansSoyombo-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansSoyombo-Regular">
+ NotoSansSoyombo-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Takr">
- <font weight="400" style="normal">NotoSansTakri-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSansTakri-Regular">
+ NotoSansTakri-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSansTakri-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSansTakri-Regular">
+ NotoSansTakri-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSansTakri-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSansTakri-Regular">
+ NotoSansTakri-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSansTakri-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSansTakri-Regular">
+ NotoSansTakri-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Hmnp">
- <font weight="400" style="normal">NotoSerifNyiakengPuachueHmong-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSerifHmongNyiakeng-Regular">
+ NotoSerifNyiakengPuachueHmong-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSerifNyiakengPuachueHmong-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSerifHmongNyiakeng-Regular">
+ NotoSerifNyiakengPuachueHmong-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSerifNyiakengPuachueHmong-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSerifHmongNyiakeng-Regular">
+ NotoSerifNyiakengPuachueHmong-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSerifNyiakengPuachueHmong-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSerifHmongNyiakeng-Regular">
+ NotoSerifNyiakengPuachueHmong-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
<family lang="und-Yezi">
- <font weight="400" style="normal">NotoSerifYezidi-VF.ttf
+ <font weight="400" style="normal" postScriptName="NotoSerifYezidi-Regular">
+ NotoSerifYezidi-VF.ttf
<axis tag="wght" stylevalue="400"/>
</font>
- <font weight="500" style="normal">NotoSerifYezidi-VF.ttf
+ <font weight="500" style="normal" postScriptName="NotoSerifYezidi-Regular">
+ NotoSerifYezidi-VF.ttf
<axis tag="wght" stylevalue="500"/>
</font>
- <font weight="600" style="normal">NotoSerifYezidi-VF.ttf
+ <font weight="600" style="normal" postScriptName="NotoSerifYezidi-Regular">
+ NotoSerifYezidi-VF.ttf
<axis tag="wght" stylevalue="600"/>
</font>
- <font weight="700" style="normal">NotoSerifYezidi-VF.ttf
+ <font weight="700" style="normal" postScriptName="NotoSerifYezidi-Regular">
+ NotoSerifYezidi-VF.ttf
<axis tag="wght" stylevalue="700"/>
</font>
</family>
diff --git a/errorprone/java/android/annotation/RequiresNoPermission.java b/errorprone/java/android/annotation/RequiresNoPermission.java
new file mode 100644
index 000000000000..6ff4d6e34957
--- /dev/null
+++ b/errorprone/java/android/annotation/RequiresNoPermission.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+package android.annotation;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.CLASS;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Denotes that the annotated element requires no permissions.
+ *
+ * @hide
+ */
+@Retention(CLASS)
+@Target({ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD,PARAMETER})
+public @interface RequiresNoPermission {
+}
diff --git a/errorprone/java/android/annotation/RequiresPermission.java b/errorprone/java/android/annotation/RequiresPermission.java
new file mode 100644
index 000000000000..303ab41bec8e
--- /dev/null
+++ b/errorprone/java/android/annotation/RequiresPermission.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * 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.
+ */
+package android.annotation;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.CLASS;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Denotes that the annotated element requires (or may require) one or more permissions.
+ * <p/>
+ * Example of requiring a single permission:
+ * <pre>{@code
+ * {@literal @}RequiresPermission(Manifest.permission.SET_WALLPAPER)
+ * public abstract void setWallpaper(Bitmap bitmap) throws IOException;
+ *
+ * {@literal @}RequiresPermission(ACCESS_COARSE_LOCATION)
+ * public abstract Location getLastKnownLocation(String provider);
+ * }</pre>
+ * Example of requiring at least one permission from a set:
+ * <pre>{@code
+ * {@literal @}RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
+ * public abstract Location getLastKnownLocation(String provider);
+ * }</pre>
+ * Example of requiring multiple permissions:
+ * <pre>{@code
+ * {@literal @}RequiresPermission(allOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
+ * public abstract Location getLastKnownLocation(String provider);
+ * }</pre>
+ * Example of requiring separate read and write permissions for a content provider:
+ * <pre>{@code
+ * {@literal @}RequiresPermission.Read(@RequiresPermission(READ_HISTORY_BOOKMARKS))
+ * {@literal @}RequiresPermission.Write(@RequiresPermission(WRITE_HISTORY_BOOKMARKS))
+ * public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");
+ * }</pre>
+ * <p>
+ * When specified on a parameter, the annotation indicates that the method requires
+ * a permission which depends on the value of the parameter. For example, consider
+ * {@link android.app.Activity#startActivity(android.content.Intent)
+ * Activity#startActivity(Intent)}:
+ * <pre>{@code
+ * public void startActivity(@RequiresPermission Intent intent) { ... }
+ * }</pre>
+ * Notice how there are no actual permission names listed in the annotation. The actual
+ * permissions required will depend on the particular intent passed in. For example,
+ * the code may look like this:
+ * <pre>{@code
+ * Intent intent = new Intent(Intent.ACTION_CALL);
+ * startActivity(intent);
+ * }</pre>
+ * and the actual permission requirement for this particular intent is described on
+ * the Intent name itself:
+ * <pre>{@code
+ * {@literal @}RequiresPermission(Manifest.permission.CALL_PHONE)
+ * public static final String ACTION_CALL = "android.intent.action.CALL";
+ * }</pre>
+ *
+ * @hide
+ */
+@Retention(CLASS)
+@Target({ANNOTATION_TYPE,METHOD,CONSTRUCTOR,FIELD,PARAMETER})
+public @interface RequiresPermission {
+ /**
+ * The name of the permission that is required, if precisely one permission
+ * is required. If more than one permission is required, specify either
+ * {@link #allOf()} or {@link #anyOf()} instead.
+ * <p>
+ * If specified, {@link #anyOf()} and {@link #allOf()} must both be null.
+ */
+ String value() default "";
+
+ /**
+ * Specifies a list of permission names that are all required.
+ * <p>
+ * If specified, {@link #anyOf()} and {@link #value()} must both be null.
+ */
+ String[] allOf() default {};
+
+ /**
+ * Specifies a list of permission names where at least one is required
+ * <p>
+ * If specified, {@link #allOf()} and {@link #value()} must both be null.
+ */
+ String[] anyOf() default {};
+
+ /**
+ * If true, the permission may not be required in all cases (e.g. it may only be
+ * enforced on certain platforms, or for certain call parameters, etc.
+ */
+ boolean conditional() default false;
+
+ /**
+ * Specifies that the given permission is required for read operations.
+ * <p>
+ * When specified on a parameter, the annotation indicates that the method requires
+ * a permission which depends on the value of the parameter (and typically
+ * the corresponding field passed in will be one of a set of constants which have
+ * been annotated with a <code>@RequiresPermission</code> annotation.)
+ */
+ @Target({FIELD, METHOD, PARAMETER})
+ @interface Read {
+ RequiresPermission value() default @RequiresPermission;
+ }
+
+ /**
+ * Specifies that the given permission is required for write operations.
+ * <p>
+ * When specified on a parameter, the annotation indicates that the method requires
+ * a permission which depends on the value of the parameter (and typically
+ * the corresponding field passed in will be one of a set of constants which have
+ * been annotated with a <code>@RequiresPermission</code> annotation.)
+ */
+ @Target({FIELD, METHOD, PARAMETER})
+ @interface Write {
+ RequiresPermission value() default @RequiresPermission;
+ }
+}
diff --git a/errorprone/java/com/google/errorprone/bugpatterns/android/BluetoothPermissionChecker.java b/errorprone/java/com/google/errorprone/bugpatterns/android/BluetoothPermissionChecker.java
new file mode 100644
index 000000000000..9d1cf87a5f9d
--- /dev/null
+++ b/errorprone/java/com/google/errorprone/bugpatterns/android/BluetoothPermissionChecker.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.google.errorprone.bugpatterns.android;
+
+import static com.google.errorprone.BugPattern.SeverityLevel.WARNING;
+import static com.google.errorprone.bugpatterns.android.RequiresPermissionChecker.simpleNameMatches;
+import static com.google.errorprone.matchers.Matchers.allOf;
+import static com.google.errorprone.matchers.Matchers.anyOf;
+import static com.google.errorprone.matchers.Matchers.enclosingClass;
+import static com.google.errorprone.matchers.Matchers.isStatic;
+import static com.google.errorprone.matchers.Matchers.isSubtypeOf;
+import static com.google.errorprone.matchers.Matchers.methodHasVisibility;
+import static com.google.errorprone.matchers.Matchers.methodIsConstructor;
+import static com.google.errorprone.matchers.Matchers.methodIsNamed;
+import static com.google.errorprone.matchers.Matchers.not;
+import static com.google.errorprone.matchers.Matchers.packageStartsWith;
+
+import android.annotation.RequiresNoPermission;
+import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
+
+import com.google.auto.service.AutoService;
+import com.google.errorprone.BugPattern;
+import com.google.errorprone.VisitorState;
+import com.google.errorprone.bugpatterns.BugChecker;
+import com.google.errorprone.bugpatterns.BugChecker.MethodTreeMatcher;
+import com.google.errorprone.matchers.Description;
+import com.google.errorprone.matchers.Matcher;
+import com.google.errorprone.matchers.MethodVisibility.Visibility;
+import com.google.errorprone.util.ASTHelpers;
+import com.sun.source.tree.ClassTree;
+import com.sun.source.tree.MethodTree;
+import com.sun.source.tree.Tree;
+import com.sun.source.util.TreePath;
+import com.sun.tools.javac.code.Symbol;
+import com.sun.tools.javac.code.Symbol.MethodSymbol;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.regex.Pattern;
+
+/**
+ * Verifies that all Bluetooth APIs have consistent permissions.
+ */
+@AutoService(BugChecker.class)
+@BugPattern(
+ name = "AndroidFrameworkBluetoothPermission",
+ summary = "Verifies that all Bluetooth APIs have consistent permissions",
+ severity = WARNING)
+public final class BluetoothPermissionChecker extends BugChecker implements MethodTreeMatcher {
+ private static final Matcher<MethodTree> BLUETOOTH_API = allOf(
+ packageStartsWith("android.bluetooth"),
+ methodHasVisibility(Visibility.PUBLIC),
+ not(isStatic()),
+ not(methodIsConstructor()),
+ not(enclosingClass(isInsideParcelable())),
+ not(enclosingClass(simpleNameMatches(Pattern.compile(".+Callback$")))),
+ not(enclosingClass(isSubtypeOf("android.bluetooth.BluetoothProfileConnector"))),
+ not(enclosingClass(isSubtypeOf("android.app.PropertyInvalidatedCache"))));
+
+ private static final Matcher<ClassTree> PARCELABLE_CLASS =
+ isSubtypeOf("android.os.Parcelable");
+ private static final Matcher<MethodTree> BINDER_METHOD = enclosingClass(
+ isSubtypeOf("android.os.IInterface"));
+
+ private static final Matcher<MethodTree> BINDER_INTERNALS = allOf(
+ enclosingClass(isSubtypeOf("android.os.IInterface")),
+ anyOf(
+ methodIsNamed("onTransact"),
+ methodIsNamed("dump"),
+ enclosingClass(simpleNameMatches(Pattern.compile("^(Stub|Default|Proxy)$")))));
+
+ private static final Matcher<MethodTree> GENERIC_INTERNALS = anyOf(
+ methodIsNamed("close"),
+ methodIsNamed("finalize"),
+ methodIsNamed("equals"),
+ methodIsNamed("hashCode"),
+ methodIsNamed("toString"));
+
+ private static final String PERMISSION_ADVERTISE = "android.permission.BLUETOOTH_ADVERTISE";
+ private static final String PERMISSION_CONNECT = "android.permission.BLUETOOTH_CONNECT";
+ private static final String PERMISSION_SCAN = "android.permission.BLUETOOTH_SCAN";
+
+ private static final String ANNOTATION_ADVERTISE =
+ "android.bluetooth.annotations.RequiresBluetoothAdvertisePermission";
+ private static final String ANNOTATION_CONNECT =
+ "android.bluetooth.annotations.RequiresBluetoothConnectPermission";
+ private static final String ANNOTATION_SCAN =
+ "android.bluetooth.annotations.RequiresBluetoothScanPermission";
+
+ @Override
+ public Description matchMethod(MethodTree tree, VisitorState state) {
+ // Ignore methods outside Bluetooth area
+ if (!BLUETOOTH_API.matches(tree, state)) return Description.NO_MATCH;
+
+ // Ignore certain types of generated or internal code
+ if (BINDER_INTERNALS.matches(tree, state)) return Description.NO_MATCH;
+ if (GENERIC_INTERNALS.matches(tree, state)) return Description.NO_MATCH;
+
+ // Skip abstract methods, except for binder interfaces
+ if (tree.getBody() == null && !BINDER_METHOD.matches(tree, state)) {
+ return Description.NO_MATCH;
+ }
+
+ // Ignore callbacks which don't need permission enforcement
+ final MethodSymbol symbol = ASTHelpers.getSymbol(tree);
+ if (isCallbackOrWrapper(symbol)) return Description.NO_MATCH;
+
+ // Ignore when suppressed
+ if (isSuppressed(symbol)) return Description.NO_MATCH;
+
+ final RequiresPermission requiresPerm = ASTHelpers.getAnnotation(tree,
+ RequiresPermission.class);
+ final RequiresNoPermission requiresNoPerm = ASTHelpers.getAnnotation(tree,
+ RequiresNoPermission.class);
+
+ final boolean requiresValid = requiresPerm != null
+ && (requiresPerm.value() != null || requiresPerm.allOf() != null);
+ final boolean requiresNoValid = requiresNoPerm != null;
+ if (!requiresValid && !requiresNoValid) {
+ return buildDescription(tree)
+ .setMessage("Method " + symbol.name.toString()
+ + "() must be protected by at least one permission")
+ .build();
+ }
+
+ // No additional checks needed for Binder generated code
+ if (BINDER_METHOD.matches(tree, state)) return Description.NO_MATCH;
+
+ if (ASTHelpers.hasAnnotation(tree, ANNOTATION_ADVERTISE,
+ state) != isPermissionReferenced(requiresPerm, PERMISSION_ADVERTISE)) {
+ return buildDescription(tree)
+ .setMessage("Method " + symbol.name.toString()
+ + "() has inconsistent annotations for " + PERMISSION_ADVERTISE)
+ .build();
+ }
+ if (ASTHelpers.hasAnnotation(tree, ANNOTATION_CONNECT,
+ state) != isPermissionReferenced(requiresPerm, PERMISSION_CONNECT)) {
+ return buildDescription(tree)
+ .setMessage("Method " + symbol.name.toString()
+ + "() has inconsistent annotations for " + PERMISSION_CONNECT)
+ .build();
+ }
+ if (ASTHelpers.hasAnnotation(tree, ANNOTATION_SCAN,
+ state) != isPermissionReferenced(requiresPerm, PERMISSION_SCAN)) {
+ return buildDescription(tree)
+ .setMessage("Method " + symbol.name.toString()
+ + "() has inconsistent annotations for " + PERMISSION_SCAN)
+ .build();
+ }
+
+ return Description.NO_MATCH;
+ }
+
+ private static boolean isPermissionReferenced(RequiresPermission anno, String perm) {
+ if (anno == null) return false;
+ if (perm.equals(anno.value())) return true;
+ return anno.allOf() != null && Arrays.asList(anno.allOf()).contains(perm);
+ }
+
+ private static boolean isCallbackOrWrapper(Symbol symbol) {
+ if (symbol == null) return false;
+ final String name = symbol.name.toString();
+ return isCallbackOrWrapper(ASTHelpers.enclosingClass(symbol))
+ || name.endsWith("Callback")
+ || name.endsWith("Wrapper");
+ }
+
+ public boolean isSuppressed(Symbol symbol) {
+ if (symbol == null) return false;
+ return isSuppressed(ASTHelpers.enclosingClass(symbol))
+ || isSuppressed(ASTHelpers.getAnnotation(symbol, SuppressWarnings.class))
+ || isSuppressed(ASTHelpers.getAnnotation(symbol, SuppressLint.class));
+ }
+
+ private boolean isSuppressed(SuppressWarnings anno) {
+ return (anno != null) && !Collections.disjoint(Arrays.asList(anno.value()), allNames());
+ }
+
+ private boolean isSuppressed(SuppressLint anno) {
+ return (anno != null) && !Collections.disjoint(Arrays.asList(anno.value()), allNames());
+ }
+
+ private static Matcher<ClassTree> isInsideParcelable() {
+ return new Matcher<ClassTree>() {
+ @Override
+ public boolean matches(ClassTree tree, VisitorState state) {
+ final TreePath path = state.getPath();
+ for (Tree node : path) {
+ if (node instanceof ClassTree
+ && PARCELABLE_CLASS.matches((ClassTree) node, state)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+ }
+}
diff --git a/errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java b/errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java
index 3b5a58c46f71..f54782d4eb77 100644
--- a/errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java
+++ b/errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java
@@ -143,8 +143,11 @@ public final class RequiresPermissionChecker extends BugChecker implements Metho
final ParsedRequiresPermission nodePerm = parseRequiresPermissionRecursively(
node, state);
if (!expectedPerm.containsAll(nodePerm)) {
- return buildDescription(node).setMessage("Annotated " + expectedPerm
- + " but too narrow; invokes method requiring " + nodePerm).build();
+ return buildDescription(node)
+ .setMessage("Method " + method.name.toString() + "() annotated "
+ + expectedPerm
+ + " but too narrow; invokes method requiring " + nodePerm)
+ .build();
} else {
actualPerm.addAll(nodePerm);
}
@@ -162,8 +165,10 @@ public final class RequiresPermissionChecker extends BugChecker implements Metho
// Second, determine if we actually used all permissions that we claim
// to require; yell if we're too broad
if (!actualPerm.containsAll(expectedPerm)) {
- return buildDescription(tree).setMessage("Annotated " + expectedPerm
- + " but too wide; only invokes methods requiring " + actualPerm).build();
+ return buildDescription(tree)
+ .setMessage("Method " + method.name.toString() + "() annotated " + expectedPerm
+ + " but too wide; only invokes methods requiring " + actualPerm)
+ .build();
}
return Description.NO_MATCH;
@@ -316,7 +321,7 @@ public final class RequiresPermissionChecker extends BugChecker implements Metho
return (anno != null) && !Collections.disjoint(Arrays.asList(anno.value()), allNames());
}
- private static Matcher<ClassTree> simpleNameMatches(Pattern pattern) {
+ static Matcher<ClassTree> simpleNameMatches(Pattern pattern) {
return new Matcher<ClassTree>() {
@Override
public boolean matches(ClassTree tree, VisitorState state) {
diff --git a/graphics/java/android/graphics/FontListParser.java b/graphics/java/android/graphics/FontListParser.java
index 6fdf5526edf5..13e2692ff800 100644
--- a/graphics/java/android/graphics/FontListParser.java
+++ b/graphics/java/android/graphics/FontListParser.java
@@ -56,6 +56,7 @@ public class FontListParser {
// XML constants for Font.
public static final String ATTR_INDEX = "index";
public static final String ATTR_WEIGHT = "weight";
+ public static final String ATTR_POSTSCRIPT_NAME = "postScriptName";
public static final String ATTR_STYLE = "style";
public static final String ATTR_FALLBACK_FOR = "fallbackFor";
public static final String STYLE_ITALIC = "italic";
@@ -209,6 +210,7 @@ public class FontListParser {
int weight = weightStr == null ? FontStyle.FONT_WEIGHT_NORMAL : Integer.parseInt(weightStr);
boolean isItalic = STYLE_ITALIC.equals(parser.getAttributeValue(null, ATTR_STYLE));
String fallbackFor = parser.getAttributeValue(null, ATTR_FALLBACK_FOR);
+ String postScriptName = parser.getAttributeValue(null, ATTR_POSTSCRIPT_NAME);
StringBuilder filename = new StringBuilder();
while (keepReading(parser)) {
if (parser.getEventType() == XmlPullParser.TEXT) {
@@ -242,8 +244,18 @@ public class FontListParser {
axes.toArray(new FontVariationAxis[0]));
}
- return new FontConfig.Font(new File(filePath),
+ File file = new File(filePath);
+
+ if (postScriptName == null) {
+ // If post script name was not provided, assume the file name is same to PostScript
+ // name.
+ String name = file.getName();
+ postScriptName = name.substring(0, name.length() - 4);
+ }
+
+ return new FontConfig.Font(file,
originalPath == null ? null : new File(originalPath),
+ postScriptName,
new FontStyle(
weight,
isItalic ? FontStyle.FONT_SLANT_ITALIC : FontStyle.FONT_SLANT_UPRIGHT
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java
index f3dba82287ab..8f1223b5eeaf 100644
--- a/graphics/java/android/graphics/HardwareRenderer.java
+++ b/graphics/java/android/graphics/HardwareRenderer.java
@@ -754,6 +754,11 @@ public class HardwareRenderer {
}
/** @hide */
+ public void setASurfaceTransactionCallback(ASurfaceTransactionCallback callback) {
+ nSetASurfaceTransactionCallback(mNativeProxy, callback);
+ }
+
+ /** @hide */
public void setFrameCallback(FrameDrawingCallback callback) {
nSetFrameCallback(mNativeProxy, callback);
}
@@ -868,6 +873,23 @@ public class HardwareRenderer {
}
/**
+ * Interface used to receive callbacks when a transaction needs to be merged.
+ *
+ * @hide
+ */
+ public interface ASurfaceTransactionCallback {
+ /**
+ * Invoked during a frame drawing.
+ *
+ * @param aSurfaceTranactionNativeObj the ASurfaceTransaction native object handle
+ * @param aSurfaceControlNativeObj ASurfaceControl native object handle
+ * @param frame The id of the frame being drawn.
+ */
+ void onMergeTransaction(long aSurfaceTranactionNativeObj,
+ long aSurfaceControlNativeObj, long frame);
+ }
+
+ /**
* Interface used to receive callbacks when a frame is being drawn.
*
* @hide
@@ -1342,6 +1364,9 @@ public class HardwareRenderer {
private static native void nSetPictureCaptureCallback(long nativeProxy,
PictureCapturedCallback callback);
+ private static native void nSetASurfaceTransactionCallback(long nativeProxy,
+ ASurfaceTransactionCallback callback);
+
private static native void nSetFrameCallback(long nativeProxy, FrameDrawingCallback callback);
private static native void nSetFrameCompleteCallback(long nativeProxy,
diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java
index c48fd8b8b6ae..b88751a610dd 100644
--- a/graphics/java/android/graphics/Typeface.java
+++ b/graphics/java/android/graphics/Typeface.java
@@ -1259,20 +1259,21 @@ public class Typeface {
* @hide
*/
@TestApi
- public static @NonNull Map<String, Typeface> deserializeFontMap(@NonNull ByteBuffer buffer)
+ public static @NonNull long[] deserializeFontMap(
+ @NonNull ByteBuffer buffer, @NonNull Map<String, Typeface> out)
throws IOException {
- Map<String, Typeface> fontMap = new ArrayMap<>();
int typefacesBytesCount = buffer.getInt();
long[] nativePtrs = nativeReadTypefaces(buffer.slice());
if (nativePtrs == null) {
throw new IOException("Could not read typefaces");
}
+ out.clear();
buffer.position(buffer.position() + typefacesBytesCount);
for (long nativePtr : nativePtrs) {
String name = readString(buffer);
- fontMap.put(name, new Typeface(nativePtr));
+ out.put(name, new Typeface(nativePtr));
}
- return fontMap;
+ return nativePtrs;
}
private static String readString(ByteBuffer buffer) {
@@ -1330,7 +1331,14 @@ public class Typeface {
return;
}
sSystemFontMapBuffer = sharedMemory.mapReadOnly().order(ByteOrder.BIG_ENDIAN);
- Map<String, Typeface> systemFontMap = deserializeFontMap(sSystemFontMapBuffer);
+ Map<String, Typeface> systemFontMap = new ArrayMap<>();
+ long[] nativePtrs = deserializeFontMap(sSystemFontMapBuffer, systemFontMap);
+
+ // Initialize native font APIs. The native font API will read fonts.xml by itself if
+ // Typeface is initialized with loadPreinstalledSystemFontMap.
+ for (long ptr : nativePtrs) {
+ nativeAddFontCollections(ptr);
+ }
setSystemFontMap(systemFontMap);
} finally {
Trace.traceEnd(Trace.TRACE_TAG_GRAPHICS);
@@ -1528,5 +1536,8 @@ public class Typeface {
private static native void nativeForceSetStaticFinalField(String fieldName, Typeface typeface);
+ @CriticalNative
+ private static native void nativeAddFontCollections(long nativePtr);
+
private static native void nativeWarmUpCache(String fileName);
}
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index c972a24fb04b..29fa09d40343 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -150,6 +150,7 @@ public class RippleDrawable extends LayerDrawable {
/** The maximum number of ripples supported. */
private static final int MAX_RIPPLES = 10;
private static final LinearInterpolator LINEAR_INTERPOLATOR = new LinearInterpolator();
+ private static final int DEFAULT_EFFECT_COLOR = 0x80ffffff;
/** Temporary flag for teamfood. **/
private static final boolean FORCE_PATTERNED_STYLE = true;
@@ -465,12 +466,37 @@ public class RippleDrawable extends LayerDrawable {
*
* @attr ref android.R.styleable#RippleDrawable_color
*/
- public void setColor(ColorStateList color) {
+ public void setColor(@NonNull ColorStateList color) {
+ if (color == null) {
+ throw new IllegalArgumentException("color cannot be null");
+ }
mState.mColor = color;
invalidateSelf(false);
}
/**
+ * Sets the ripple effect color.
+ *
+ * @param color Ripple color as a color state list.
+ *
+ * @attr ref android.R.styleable#RippleDrawable_effectColor
+ */
+ public void setEffectColor(@NonNull ColorStateList color) {
+ if (color == null) {
+ throw new IllegalArgumentException("color cannot be null");
+ }
+ mState.mEffectColor = color;
+ invalidateSelf(false);
+ }
+
+ /**
+ * @return The ripple effect color as a color state list.
+ */
+ public @NonNull ColorStateList getEffectColor() {
+ return mState.mEffectColor;
+ }
+
+ /**
* Sets the radius in pixels of the fully expanded ripple.
*
* @param radius ripple radius in pixels, or {@link #RADIUS_AUTO} to
@@ -561,13 +587,14 @@ public class RippleDrawable extends LayerDrawable {
mState.mColor = color;
}
+ final ColorStateList effectColor =
+ a.getColorStateList(R.styleable.RippleDrawable_effectColor);
+ if (effectColor != null) {
+ mState.mEffectColor = effectColor;
+ }
+
mState.mMaxRadius = a.getDimensionPixelSize(
R.styleable.RippleDrawable_radius, mState.mMaxRadius);
-
- if (!FORCE_PATTERNED_STYLE) {
- mState.mRippleStyle = a.getInteger(R.styleable.RippleDrawable_rippleStyle,
- mState.mRippleStyle);
- }
}
private void verifyRequiredAttributes(@NonNull TypedArray a) throws XmlPullParserException {
@@ -933,10 +960,11 @@ public class RippleDrawable extends LayerDrawable {
float radius = getComputedRadius();
RippleAnimationSession.AnimationProperties<Float, Paint> properties;
RippleShader shader = new RippleShader();
- int color = mMaskColorFilter == null
+ final int color = mMaskColorFilter == null
? mState.mColor.getColorForState(getState(), Color.BLACK)
: mMaskColorFilter.getColor();
- shader.setColor(color);
+ final int effectColor = mState.mEffectColor.getColorForState(getState(), Color.MAGENTA);
+ shader.setColor(color, effectColor);
shader.setOrigin(cx, cy);
shader.setTouch(x, y);
shader.setResolution(w, h, mState.mDensity);
@@ -1257,33 +1285,6 @@ public class RippleDrawable extends LayerDrawable {
return this;
}
- /**
- * Sets the visual style of the ripple.
- *
- * @see #STYLE_SOLID
- * @see #STYLE_PATTERNED
- *
- * @param style The style of the ripple
- * @hide
- */
- public void setRippleStyle(@RippleStyle int style) throws IllegalArgumentException {
- if (style == STYLE_SOLID || style == STYLE_PATTERNED) {
- mState.mRippleStyle = style;
- } else {
- throw new IllegalArgumentException("Invalid style value " + style);
- }
- }
-
- /**
- * Get the current ripple style
- * @return Ripple style
- * @hide
- */
- public @RippleStyle int getRippleStyle() {
- return mState.mRippleStyle;
- }
-
-
@Override
RippleState createConstantState(LayerState state, Resources res) {
return new RippleState(state, this, res);
@@ -1293,6 +1294,7 @@ public class RippleDrawable extends LayerDrawable {
int[] mTouchThemeAttrs;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
ColorStateList mColor = ColorStateList.valueOf(Color.MAGENTA);
+ ColorStateList mEffectColor = ColorStateList.valueOf(DEFAULT_EFFECT_COLOR);
int mMaxRadius = RADIUS_AUTO;
int mRippleStyle = FORCE_PATTERNED_STYLE ? STYLE_PATTERNED : STYLE_SOLID;
@@ -1305,6 +1307,7 @@ public class RippleDrawable extends LayerDrawable {
mColor = origs.mColor;
mMaxRadius = origs.mMaxRadius;
mRippleStyle = origs.mRippleStyle;
+ mEffectColor = origs.mEffectColor;
if (origs.mDensity != mDensity) {
applyDensityScaling(orig.mDensity, mDensity);
diff --git a/graphics/java/android/graphics/drawable/RippleShader.java b/graphics/java/android/graphics/drawable/RippleShader.java
index c1c6afceadd9..a0aa41e817b0 100644
--- a/graphics/java/android/graphics/drawable/RippleShader.java
+++ b/graphics/java/android/graphics/drawable/RippleShader.java
@@ -39,6 +39,7 @@ final class RippleShader extends RuntimeShader {
+ "uniform vec2 in_tRotation2;\n"
+ "uniform vec2 in_tRotation3;\n"
+ "uniform vec4 in_color;\n"
+ + "uniform vec4 in_sparkleColor;\n"
+ "uniform shader in_shader;\n";
private static final String SHADER_LIB =
"float triangleNoise(vec2 n) {\n"
@@ -48,7 +49,6 @@ final class RippleShader extends RuntimeShader {
+ " return fract(xy * 95.4307) + fract(xy * 75.04961) - 1.0;\n"
+ "}"
+ "const float PI = 3.1415926535897932384626;\n"
- + "const float SPARKLE_OPACITY = 0.75;\n"
+ "\n"
+ "float sparkles(vec2 uv, float t) {\n"
+ " float n = triangleNoise(uv);\n"
@@ -60,7 +60,7 @@ final class RippleShader extends RuntimeShader {
+ " o *= abs(sin(PI * o * (t + 0.55 * i)));\n"
+ " s += o;\n"
+ " }\n"
- + " return saturate(s) * SPARKLE_OPACITY;\n"
+ + " return saturate(s) * in_sparkleColor.a;\n"
+ "}\n"
+ "float softCircle(vec2 uv, vec2 xy, float radius, float blur) {\n"
+ " float blurHalf = blur * 0.5;\n"
@@ -116,7 +116,7 @@ final class RippleShader extends RuntimeShader {
+ " vec4 circle = in_color * (softCircle(p, center, in_maxRadius "
+ " * scaleIn, 0.2) * fade);\n"
+ " float mask = in_hasMask == 1. ? sample(in_shader).a > 0. ? 1. : 0. : 1.;\n"
- + " return mix(circle, vec4(sparkle), sparkle) * mask;\n"
+ + " return mix(circle, in_sparkleColor, sparkle) * mask;\n"
+ "}";
private static final String SHADER = SHADER_UNIFORMS + SHADER_LIB + SHADER_MAIN;
private static final double PI_ROTATE_RIGHT = Math.PI * 0.0078125;
@@ -200,10 +200,13 @@ final class RippleShader extends RuntimeShader {
/**
* Color of the circle that's under the sparkles. Sparkles will always be white.
*/
- public void setColor(@ColorInt int colorIn) {
- Color color = Color.valueOf(colorIn);
- this.setUniform("in_color", new float[] {color.red(),
+ public void setColor(@ColorInt int colorInt, @ColorInt int sparkleColorInt) {
+ Color color = Color.valueOf(colorInt);
+ Color sparkleColor = Color.valueOf(sparkleColorInt);
+ setUniform("in_color", new float[] {color.red(),
color.green(), color.blue(), color.alpha()});
+ setUniform("in_sparkleColor", new float[] {sparkleColor.red(),
+ sparkleColor.green(), sparkleColor.blue(), sparkleColor.alpha()});
}
public void setResolution(float w, float h, int density) {
diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreProvider.java b/keystore/java/android/security/keystore/AndroidKeyStoreProvider.java
index ecb082e71321..62fe54f1f089 100644
--- a/keystore/java/android/security/keystore/AndroidKeyStoreProvider.java
+++ b/keystore/java/android/security/keystore/AndroidKeyStoreProvider.java
@@ -62,10 +62,8 @@ public class AndroidKeyStoreProvider extends Provider {
*/
@UnsupportedAppUsage
public static long getKeyStoreOperationHandle(Object cryptoPrimitive) {
- if (cryptoPrimitive == null) {
- throw new NullPointerException();
- }
- return 0;
+ return android.security.keystore2.AndroidKeyStoreProvider
+ .getKeyStoreOperationHandle(cryptoPrimitive);
}
/**
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index 602cd5d6daee..2207e62e9503 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -70,5 +70,5 @@
<string name="manage_bubbles_text" msgid="7730624269650594419">"Gestionar"</string>
<string name="accessibility_bubble_dismissed" msgid="8367471990421247357">"Burbuja cerrada."</string>
<string name="restart_button_description" msgid="5887656107651190519">"Toca para reiniciar esta aplicación e ir a la pantalla completa."</string>
- <string name="got_it" msgid="4428750913636945527">"Listo"</string>
+ <string name="got_it" msgid="4428750913636945527">"Entendido"</string>
</resources>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java
index 0a86ad835d14..625f4b85c946 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java
@@ -29,6 +29,7 @@ import android.content.om.IOverlayManager;
import android.content.om.OverlayInfo;
import android.content.res.Configuration;
import android.database.ContentObserver;
+import android.graphics.Rect;
import android.os.Handler;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -61,7 +62,8 @@ import java.io.PrintWriter;
/**
* Manages and manipulates the one handed states, transitions, and gesture for phones.
*/
-public class OneHandedController implements RemoteCallable<OneHandedController> {
+public class OneHandedController implements RemoteCallable<OneHandedController>,
+ OneHandedTransitionCallback {
private static final String TAG = "OneHandedController";
private static final String ONE_HANDED_MODE_OFFSET_PERCENTAGE =
@@ -73,6 +75,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
private volatile boolean mIsOneHandedEnabled;
private volatile boolean mIsSwipeToNotificationEnabled;
+ private volatile boolean mIsTransitioning;
private boolean mTaskChangeToExit;
private boolean mLockedDisabled;
private int mUserId;
@@ -327,7 +330,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
@VisibleForTesting
void startOneHanded() {
- if (isLockedDisabled()) {
+ if (isLockedDisabled() || mIsTransitioning) {
Slog.d(TAG, "Temporary lock disabled");
return;
}
@@ -337,6 +340,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
return;
}
if (!mDisplayAreaOrganizer.isInOneHanded()) {
+ mIsTransitioning = true;
final int yOffSet = Math.round(
mDisplayAreaOrganizer.getDisplayLayout().height() * mOffSetFraction);
mOneHandedAccessibilityUtil.announcementForScreenReader(
@@ -354,7 +358,8 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
}
private void stopOneHanded(int uiEvent) {
- if (mDisplayAreaOrganizer.isInOneHanded()) {
+ if (mDisplayAreaOrganizer.isInOneHanded() && !mIsTransitioning) {
+ mIsTransitioning = true;
mOneHandedAccessibilityUtil.announcementForScreenReader(
mOneHandedAccessibilityUtil.getOneHandedStopDescription());
mDisplayAreaOrganizer.scheduleOffset(0, 0);
@@ -383,6 +388,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
mDisplayAreaOrganizer.registerTransitionCallback(mGestureHandler);
mDisplayAreaOrganizer.registerTransitionCallback(mTutorialHandler);
mDisplayAreaOrganizer.registerTransitionCallback(mBackgroundPanelOrganizer);
+ mDisplayAreaOrganizer.registerTransitionCallback(this);
if (mTaskChangeToExit) {
mTaskStackListener.addListener(mTaskStackListenerCallback);
}
@@ -609,6 +615,8 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
pw.println(mLockedDisabled);
pw.print(innerPrefix + "mUserId=");
pw.println(mUserId);
+ pw.print(innerPrefix + "mIsTransitioning=");
+ pw.println(mIsTransitioning);
if (mBackgroundPanelOrganizer != null) {
mBackgroundPanelOrganizer.dump(pw);
@@ -655,6 +663,26 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
}
/**
+ * TODO(b/185558765) To implement a state machine for One-Handed transition state machine.
+ * ONE_HANDDE_STATE_TRANSITION {
+ * STATE_DEFAULT,
+ * STATE_TRANSITIONING,
+ * STATE_ENTER_ONE_HANED,
+ * STATE_EXIT_ONE_HANDED
+ * }
+ * and we need to align the state to launcher3 quick steps through SysuiProxy.
+ */
+ @Override
+ public void onStartFinished(Rect bounds) {
+ mIsTransitioning = false;
+ }
+
+ @Override
+ public void onStopFinished(Rect bounds) {
+ mIsTransitioning = false;
+ }
+
+ /**
* The interface for calls from outside the Shell, within the host process.
*/
@ExternalThread
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipNotificationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipNotificationController.java
index a47483144fef..dd7e29451ffc 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipNotificationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipNotificationController.java
@@ -50,6 +50,7 @@ public class TvPipNotificationController {
// Referenced in com.android.systemui.util.NotificationChannels.
public static final String NOTIFICATION_CHANNEL = "TVPIP";
private static final String NOTIFICATION_TAG = "TvPip";
+ private static final String SYSTEMUI_PERMISSION = "com.android.systemui.permission.SELF";
private static final String ACTION_SHOW_PIP_MENU =
"com.android.wm.shell.pip.tv.notification.action.SHOW_PIP_MENU";
@@ -207,7 +208,8 @@ public class TvPipNotificationController {
}
private static PendingIntent createPendingIntent(Context context, String action) {
- return PendingIntent.getBroadcast(context, 0, new Intent(action),
+ return PendingIntent.getBroadcast(context, 0,
+ new Intent(action).setPackage(context.getPackageName()),
PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
}
@@ -223,7 +225,7 @@ public class TvPipNotificationController {
void register() {
if (mRegistered) return;
- mContext.registerReceiverForAllUsers(this, mIntentFilter, null /* permission */,
+ mContext.registerReceiverForAllUsers(this, mIntentFilter, SYSTEMUI_PERMISSION,
mMainHandler);
mRegistered = true;
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenContentDrawer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenContentDrawer.java
index 516dfd0758ee..f3ae0a1bf717 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenContentDrawer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenContentDrawer.java
@@ -16,6 +16,7 @@
package com.android.wm.shell.startingsurface;
+import static android.os.Process.THREAD_PRIORITY_TOP_APP_BOOST;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.os.UserHandle.getUserHandleForUid;
@@ -35,6 +36,8 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Build;
+import android.os.Handler;
+import android.os.HandlerThread;
import android.os.Trace;
import android.util.Slog;
import android.view.SurfaceControl;
@@ -48,10 +51,11 @@ import com.android.launcher3.icons.IconProvider;
import com.android.wm.shell.common.TransactionPool;
import java.util.List;
+import java.util.function.Consumer;
/**
* Util class to create the view for a splash screen content.
- *
+ * Everything execute in this class should be post to mSplashscreenWorkerHandler.
* @hide
*/
public class SplashscreenContentDrawer {
@@ -78,6 +82,7 @@ public class SplashscreenContentDrawer {
private int mIconEarlyExitDistance;
private final TransactionPool mTransactionPool;
private final SplashScreenWindowAttrs mTmpAttrs = new SplashScreenWindowAttrs();
+ private final Handler mSplashscreenWorkerHandler;
SplashscreenContentDrawer(Context context, int maxAnimatableIconDuration,
int iconExitAnimDuration, int appRevealAnimDuration, TransactionPool pool) {
@@ -87,6 +92,50 @@ public class SplashscreenContentDrawer {
mAppRevealDuration = appRevealAnimDuration;
mIconExitDuration = iconExitAnimDuration;
mTransactionPool = pool;
+
+ // Initialize Splashscreen worker thread
+ // TODO(b/185288910) move it into WMShellConcurrencyModule and provide an executor to make
+ // it easier to test stuff that happens on that thread later.
+ final HandlerThread shellSplashscreenWorkerThread =
+ new HandlerThread("wmshell.splashworker", THREAD_PRIORITY_TOP_APP_BOOST);
+ shellSplashscreenWorkerThread.start();
+ mSplashscreenWorkerHandler = shellSplashscreenWorkerThread.getThreadHandler();
+ }
+
+ /**
+ * Create a SplashScreenView object.
+ *
+ * In order to speed up the splash screen view to show on first frame, preparing the
+ * view on background thread so the view and the drawable can be create and pre-draw in
+ * parallel.
+ *
+ * @param emptyView Create a splash screen view without icon on it.
+ * @param consumer Receiving the SplashScreenView object, which will also be executed
+ * on splash screen thread. Note that the view can be null if failed.
+ */
+ void createContentView(Context context, boolean emptyView, int splashScreenResId,
+ ActivityInfo info, int taskId, Consumer<SplashScreenView> consumer) {
+ mSplashscreenWorkerHandler.post(() -> {
+ SplashScreenView contentView;
+ try {
+ contentView = SplashscreenContentDrawer.makeSplashscreenContent(
+ context, splashScreenResId);
+ if (contentView == null) {
+ Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "makeSplashScreenContentView");
+ if (emptyView) {
+ contentView = makeEmptySplashScreenContentView(context);
+ } else {
+ contentView = makeSplashScreenContentView(context, info);
+ }
+ Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
+ }
+ } catch (RuntimeException e) {
+ Slog.w(TAG, "failed creating starting window content at taskId: "
+ + taskId, e);
+ contentView = null;
+ }
+ consumer.accept(contentView);
+ });
}
private void updateDensity() {
@@ -146,7 +195,19 @@ public class SplashscreenContentDrawer {
}
}
- SplashScreenView makeSplashScreenContentView(Context context, ActivityInfo ai) {
+ private SplashScreenView makeEmptySplashScreenContentView(Context context) {
+ getWindowAttrs(context, mTmpAttrs);
+ final StartingWindowViewBuilder builder = new StartingWindowViewBuilder();
+ final int themeBGColor = peekWindowBGColor(context);
+ final SplashScreenView view = builder
+ .setContext(context)
+ .setWindowBGColor(themeBGColor)
+ .build();
+ view.setNotCopyable();
+ return view;
+ }
+
+ private SplashScreenView makeSplashScreenContentView(Context context, ActivityInfo ai) {
updateDensity();
getWindowAttrs(context, mTmpAttrs);
@@ -199,7 +260,7 @@ public class SplashscreenContentDrawer {
}
}
- static class SplashScreenWindowAttrs {
+ private static class SplashScreenWindowAttrs {
private int mWindowBgResId = 0;
private int mWindowBgColor = Color.TRANSPARENT;
private Drawable mReplaceIcon = null;
@@ -271,9 +332,7 @@ public class SplashscreenContentDrawer {
if (DEBUG) {
Slog.d(TAG, "The icon is not an AdaptiveIconDrawable");
}
- mFinalIconDrawable = SplashscreenIconDrawableFactory.makeIconDrawable(
- mIconBackground != Color.TRANSPARENT
- ? mIconBackground : mThemeColor, mIconDrawable, mIconSize);
+ createIconDrawable(mIconDrawable, mIconSize);
}
final int iconSize = mFinalIconDrawable != null ? (int) (mIconSize * mScale) : 0;
mCachedResult = fillViewWithIcon(mContext, iconSize, mFinalIconDrawable);
@@ -283,8 +342,8 @@ public class SplashscreenContentDrawer {
private void createIconDrawable(Drawable iconDrawable, int iconSize) {
mFinalIconDrawable = SplashscreenIconDrawableFactory.makeIconDrawable(
- mIconBackground != Color.TRANSPARENT
- ? mIconBackground : mThemeColor, iconDrawable, iconSize);
+ mIconBackground != Color.TRANSPARENT ? mIconBackground : mThemeColor,
+ iconDrawable, iconSize, mSplashscreenWorkerHandler);
}
private boolean processAdaptiveIcon() {
@@ -399,7 +458,7 @@ public class SplashscreenContentDrawer {
return root < 0.1;
}
- static SplashScreenView makeSplashscreenContent(Context ctx,
+ private static SplashScreenView makeSplashscreenContent(Context ctx,
int splashscreenContentResId) {
// doesn't support windowSplashscreenContent after S
// TODO add an allowlist to skip some packages if needed
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenIconDrawableFactory.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenIconDrawableFactory.java
index 4196d68f5800..85845d0d9c89 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenIconDrawableFactory.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/SplashscreenIconDrawableFactory.java
@@ -37,6 +37,7 @@ import android.graphics.drawable.AdaptiveIconDrawable;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
+import android.os.Handler;
import android.os.Trace;
import android.util.PathParser;
import android.window.SplashScreenView;
@@ -50,42 +51,61 @@ import com.android.internal.R;
public class SplashscreenIconDrawableFactory {
static Drawable makeIconDrawable(@ColorInt int backgroundColor,
- @NonNull Drawable foregroundDrawable, int iconSize) {
+ @NonNull Drawable foregroundDrawable, int iconSize,
+ Handler splashscreenWorkerHandler) {
if (foregroundDrawable instanceof Animatable) {
return new AnimatableIconDrawable(backgroundColor, foregroundDrawable);
} else if (foregroundDrawable instanceof AdaptiveIconDrawable) {
- return new ImmobileIconDrawable((AdaptiveIconDrawable) foregroundDrawable, iconSize);
+ return new ImmobileIconDrawable((AdaptiveIconDrawable) foregroundDrawable, iconSize,
+ splashscreenWorkerHandler);
} else {
return new ImmobileIconDrawable(new AdaptiveIconDrawable(
- new ColorDrawable(backgroundColor), foregroundDrawable), iconSize);
+ new ColorDrawable(backgroundColor), foregroundDrawable), iconSize,
+ splashscreenWorkerHandler);
}
}
private static class ImmobileIconDrawable extends Drawable {
- private Shader mLayersShader;
+ private boolean mCacheComplete;
private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG
| Paint.FILTER_BITMAP_FLAG);
- ImmobileIconDrawable(AdaptiveIconDrawable drawable, int iconSize) {
- cachePaint(drawable, iconSize, iconSize);
+ ImmobileIconDrawable(AdaptiveIconDrawable drawable, int iconSize,
+ Handler splashscreenWorkerHandler) {
+ splashscreenWorkerHandler.post(() -> cachePaint(drawable, iconSize, iconSize));
}
private void cachePaint(AdaptiveIconDrawable drawable, int width, int height) {
- Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "cachePaint");
- final Bitmap layersBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- final Canvas canvas = new Canvas(layersBitmap);
- drawable.setBounds(0, 0, width, height);
- drawable.draw(canvas);
- mLayersShader = new BitmapShader(layersBitmap, Shader.TileMode.CLAMP,
- Shader.TileMode.CLAMP);
- mPaint.setShader(mLayersShader);
- Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
+ synchronized (mPaint) {
+ if (mCacheComplete) {
+ return;
+ }
+ Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "cachePaint");
+ final Bitmap layersBitmap = Bitmap.createBitmap(width, height,
+ Bitmap.Config.ARGB_8888);
+ final Canvas canvas = new Canvas(layersBitmap);
+ drawable.setBounds(0, 0, width, height);
+ drawable.draw(canvas);
+ final Shader layersShader = new BitmapShader(layersBitmap, Shader.TileMode.CLAMP,
+ Shader.TileMode.CLAMP);
+ mPaint.setShader(layersShader);
+ Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
+ mCacheComplete = true;
+ }
}
@Override
public void draw(Canvas canvas) {
- final Rect bounds = getBounds();
- canvas.drawRect(bounds, mPaint);
+ synchronized (mPaint) {
+ if (mCacheComplete) {
+ final Rect bounds = getBounds();
+ canvas.drawRect(bounds, mPaint);
+ } else {
+ // this shouldn't happen, but if it really happen, invalidate self to wait
+ // for cachePaint finish.
+ invalidateSelf();
+ }
+ }
}
@Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java
index e95135a1a59f..e4b28696bc4f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java
@@ -18,8 +18,10 @@ package com.android.wm.shell.startingsurface;
import static android.content.Context.CONTEXT_RESTRICTED;
import static android.content.res.Configuration.EMPTY;
+import static android.view.Choreographer.CALLBACK_INSETS_ANIMATION;
import static android.view.Display.DEFAULT_DISPLAY;
+import android.annotation.Nullable;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityTaskManager;
import android.content.Context;
@@ -29,16 +31,15 @@ import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
-import android.graphics.Color;
import android.graphics.PixelFormat;
import android.graphics.Rect;
-import android.graphics.drawable.ColorDrawable;
import android.hardware.display.DisplayManager;
import android.os.IBinder;
import android.os.SystemClock;
import android.os.UserHandle;
import android.util.Slog;
import android.util.SparseArray;
+import android.view.Choreographer;
import android.view.Display;
import android.view.SurfaceControl;
import android.view.View;
@@ -54,9 +55,44 @@ import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.TransactionPool;
import java.util.function.Consumer;
+import java.util.function.Supplier;
/**
* A class which able to draw splash screen or snapshot as the starting window for a task.
+ *
+ * In order to speed up, there will use two threads to creating a splash screen in parallel.
+ * Right now we are still using PhoneWindow to create splash screen window, so the view is added to
+ * the ViewRootImpl, and those view won't be draw immediately because the ViewRootImpl will call
+ * scheduleTraversal to register a callback from Choreographer, so the drawing result of the view
+ * can synchronize on each frame.
+ *
+ * The bad thing is that we cannot decide when would Choreographer#doFrame happen, and drawing
+ * the AdaptiveIconDrawable object can be time consuming, so we use the splash-screen background
+ * thread to draw the AdaptiveIconDrawable object to a Bitmap and cache it to a BitmapShader after
+ * the SplashScreenView just created, once we get the BitmapShader then the #draw call can be very
+ * quickly.
+ *
+ * So basically we are using the spare time to prepare the SplashScreenView while splash screen
+ * thread is waiting for
+ * 1. WindowManager#addView(binder call to WM),
+ * 2. Choreographer#doFrame happen(uncertain time for next frame, depends on device),
+ * 3. Session#relayout(another binder call to WM which under Choreographer#doFrame, but will
+ * always happen before #draw).
+ * Because above steps are running on splash-screen thread, so pre-draw the BitmapShader on
+ * splash-screen background tread can make they execute in parallel, which ensure it is faster then
+ * to draw the AdaptiveIconDrawable when receive callback from Choreographer#doFrame.
+ *
+ * Here is the sequence to compare the difference between using single and two thread.
+ *
+ * Single thread:
+ * => makeSplashScreenContentView -> WM#addView .. waiting for Choreographer#doFrame -> relayout
+ * -> draw -> AdaptiveIconDrawable#draw
+ *
+ * Two threads:
+ * => makeSplashScreenContentView -> cachePaint(=AdaptiveIconDrawable#draw)
+ * => WM#addView -> .. waiting for Choreographer#doFrame -> relayout -> draw -> (draw the Paint
+ * directly).
+ *
* @hide
*/
public class StartingSurfaceDrawer {
@@ -68,7 +104,11 @@ public class StartingSurfaceDrawer {
private final DisplayManager mDisplayManager;
private final ShellExecutor mSplashScreenExecutor;
private final SplashscreenContentDrawer mSplashscreenContentDrawer;
+ private Choreographer mChoreographer;
+ /**
+ * @param splashScreenExecutor The thread used to control add and remove starting window.
+ */
public StartingSurfaceDrawer(Context context, ShellExecutor splashScreenExecutor,
TransactionPool pool) {
mContext = context;
@@ -82,6 +122,7 @@ public class StartingSurfaceDrawer {
com.android.wm.shell.R.integer.starting_window_app_reveal_anim_duration);
mSplashscreenContentDrawer = new SplashscreenContentDrawer(mContext,
maxAnimatableIconDuration, iconExitAnimDuration, appRevealAnimDuration, pool);
+ mSplashScreenExecutor.execute(() -> mChoreographer = Choreographer.getInstance());
}
private final SparseArray<StartingWindowRecord> mStartingWindowRecords = new SparseArray<>();
@@ -267,36 +308,83 @@ public class StartingSurfaceDrawer {
params.setTitle("Splash Screen " + activityInfo.packageName);
// TODO(b/173975965) tracking performance
- SplashScreenView sView = null;
+ // Prepare the splash screen content view on splash screen worker thread in parallel, so the
+ // content view won't be blocked by binder call like addWindow and relayout.
+ // 1. Trigger splash screen worker thread to create SplashScreenView before/while
+ // Session#addWindow.
+ // 2. Synchronize the SplashscreenView to splash screen thread before Choreographer start
+ // traversal, which will call Session#relayout on splash screen thread.
+ // 3. Pre-draw the BitmapShader if the icon is immobile on splash screen worker thread, at
+ // the same time the splash screen thread should be executing Session#relayout. Blocking the
+ // traversal -> draw on splash screen thread until the BitmapShader of the icon is ready.
+
+ // Record whether create splash screen view success, notify to current thread after
+ // create splash screen view finished.
+ final SplashScreenViewSupplier viewSupplier = new SplashScreenViewSupplier();
+ final Runnable setViewSynchronized = () -> {
+ // waiting for setContentView before relayoutWindow
+ SplashScreenView contentView = viewSupplier.get();
+ final StartingWindowRecord record = mStartingWindowRecords.get(taskId);
+ // if record == null, either the starting window added fail or removed already.
+ if (record != null) {
+ // if view == null then creation of content view was failed.
+ if (contentView != null) {
+ try {
+ win.setContentView(contentView);
+ contentView.cacheRootWindow(win);
+ } catch (RuntimeException e) {
+ Slog.w(TAG, "failed set content view to starting window "
+ + "at taskId: " + taskId, e);
+ contentView = null;
+ }
+ }
+ record.setSplashScreenView(contentView);
+ }
+ };
+ mSplashscreenContentDrawer.createContentView(context, emptyView,
+ splashscreenContentResId[0], activityInfo, taskId, viewSupplier::setView);
+
try {
final View view = win.getDecorView();
final WindowManager wm = mContext.getSystemService(WindowManager.class);
- if (!emptyView) {
- // splash screen content will be deprecated after S.
- sView = SplashscreenContentDrawer.makeSplashscreenContent(
- context, splashscreenContentResId[0]);
- final boolean splashscreenContentCompatible = sView != null;
- if (splashscreenContentCompatible) {
- win.setContentView(sView);
- } else {
- sView = mSplashscreenContentDrawer
- .makeSplashScreenContentView(context, activityInfo);
- win.setContentView(sView);
- win.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- sView.cacheRootWindow(win);
- }
- }
postAddWindow(taskId, appToken, view, wm, params);
+
+ // We use the splash screen worker thread to create SplashScreenView while adding the
+ // window, as otherwise Choreographer#doFrame might be delayed on this thread.
+ // And since Choreographer#doFrame won't happen immediately after adding the window, if
+ // the view is not added to the PhoneWindow on the first #doFrame, the view will not be
+ // rendered on the first frame. So here we need to synchronize the view on the window
+ // before first round relayoutWindow, which will happen after insets animation.
+ mChoreographer.postCallback(CALLBACK_INSETS_ANIMATION, setViewSynchronized, null);
} catch (RuntimeException e) {
// don't crash if something else bad happens, for example a
// failure loading resources because we are loading from an app
// on external storage that has been unmounted.
- Slog.w(TAG, " failed creating starting window at taskId: " + taskId, e);
- sView = null;
- } finally {
- final StartingWindowRecord record = mStartingWindowRecords.get(taskId);
- if (record != null) {
- record.setSplashScreenView(sView);
+ Slog.w(TAG, "failed creating starting window at taskId: " + taskId, e);
+ }
+ }
+
+ private static class SplashScreenViewSupplier implements Supplier<SplashScreenView> {
+ private SplashScreenView mView;
+ private boolean mIsViewSet;
+ void setView(SplashScreenView view) {
+ synchronized (this) {
+ mView = view;
+ mIsViewSet = true;
+ notify();
+ }
+ }
+
+ @Override
+ public @Nullable SplashScreenView get() {
+ synchronized (this) {
+ while (!mIsViewSet) {
+ try {
+ wait();
+ } catch (InterruptedException ignored) {
+ }
+ }
+ return mView;
}
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingWindowController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingWindowController.java
index 8a629bcf4f3b..e3362870cdf0 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingWindowController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingWindowController.java
@@ -16,6 +16,7 @@
package com.android.wm.shell.startingsurface;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.window.StartingWindowInfo.STARTING_WINDOW_TYPE_EMPTY_SPLASH_SCREEN;
import static android.window.StartingWindowInfo.STARTING_WINDOW_TYPE_NONE;
import static android.window.StartingWindowInfo.STARTING_WINDOW_TYPE_SNAPSHOT;
@@ -30,11 +31,11 @@ import static android.window.StartingWindowInfo.TYPE_PARAMETER_TASK_SWITCH;
import static com.android.wm.shell.common.ExecutorUtils.executeRemoteCallWithTaskPermission;
import android.app.ActivityManager.RunningTaskInfo;
-import android.app.ActivityTaskManager;
import android.content.Context;
import android.graphics.Rect;
import android.os.IBinder;
import android.os.RemoteException;
+import android.os.Trace;
import android.util.Slog;
import android.view.SurfaceControl;
import android.window.StartingWindowInfo;
@@ -109,17 +110,9 @@ public class StartingWindowController implements RemoteCallable<StartingWindowCo
}
private static class StartingTypeChecker {
- TaskSnapshot mSnapshot;
-
- StartingTypeChecker() { }
-
- private void reset() {
- mSnapshot = null;
- }
private @StartingWindowInfo.StartingWindowType int
estimateStartingWindowType(StartingWindowInfo windowInfo) {
- reset();
final int parameter = windowInfo.startingWindowTypeParameter;
final boolean newTask = (parameter & TYPE_PARAMETER_NEW_TASK) != 0;
final boolean taskSwitch = (parameter & TYPE_PARAMETER_TASK_SWITCH) != 0;
@@ -159,7 +152,7 @@ public class StartingWindowController implements RemoteCallable<StartingWindowCo
}
}
if (taskSwitch && allowTaskSnapshot) {
- final TaskSnapshot snapshot = getTaskSnapshot(windowInfo.taskInfo.taskId);
+ final TaskSnapshot snapshot = windowInfo.mTaskSnapshot;
if (isSnapshotCompatible(windowInfo, snapshot)) {
return STARTING_WINDOW_TYPE_SNAPSHOT;
}
@@ -198,20 +191,6 @@ public class StartingWindowController implements RemoteCallable<StartingWindowCo
}
return taskRotation == snapshotRotation;
}
-
- private TaskSnapshot getTaskSnapshot(int taskId) {
- if (mSnapshot != null) {
- return mSnapshot;
- }
- try {
- mSnapshot = ActivityTaskManager.getService().getTaskSnapshot(taskId,
- false/* isLowResolution */);
- } catch (RemoteException e) {
- Slog.e(TAG, "Unable to get snapshot for task: " + taskId + ", from: " + e);
- return null;
- }
- return mSnapshot;
- }
}
/*
@@ -232,7 +211,9 @@ public class StartingWindowController implements RemoteCallable<StartingWindowCo
*/
public void addStartingWindow(StartingWindowInfo windowInfo, IBinder appToken) {
mSplashScreenExecutor.execute(() -> {
- final int suggestionType = mStartingTypeChecker.estimateStartingWindowType(windowInfo);
+ Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "addStartingWindow");
+ final int suggestionType = mStartingTypeChecker.estimateStartingWindowType(
+ windowInfo);
final RunningTaskInfo runningTaskInfo = windowInfo.taskInfo;
if (mTaskLaunchingCallback != null && shouldSendToListener(suggestionType)) {
mTaskLaunchingCallback.accept(runningTaskInfo.taskId, suggestionType);
@@ -244,10 +225,12 @@ public class StartingWindowController implements RemoteCallable<StartingWindowCo
mStartingSurfaceDrawer.addSplashScreenStartingWindow(windowInfo, appToken,
true /* emptyView */);
} else if (suggestionType == STARTING_WINDOW_TYPE_SNAPSHOT) {
- final TaskSnapshot snapshot = mStartingTypeChecker.mSnapshot;
- mStartingSurfaceDrawer.makeTaskSnapshotWindow(windowInfo, appToken, snapshot);
+ final TaskSnapshot snapshot = windowInfo.mTaskSnapshot;
+ mStartingSurfaceDrawer.makeTaskSnapshotWindow(windowInfo, appToken,
+ snapshot);
}
// If prefer don't show, then don't show!
+ Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
});
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java
index 6e437411dcf8..e9ce2addd464 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java
@@ -19,6 +19,7 @@ package com.android.wm.shell.startingsurface;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.graphics.Color.WHITE;
import static android.graphics.Color.alpha;
+import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS;
import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS;
import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
@@ -60,6 +61,7 @@ import android.hardware.HardwareBuffer;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.SystemClock;
+import android.os.Trace;
import android.util.MergedConfiguration;
import android.util.Slog;
import android.view.IWindowSession;
@@ -222,8 +224,10 @@ public class TaskSnapshotWindow {
final InputChannel tmpInputChannel = new InputChannel();
mainExecutor.execute(() -> {
try {
+ Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "TaskSnapshot#addToDisplay");
final int res = session.addToDisplay(window, layoutParams, View.GONE, displayId,
mTmpInsetsState, tmpInputChannel, mTmpInsetsState, mTempControls);
+ Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
if (res < 0) {
Slog.w(TAG, "Failed to add snapshot starting window res=" + res);
return;
@@ -233,9 +237,11 @@ public class TaskSnapshotWindow {
}
window.setOuter(snapshotSurface);
try {
+ Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "TaskSnapshot#relayout");
session.relayout(window, layoutParams, -1, -1, View.VISIBLE, 0, -1,
tmpFrames, tmpMergedConfiguration, surfaceControl, mTmpInsetsState,
mTempControls, TMP_SURFACE_SIZE);
+ Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
} catch (RemoteException e) {
snapshotSurface.clearWindowSynced();
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipBoundsStateTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipBoundsStateTest.java
index dea24d3c2ec0..a6215d3347a8 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipBoundsStateTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipBoundsStateTest.java
@@ -38,6 +38,8 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.util.function.Consumer;
+
/**
* Tests for {@link PipBoundsState}.
*/
@@ -178,4 +180,20 @@ public class PipBoundsStateTest extends ShellTestCase {
mPipBoundsState.setOverrideMinSize(new Size(15, 10));
assertEquals(10, mPipBoundsState.getOverrideMinEdgeSize());
}
+
+ @Test
+ public void testSetBounds_updatesPipExclusionBounds() {
+ final Consumer<Rect> callback = mock(Consumer.class);
+ final Rect currentBounds = new Rect(10, 10, 20, 15);
+ final Rect newBounds = new Rect(50, 50, 100, 75);
+ mPipBoundsState.setBounds(currentBounds);
+
+ mPipBoundsState.setPipExclusionBoundsChangeCallback(callback);
+ // Setting the listener immediately calls back with the current bounds.
+ verify(callback).accept(currentBounds);
+
+ mPipBoundsState.setBounds(newBounds);
+ // Updating the bounds makes the listener call back back with the new rect.
+ verify(callback).accept(newBounds);
+ }
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java
index 5df391f919a7..9d7c82bb8550 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/PipTaskOrganizerTest.java
@@ -19,6 +19,7 @@ package com.android.wm.shell.pip;
import static com.android.wm.shell.pip.PipAnimationController.TRANSITION_DIRECTION_TO_PIP;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
@@ -31,6 +32,7 @@ import android.app.ActivityManager;
import android.app.PictureInPictureParams;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
+import android.graphics.Rect;
import android.os.RemoteException;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
@@ -222,6 +224,16 @@ public class PipTaskOrganizerTest extends ShellTestCase {
assertEquals(minSize, mPipBoundsState.getOverrideMinSize());
}
+ @Test
+ public void onTaskVanished_clearsPipBounds() {
+ mSpiedPipTaskOrganizer.onTaskAppeared(createTaskInfo(mComponent1,
+ createPipParams(null)), null /* leash */);
+ mPipBoundsState.setBounds(new Rect(100, 100, 200, 150));
+
+ mSpiedPipTaskOrganizer.onTaskVanished(createTaskInfo(mComponent1, createPipParams(null)));
+ assertTrue(mPipBoundsState.getBounds().isEmpty());
+ }
+
private void preparePipTaskOrg() {
final DisplayInfo info = new DisplayInfo();
mPipBoundsState.setDisplayLayout(new DisplayLayout(info,
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java
index d1d13131dd44..262353502bb7 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java
@@ -77,9 +77,9 @@ public class StartingSurfaceDrawerTests {
int mAddWindowForTask = 0;
int mViewThemeResId;
- TestStartingSurfaceDrawer(Context context, ShellExecutor animExecutor,
+ TestStartingSurfaceDrawer(Context context, ShellExecutor splashScreenExecutor,
TransactionPool pool) {
- super(context, animExecutor, pool);
+ super(context, splashScreenExecutor, pool);
}
@Override
@@ -120,8 +120,9 @@ public class StartingSurfaceDrawerTests {
doReturn(metrics).when(mMockWindowManager).getMaximumWindowMetrics();
doNothing().when(mMockWindowManager).addView(any(), any());
- mStartingSurfaceDrawer = spy(new TestStartingSurfaceDrawer(context,
- new HandlerExecutor(new Handler(Looper.getMainLooper())),
+ final HandlerExecutor testExecutor =
+ new HandlerExecutor(new Handler(Looper.getMainLooper()));
+ mStartingSurfaceDrawer = spy(new TestStartingSurfaceDrawer(context, testExecutor,
mTransactionPool));
}
diff --git a/libs/hwui/WebViewFunctorManager.cpp b/libs/hwui/WebViewFunctorManager.cpp
index 671c66f11e32..979678d1c4b6 100644
--- a/libs/hwui/WebViewFunctorManager.cpp
+++ b/libs/hwui/WebViewFunctorManager.cpp
@@ -18,6 +18,7 @@
#include <private/hwui/WebViewFunctor.h>
#include "Properties.h"
+#include "renderthread/CanvasContext.h"
#include "renderthread/RenderThread.h"
#include <log/log.h>
@@ -115,11 +116,20 @@ void WebViewFunctor::drawGl(const DrawGlInfo& drawInfo) {
ScopedCurrentFunctor currentFunctor(this);
WebViewOverlayData overlayParams = {
- // TODO:
.overlaysMode = OverlaysMode::Disabled,
.getSurfaceControl = currentFunctor.getSurfaceControl,
.mergeTransaction = currentFunctor.mergeTransaction,
};
+
+ if (!drawInfo.isLayer) {
+ renderthread::CanvasContext* activeContext =
+ renderthread::CanvasContext::getActiveContext();
+ if (activeContext != nullptr) {
+ ASurfaceControl* rootSurfaceControl = activeContext->getSurfaceControl();
+ if (rootSurfaceControl) overlayParams.overlaysMode = OverlaysMode::Enabled;
+ }
+ }
+
mCallbacks.gles.draw(mFunctor, mData, drawInfo, overlayParams);
}
@@ -138,11 +148,12 @@ void WebViewFunctor::drawVk(const VkFunctorDrawParams& params) {
ScopedCurrentFunctor currentFunctor(this);
WebViewOverlayData overlayParams = {
- // TODO
.overlaysMode = OverlaysMode::Disabled,
.getSurfaceControl = currentFunctor.getSurfaceControl,
.mergeTransaction = currentFunctor.mergeTransaction,
};
+
+ // TODO, enable surface control once offscreen mode figured out
mCallbacks.vk.draw(mFunctor, mData, params, overlayParams);
}
@@ -166,15 +177,43 @@ void WebViewFunctor::destroyContext() {
void WebViewFunctor::removeOverlays() {
ScopedCurrentFunctor currentFunctor(this);
mCallbacks.removeOverlays(mFunctor, mData, currentFunctor.mergeTransaction);
+ if (mSurfaceControl) {
+ auto funcs = renderthread::RenderThread::getInstance().getASurfaceControlFunctions();
+ funcs.releaseFunc(mSurfaceControl);
+ mSurfaceControl = nullptr;
+ }
}
ASurfaceControl* WebViewFunctor::getSurfaceControl() {
- // TODO
- return nullptr;
+ ATRACE_NAME("WebViewFunctor::getSurfaceControl");
+ if (mSurfaceControl != nullptr) return mSurfaceControl;
+
+ renderthread::CanvasContext* activeContext = renderthread::CanvasContext::getActiveContext();
+ LOG_ALWAYS_FATAL_IF(activeContext == nullptr, "Null active canvas context!");
+
+ ASurfaceControl* rootSurfaceControl = activeContext->getSurfaceControl();
+ LOG_ALWAYS_FATAL_IF(rootSurfaceControl == nullptr, "Null root surface control!");
+
+ auto funcs = renderthread::RenderThread::getInstance().getASurfaceControlFunctions();
+ mSurfaceControl = funcs.createFunc(rootSurfaceControl, "Webview Overlay SurfaceControl");
+ ASurfaceTransaction* transaction = funcs.transactionCreateFunc();
+ funcs.transactionSetVisibilityFunc(transaction, mSurfaceControl,
+ ASURFACE_TRANSACTION_VISIBILITY_SHOW);
+ funcs.transactionApplyFunc(transaction);
+ funcs.transactionDeleteFunc(transaction);
+ return mSurfaceControl;
}
void WebViewFunctor::mergeTransaction(ASurfaceTransaction* transaction) {
- // TODO
+ ATRACE_NAME("WebViewFunctor::mergeTransaction");
+ if (transaction == nullptr) return;
+ renderthread::CanvasContext* activeContext = renderthread::CanvasContext::getActiveContext();
+ LOG_ALWAYS_FATAL_IF(activeContext == nullptr, "Null active canvas context!");
+ bool done = activeContext->mergeTransaction(transaction, mSurfaceControl);
+ if (!done) {
+ auto funcs = renderthread::RenderThread::getInstance().getASurfaceControlFunctions();
+ funcs.transactionApplyFunc(transaction);
+ }
}
WebViewFunctorManager& WebViewFunctorManager::instance() {
diff --git a/libs/hwui/WebViewFunctorManager.h b/libs/hwui/WebViewFunctorManager.h
index 17b936ade45c..a84cda550567 100644
--- a/libs/hwui/WebViewFunctorManager.h
+++ b/libs/hwui/WebViewFunctorManager.h
@@ -91,6 +91,7 @@ private:
RenderMode mMode;
bool mHasContext = false;
bool mCreatedHandle = false;
+ ASurfaceControl* mSurfaceControl = nullptr;
};
class WebViewFunctorManager {
diff --git a/libs/hwui/jni/Typeface.cpp b/libs/hwui/jni/Typeface.cpp
index 251323d34422..f928baa27863 100644
--- a/libs/hwui/jni/Typeface.cpp
+++ b/libs/hwui/jni/Typeface.cpp
@@ -373,6 +373,12 @@ static void Typeface_warmUpCache(JNIEnv* env, jobject, jstring jFilePath) {
makeSkDataCached(filePath.c_str(), false /* fs verity */);
}
+// Critical Native
+static void Typeface_addFontCollection(CRITICAL_JNI_PARAMS_COMMA jlong faceHandle) {
+ std::shared_ptr<minikin::FontCollection> collection = toTypeface(faceHandle)->fFontCollection;
+ minikin::SystemFonts::addFontMap(std::move(collection));
+}
+
///////////////////////////////////////////////////////////////////////////////
static const JNINativeMethod gTypefaceMethods[] = {
@@ -397,6 +403,7 @@ static const JNINativeMethod gTypefaceMethods[] = {
{"nativeGetFamilySize", "(J)I", (void*)Typeface_getFamilySize},
{"nativeGetFamily", "(JI)J", (void*)Typeface_getFamily},
{"nativeWarmUpCache", "(Ljava/lang/String;)V", (void*)Typeface_warmUpCache},
+ {"nativeAddFontCollections", "(J)V", (void*)Typeface_addFontCollection},
};
int register_android_graphics_Typeface(JNIEnv* env)
diff --git a/libs/hwui/jni/android_graphics_HardwareRenderer.cpp b/libs/hwui/jni/android_graphics_HardwareRenderer.cpp
index d85954116dd1..dd78d5869314 100644
--- a/libs/hwui/jni/android_graphics_HardwareRenderer.cpp
+++ b/libs/hwui/jni/android_graphics_HardwareRenderer.cpp
@@ -64,6 +64,10 @@ struct {
} gHardwareRenderer;
struct {
+ jmethodID onMergeTransaction;
+} gASurfaceTransactionCallback;
+
+struct {
jmethodID onFrameDraw;
} gFrameDrawingCallback;
@@ -509,6 +513,27 @@ static void android_view_ThreadedRenderer_setPictureCapturedCallbackJNI(JNIEnv*
}
}
+static void android_view_ThreadedRenderer_setASurfaceTransactionCallback(
+ JNIEnv* env, jobject clazz, jlong proxyPtr, jobject aSurfaceTransactionCallback) {
+ RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
+ if (!aSurfaceTransactionCallback) {
+ proxy->setASurfaceTransactionCallback(nullptr);
+ } else {
+ JavaVM* vm = nullptr;
+ LOG_ALWAYS_FATAL_IF(env->GetJavaVM(&vm) != JNI_OK, "Unable to get Java VM");
+ auto globalCallbackRef = std::make_shared<JGlobalRefHolder>(
+ vm, env->NewGlobalRef(aSurfaceTransactionCallback));
+ proxy->setASurfaceTransactionCallback(
+ [globalCallbackRef](int64_t transObj, int64_t scObj, int64_t frameNr) {
+ JNIEnv* env = getenv(globalCallbackRef->vm());
+ env->CallVoidMethod(globalCallbackRef->object(),
+ gASurfaceTransactionCallback.onMergeTransaction,
+ static_cast<jlong>(transObj), static_cast<jlong>(scObj),
+ static_cast<jlong>(frameNr));
+ });
+ }
+}
+
static void android_view_ThreadedRenderer_setFrameCallback(JNIEnv* env,
jobject clazz, jlong proxyPtr, jobject frameCallback) {
RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
@@ -762,8 +787,7 @@ static const JNINativeMethod gMethods[] = {
{"nSetName", "(JLjava/lang/String;)V", (void*)android_view_ThreadedRenderer_setName},
{"nSetSurface", "(JLandroid/view/Surface;Z)V",
(void*)android_view_ThreadedRenderer_setSurface},
- {"nSetSurfaceControl", "(JJ)V",
- (void*)android_view_ThreadedRenderer_setSurfaceControl},
+ {"nSetSurfaceControl", "(JJ)V", (void*)android_view_ThreadedRenderer_setSurfaceControl},
{"nPause", "(J)Z", (void*)android_view_ThreadedRenderer_pause},
{"nSetStopped", "(JZ)V", (void*)android_view_ThreadedRenderer_setStopped},
{"nSetLightAlpha", "(JFF)V", (void*)android_view_ThreadedRenderer_setLightAlpha},
@@ -804,6 +828,9 @@ static const JNINativeMethod gMethods[] = {
{"nSetPictureCaptureCallback",
"(JLandroid/graphics/HardwareRenderer$PictureCapturedCallback;)V",
(void*)android_view_ThreadedRenderer_setPictureCapturedCallbackJNI},
+ {"nSetASurfaceTransactionCallback",
+ "(JLandroid/graphics/HardwareRenderer$ASurfaceTransactionCallback;)V",
+ (void*)android_view_ThreadedRenderer_setASurfaceTransactionCallback},
{"nSetFrameCallback", "(JLandroid/graphics/HardwareRenderer$FrameDrawingCallback;)V",
(void*)android_view_ThreadedRenderer_setFrameCallback},
{"nSetFrameCompleteCallback",
@@ -866,6 +893,11 @@ int register_android_view_ThreadedRenderer(JNIEnv* env) {
GetStaticMethodIDOrDie(env, hardwareRenderer, "closeHintSession",
"(Landroid/os/PerformanceHintManager$Session;)V");
+ jclass aSurfaceTransactionCallbackClass =
+ FindClassOrDie(env, "android/graphics/HardwareRenderer$ASurfaceTransactionCallback");
+ gASurfaceTransactionCallback.onMergeTransaction =
+ GetMethodIDOrDie(env, aSurfaceTransactionCallbackClass, "onMergeTransaction", "(JJJ)V");
+
jclass frameCallbackClass = FindClassOrDie(env,
"android/graphics/HardwareRenderer$FrameDrawingCallback");
gFrameDrawingCallback.onFrameDraw = GetMethodIDOrDie(env, frameCallbackClass,
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 24821888e2eb..bba22071ecef 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -56,6 +56,22 @@ namespace android {
namespace uirenderer {
namespace renderthread {
+namespace {
+class ScopedActiveContext {
+public:
+ ScopedActiveContext(CanvasContext* context) { sActiveContext = context; }
+
+ ~ScopedActiveContext() { sActiveContext = nullptr; }
+
+ static CanvasContext* getActiveContext() { return sActiveContext; }
+
+private:
+ static CanvasContext* sActiveContext;
+};
+
+CanvasContext* ScopedActiveContext::sActiveContext = nullptr;
+} /* namespace */
+
CanvasContext* CanvasContext::create(RenderThread& thread, bool translucent,
RenderNode* rootRenderNode, IContextFactory* contextFactory) {
auto renderType = Properties::getRenderPipelineType();
@@ -473,6 +489,7 @@ void CanvasContext::draw() {
return;
}
+ ScopedActiveContext activeContext(this);
mCurrentFrameInfo->set(FrameInfoIndex::FrameInterval) =
mRenderThread.timeLord().frameIntervalNanos();
@@ -880,6 +897,17 @@ SkRect CanvasContext::computeDirtyRect(const Frame& frame, SkRect* dirty) {
return windowDirty;
}
+CanvasContext* CanvasContext::getActiveContext() {
+ return ScopedActiveContext::getActiveContext();
+}
+
+bool CanvasContext::mergeTransaction(ASurfaceTransaction* transaction, ASurfaceControl* control) {
+ if (!mASurfaceTransactionCallback) return false;
+ std::invoke(mASurfaceTransactionCallback, reinterpret_cast<int64_t>(transaction),
+ reinterpret_cast<int64_t>(control), getFrameNumber());
+ return true;
+}
+
} /* namespace renderthread */
} /* namespace uirenderer */
} /* namespace android */
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 74f426ead912..af1ebb288f21 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -109,6 +109,8 @@ public:
*/
GrDirectContext* getGrContext() const { return mRenderThread.getGrContext(); }
+ ASurfaceControl* getSurfaceControl() const { return mSurfaceControl; }
+
// Won't take effect until next EGLSurface creation
void setSwapBehavior(SwapBehavior swapBehavior);
@@ -201,6 +203,15 @@ public:
static void onSurfaceStatsAvailable(void* context, ASurfaceControl* control,
ASurfaceControlStats* stats);
+ void setASurfaceTransactionCallback(
+ const std::function<void(int64_t, int64_t, int64_t)>& callback) {
+ mASurfaceTransactionCallback = callback;
+ }
+
+ bool mergeTransaction(ASurfaceTransaction* transaction, ASurfaceControl* control);
+
+ static CanvasContext* getActiveContext();
+
private:
CanvasContext(RenderThread& thread, bool translucent, RenderNode* rootRenderNode,
IContextFactory* contextFactory, std::unique_ptr<IRenderPipeline> renderPipeline);
@@ -296,6 +307,8 @@ private:
// If set to true, we expect that callbacks into onSurfaceStatsAvailable
bool mExpectSurfaceStats = false;
+
+ std::function<void(int64_t, int64_t, int64_t)> mASurfaceTransactionCallback;
};
} /* namespace renderthread */
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 9361abd20852..1b4b4b999f68 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -295,6 +295,12 @@ void RenderProxy::setPictureCapturedCallback(
[this, cb = callback]() { mContext->setPictureCapturedCallback(cb); });
}
+void RenderProxy::setASurfaceTransactionCallback(
+ const std::function<void(int64_t, int64_t, int64_t)>& callback) {
+ mRenderThread.queue().post(
+ [this, cb = callback]() { mContext->setASurfaceTransactionCallback(cb); });
+}
+
void RenderProxy::setFrameCallback(std::function<void(int64_t)>&& callback) {
mDrawFrameTask.setFrameCallback(std::move(callback));
}
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 8d55d3c55570..288f5554f65a 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -120,6 +120,8 @@ public:
void drawRenderNode(RenderNode* node);
void setContentDrawBounds(int left, int top, int right, int bottom);
void setPictureCapturedCallback(const std::function<void(sk_sp<SkPicture>&&)>& callback);
+ void setASurfaceTransactionCallback(
+ const std::function<void(int64_t, int64_t, int64_t)>& callback);
void setFrameCallback(std::function<void(int64_t)>&& callback);
void setFrameCompleteCallback(std::function<void(int64_t)>&& callback);
diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp
index 682baa60a207..04aa1cb91492 100644
--- a/libs/hwui/renderthread/RenderThread.cpp
+++ b/libs/hwui/renderthread/RenderThread.cpp
@@ -54,6 +54,10 @@ static JVMAttachHook gOnStartHook = nullptr;
ASurfaceControlFunctions::ASurfaceControlFunctions() {
void* handle_ = dlopen("libandroid.so", RTLD_NOW | RTLD_NODELETE);
+ createFunc = (ASC_create)dlsym(handle_, "ASurfaceControl_create");
+ LOG_ALWAYS_FATAL_IF(createFunc == nullptr,
+ "Failed to find required symbol ASurfaceControl_create!");
+
acquireFunc = (ASC_acquire) dlsym(handle_, "ASurfaceControl_acquire");
LOG_ALWAYS_FATAL_IF(acquireFunc == nullptr,
"Failed to find required symbol ASurfaceControl_acquire!");
@@ -81,6 +85,23 @@ ASurfaceControlFunctions::ASurfaceControlFunctions() {
"ASurfaceControlStats_getFrameNumber");
LOG_ALWAYS_FATAL_IF(getFrameNumberFunc == nullptr,
"Failed to find required symbol ASurfaceControlStats_getFrameNumber!");
+
+ transactionCreateFunc = (AST_create)dlsym(handle_, "ASurfaceTransaction_create");
+ LOG_ALWAYS_FATAL_IF(transactionCreateFunc == nullptr,
+ "Failed to find required symbol ASurfaceTransaction_create!");
+
+ transactionDeleteFunc = (AST_delete)dlsym(handle_, "ASurfaceTransaction_delete");
+ LOG_ALWAYS_FATAL_IF(transactionDeleteFunc == nullptr,
+ "Failed to find required symbol ASurfaceTransaction_delete!");
+
+ transactionApplyFunc = (AST_apply)dlsym(handle_, "ASurfaceTransaction_apply");
+ LOG_ALWAYS_FATAL_IF(transactionApplyFunc == nullptr,
+ "Failed to find required symbol ASurfaceTransaction_apply!");
+
+ transactionSetVisibilityFunc =
+ (AST_setVisibility)dlsym(handle_, "ASurfaceTransaction_setVisibility");
+ LOG_ALWAYS_FATAL_IF(transactionSetVisibilityFunc == nullptr,
+ "Failed to find required symbol ASurfaceTransaction_setVisibility!");
}
void RenderThread::frameCallback(int64_t frameTimeNanos, void* data) {
diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h
index 9e5bce76e228..cd9b923f4b3a 100644
--- a/libs/hwui/renderthread/RenderThread.h
+++ b/libs/hwui/renderthread/RenderThread.h
@@ -79,25 +79,39 @@ struct VsyncSource {
virtual ~VsyncSource() {}
};
+typedef ASurfaceControl* (*ASC_create)(ASurfaceControl* parent, const char* debug_name);
typedef void (*ASC_acquire)(ASurfaceControl* control);
typedef void (*ASC_release)(ASurfaceControl* control);
typedef void (*ASC_registerSurfaceStatsListener)(ASurfaceControl* control, void* context,
ASurfaceControl_SurfaceStatsListener func);
typedef void (*ASC_unregisterSurfaceStatsListener)(void* context,
- ASurfaceControl_SurfaceStatsListener func);
+ ASurfaceControl_SurfaceStatsListener func);
typedef int64_t (*ASCStats_getAcquireTime)(ASurfaceControlStats* stats);
typedef uint64_t (*ASCStats_getFrameNumber)(ASurfaceControlStats* stats);
+typedef ASurfaceTransaction* (*AST_create)();
+typedef void (*AST_delete)(ASurfaceTransaction* transaction);
+typedef void (*AST_apply)(ASurfaceTransaction* transaction);
+typedef void (*AST_setVisibility)(ASurfaceTransaction* transaction,
+ ASurfaceControl* surface_control, int8_t visibility);
+
struct ASurfaceControlFunctions {
ASurfaceControlFunctions();
+
+ ASC_create createFunc;
ASC_acquire acquireFunc;
ASC_release releaseFunc;
ASC_registerSurfaceStatsListener registerListenerFunc;
ASC_unregisterSurfaceStatsListener unregisterListenerFunc;
ASCStats_getAcquireTime getAcquireTimeFunc;
ASCStats_getFrameNumber getFrameNumberFunc;
+
+ AST_create transactionCreateFunc;
+ AST_delete transactionDeleteFunc;
+ AST_apply transactionApplyFunc;
+ AST_setVisibility transactionSetVisibilityFunc;
};
class ChoreographerSource;
diff --git a/media/java/android/media/AudioFormat.java b/media/java/android/media/AudioFormat.java
index 24f553f95796..3a8678625b5a 100644
--- a/media/java/android/media/AudioFormat.java
+++ b/media/java/android/media/AudioFormat.java
@@ -273,8 +273,8 @@ public final class AudioFormat implements Parcelable {
/** Audio data format: compressed audio wrapped in PCM for HDMI
* or S/PDIF passthrough.
- * IEC61937 uses a stereo stream of 16-bit samples as the wrapper.
- * So the channel mask for the track must be {@link #CHANNEL_OUT_STEREO}.
+ * For devices whose SDK version is less than {@link android.os.Build.VERSION_CODES#S}, the
+ * channel mask of IEC61937 track must be {@link #CHANNEL_OUT_STEREO}.
* Data should be written to the stream in a short[] array.
* If the data is written in a byte[] array then there may be endian problems
* on some platforms when converting to short internally.
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index 7a2b022b514a..2ea098408d50 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -1676,13 +1676,11 @@ public class AudioTrack extends PlayerBase
}
mSampleRate = sampleRateInHz;
- // IEC61937 is based on stereo. We could coerce it to stereo.
- // But the application needs to know the stream is stereo so that
- // it is encoded and played correctly. So better to just reject it.
if (audioFormat == AudioFormat.ENCODING_IEC61937
- && channelConfig != AudioFormat.CHANNEL_OUT_STEREO) {
- throw new IllegalArgumentException(
- "ENCODING_IEC61937 must be configured as CHANNEL_OUT_STEREO");
+ && channelConfig != AudioFormat.CHANNEL_OUT_STEREO
+ && AudioFormat.channelCountFromOutChannelMask(channelConfig) != 8) {
+ Log.w(TAG, "ENCODING_IEC61937 is configured with channel mask as " + channelConfig
+ + ", which is not 2 or 8 channels");
}
//--------------
diff --git a/media/java/android/media/metrics/Event.java b/media/java/android/media/metrics/Event.java
index 17218f09b5d6..4a69ac5b9bf9 100644
--- a/media/java/android/media/metrics/Event.java
+++ b/media/java/android/media/metrics/Event.java
@@ -32,19 +32,17 @@ public abstract class Event {
mTimeSinceCreatedMillis = MediaMetricsManager.INVALID_TIMESTAMP;
}
- // TODO: remove
- protected Event(long timeSinceCreatedMillis) {
- mTimeSinceCreatedMillis = timeSinceCreatedMillis;
- }
-
/* package */ Event(long timeSinceCreatedMillis, Bundle extras) {
mTimeSinceCreatedMillis = timeSinceCreatedMillis;
mMetricsBundle = extras;
}
/**
- * Gets time since the corresponding instance is created in millisecond.
+ * Gets time since the corresponding log session is created in millisecond.
* @return the timestamp since the instance is created, or -1 if unknown.
+ * @see LogSessionId
+ * @see PlaybackSession
+ * @see RecordingSession
*/
@IntRange(from = -1)
public long getTimeSinceCreatedMillis() {
diff --git a/media/java/android/media/metrics/MediaMetricsManager.java b/media/java/android/media/metrics/MediaMetricsManager.java
index b4a74a33197a..23b697ff7512 100644
--- a/media/java/android/media/metrics/MediaMetricsManager.java
+++ b/media/java/android/media/metrics/MediaMetricsManager.java
@@ -25,7 +25,7 @@ import android.os.RemoteException;
* This class gives information about, and interacts with media metrics.
*/
@SystemService(Context.MEDIA_METRICS_SERVICE)
-public class MediaMetricsManager {
+public final class MediaMetricsManager {
public static final long INVALID_TIMESTAMP = -1;
private static final String TAG = "MediaMetricsManager";
diff --git a/media/java/android/media/metrics/NetworkEvent.java b/media/java/android/media/metrics/NetworkEvent.java
index 0e805439e603..7471d1d469ce 100644
--- a/media/java/android/media/metrics/NetworkEvent.java
+++ b/media/java/android/media/metrics/NetworkEvent.java
@@ -105,10 +105,8 @@ public final class NetworkEvent extends Event implements Parcelable {
/**
* Creates a new NetworkEvent.
- *
- * @hide
*/
- public NetworkEvent(@NetworkType int type, long timeSinceCreatedMillis,
+ private NetworkEvent(@NetworkType int type, long timeSinceCreatedMillis,
@NonNull Bundle extras) {
this.mNetworkType = type;
this.mTimeSinceCreatedMillis = timeSinceCreatedMillis;
@@ -124,8 +122,11 @@ public final class NetworkEvent extends Event implements Parcelable {
}
/**
- * Gets timestamp since the creation in milliseconds.
+ * Gets timestamp since the creation of the log session in milliseconds.
* @return the timestamp since the creation in milliseconds, or -1 if unknown.
+ * @see LogSessionId
+ * @see PlaybackSession
+ * @see RecordingSession
*/
@Override
@IntRange(from = -1)
@@ -177,8 +178,7 @@ public final class NetworkEvent extends Event implements Parcelable {
return 0;
}
- /** @hide */
- /* package-private */ NetworkEvent(@NonNull android.os.Parcel in) {
+ private NetworkEvent(@NonNull android.os.Parcel in) {
int type = in.readInt();
long timeSinceCreatedMillis = in.readLong();
Bundle extras = in.readBundle();
@@ -230,6 +230,7 @@ public final class NetworkEvent extends Event implements Parcelable {
* Sets timestamp since the creation in milliseconds.
* @param value the timestamp since the creation in milliseconds.
* -1 indicates the value is unknown.
+ * @see #getTimeSinceCreatedMillis()
*/
public @NonNull Builder setTimeSinceCreatedMillis(@IntRange(from = -1) long value) {
mTimeSinceCreatedMillis = value;
diff --git a/media/java/android/media/metrics/PlaybackErrorEvent.java b/media/java/android/media/metrics/PlaybackErrorEvent.java
index f36c04e77521..d155576c9b47 100644
--- a/media/java/android/media/metrics/PlaybackErrorEvent.java
+++ b/media/java/android/media/metrics/PlaybackErrorEvent.java
@@ -150,10 +150,8 @@ public final class PlaybackErrorEvent extends Event implements Parcelable {
/**
* Creates a new PlaybackErrorEvent.
- *
- * @hide
*/
- public PlaybackErrorEvent(
+ private PlaybackErrorEvent(
@Nullable String exceptionStack,
int errorCode,
int subErrorCode,
@@ -191,8 +189,10 @@ public final class PlaybackErrorEvent extends Event implements Parcelable {
}
/**
- * Gets the timestamp since creation in milliseconds.
+ * Gets the timestamp since creation of the playback session in milliseconds.
* @return the timestamp since the playback is created, or -1 if unknown.
+ * @see LogSessionId
+ * @see PlaybackSession
*/
@Override
@IntRange(from = -1)
@@ -254,8 +254,7 @@ public final class PlaybackErrorEvent extends Event implements Parcelable {
return 0;
}
- /** @hide */
- /* package-private */ PlaybackErrorEvent(@NonNull Parcel in) {
+ private PlaybackErrorEvent(@NonNull Parcel in) {
byte flg = in.readByte();
String exceptionStack = (flg & 0x1) == 0 ? null : in.readString();
int errorCode = in.readInt();
@@ -330,6 +329,7 @@ public final class PlaybackErrorEvent extends Event implements Parcelable {
* Set the timestamp since creation in milliseconds.
* @param value the timestamp since the creation in milliseconds.
* -1 indicates the value is unknown.
+ * @see #getTimeSinceCreatedMillis()
*/
public @NonNull Builder setTimeSinceCreatedMillis(@IntRange(from = -1) long value) {
mTimeSinceCreatedMillis = value;
diff --git a/media/java/android/media/metrics/PlaybackMetrics.java b/media/java/android/media/metrics/PlaybackMetrics.java
index 5f606a0a8ed0..bbcc48480e68 100644
--- a/media/java/android/media/metrics/PlaybackMetrics.java
+++ b/media/java/android/media/metrics/PlaybackMetrics.java
@@ -213,6 +213,7 @@ public final class PlaybackMetrics implements Parcelable {
/**
* Gets the media duration in milliseconds.
+ * <p>Media duration is the length of the media.
* @return the media duration in milliseconds, or -1 if unknown.
*/
@IntRange(from = -1)
@@ -328,6 +329,8 @@ public final class PlaybackMetrics implements Parcelable {
/**
* Gets network transfer duration in milliseconds.
+ * <p>Total transfer time spent reading from the network in ms. For parallel requests, the
+ * overlapping time intervals are counted only once.
*/
@IntRange(from = -1)
public long getNetworkTransferDurationMillis() {
@@ -523,6 +526,7 @@ public final class PlaybackMetrics implements Parcelable {
/**
* Sets the media duration in milliseconds.
* @param value the media duration in milliseconds. -1 indicates the value is unknown.
+ * @see #getMediaDurationMillis()
*/
public @NonNull Builder setMediaDurationMillis(@IntRange(from = -1) long value) {
mMediaDurationMillis = value;
@@ -645,6 +649,7 @@ public final class PlaybackMetrics implements Parcelable {
* Sets the network transfer duration in milliseconds.
* @param value the network transfer duration in milliseconds.
* -1 indicates the value is unknown.
+ * @see #getNetworkTransferDurationMillis()
*/
public @NonNull Builder setNetworkTransferDurationMillis(@IntRange(from = -1) long value) {
mNetworkTransferDurationMillis = value;
diff --git a/media/java/android/media/metrics/PlaybackStateEvent.java b/media/java/android/media/metrics/PlaybackStateEvent.java
index 449abe952038..8e7482534677 100644
--- a/media/java/android/media/metrics/PlaybackStateEvent.java
+++ b/media/java/android/media/metrics/PlaybackStateEvent.java
@@ -132,10 +132,8 @@ public final class PlaybackStateEvent extends Event implements Parcelable {
/**
* Creates a new PlaybackStateEvent.
- *
- * @hide
*/
- public PlaybackStateEvent(
+ private PlaybackStateEvent(
int state,
long timeSinceCreatedMillis,
@NonNull Bundle extras) {
@@ -147,13 +145,16 @@ public final class PlaybackStateEvent extends Event implements Parcelable {
/**
* Gets playback state.
*/
+ @State
public int getState() {
return mState;
}
/**
- * Gets time since the corresponding playback is created in millisecond.
+ * Gets time since the corresponding playback session is created in millisecond.
* @return the timestamp since the playback is created, or -1 if unknown.
+ * @see LogSessionId
+ * @see PlaybackSession
*/
@Override
@IntRange(from = -1)
@@ -197,8 +198,7 @@ public final class PlaybackStateEvent extends Event implements Parcelable {
return 0;
}
- /** @hide */
- /* package-private */ PlaybackStateEvent(@NonNull Parcel in) {
+ private PlaybackStateEvent(@NonNull Parcel in) {
int state = in.readInt();
long timeSinceCreatedMillis = in.readLong();
Bundle extras = in.readBundle();
@@ -247,6 +247,7 @@ public final class PlaybackStateEvent extends Event implements Parcelable {
* Sets timestamp since the creation in milliseconds.
* @param value the timestamp since the creation in milliseconds.
* -1 indicates the value is unknown.
+ * @see #getTimeSinceCreatedMillis()
*/
public @NonNull Builder setTimeSinceCreatedMillis(@IntRange(from = -1) long value) {
mTimeSinceCreatedMillis = value;
diff --git a/media/java/android/media/metrics/TrackChangeEvent.java b/media/java/android/media/metrics/TrackChangeEvent.java
index c36702695095..65d011cf6758 100644
--- a/media/java/android/media/metrics/TrackChangeEvent.java
+++ b/media/java/android/media/metrics/TrackChangeEvent.java
@@ -184,8 +184,11 @@ public final class TrackChangeEvent extends Event implements Parcelable {
}
/**
- * Gets timestamp since the creation in milliseconds.
+ * Gets timestamp since the creation of the log session in milliseconds.
* @return the timestamp since the creation in milliseconds, or -1 if unknown.
+ * @see LogSessionId
+ * @see PlaybackSession
+ * @see RecordingSession
*/
@Override
@IntRange(from = -1)
@@ -193,6 +196,11 @@ public final class TrackChangeEvent extends Event implements Parcelable {
return mTimeSinceCreatedMillis;
}
+ /**
+ * Gets the track type.
+ * <p>The track type must be one of {@link #TRACK_TYPE_AUDIO}, {@link #TRACK_TYPE_VIDEO},
+ * {@link #TRACK_TYPE_TEXT}.
+ */
@TrackType
public int getTrackType() {
return mType;
@@ -302,8 +310,7 @@ public final class TrackChangeEvent extends Event implements Parcelable {
return 0;
}
- /** @hide */
- /* package-private */ TrackChangeEvent(@NonNull Parcel in) {
+ private TrackChangeEvent(@NonNull Parcel in) {
int flg = in.readInt();
int state = in.readInt();
int reason = in.readInt();
@@ -429,8 +436,14 @@ public final class TrackChangeEvent extends Event implements Parcelable {
/**
* Creates a new Builder.
+ * @param type the track type. It must be one of {@link #TRACK_TYPE_AUDIO},
+ * {@link #TRACK_TYPE_VIDEO}, {@link #TRACK_TYPE_TEXT}.
*/
- public Builder(int type) {
+ public Builder(@TrackType int type) {
+ if (type != TRACK_TYPE_AUDIO && type != TRACK_TYPE_VIDEO && type != TRACK_TYPE_TEXT) {
+ throw new IllegalArgumentException("track type must be one of TRACK_TYPE_AUDIO, "
+ + "TRACK_TYPE_VIDEO, TRACK_TYPE_TEXT.");
+ }
mType = type;
}
@@ -499,6 +512,7 @@ public final class TrackChangeEvent extends Event implements Parcelable {
* Sets timestamp since the creation in milliseconds.
* @param value the timestamp since the creation in milliseconds.
* -1 indicates the value is unknown.
+ * @see #getTimeSinceCreatedMillis()
*/
public @NonNull Builder setTimeSinceCreatedMillis(@IntRange(from = -1) long value) {
checkNotUsed();
diff --git a/media/java/android/media/session/ParcelableListBinder.java b/media/java/android/media/session/ParcelableListBinder.java
index a7aacf2d8fca..bbf1e0889b68 100644
--- a/media/java/android/media/session/ParcelableListBinder.java
+++ b/media/java/android/media/session/ParcelableListBinder.java
@@ -109,7 +109,7 @@ public class ParcelableListBinder<T extends Parcelable> extends Binder {
throws RemoteException {
int count = list.size();
int i = 0;
- while (i < count) {
+ do {
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
if (i == 0) {
@@ -126,6 +126,6 @@ public class ParcelableListBinder<T extends Parcelable> extends Binder {
binder.transact(FIRST_CALL_TRANSACTION, data, reply, 0);
reply.recycle();
data.recycle();
- }
+ } while (i < count);
}
}
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 0aae940ca40e..4bdbe362a615 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -3029,7 +3029,8 @@ static FrontendSettings getFrontendSettings(JNIEnv *env, int type, jobject setti
}
}
-static FrontendSettingsExt1_1 getFrontendSettingsExt1_1(JNIEnv *env, int type, jobject settings) {
+static FrontendSettingsExt1_1 getFrontendSettingsExt1_1(
+ JNIEnv *env, int type, jobject settings, int tunerVersion) {
ALOGD("getFrontendSettingsExt1_1 %d", type);
FrontendSettingsExt1_1 settingsExt1_1 {
@@ -3038,6 +3039,10 @@ static FrontendSettingsExt1_1 getFrontendSettingsExt1_1(JNIEnv *env, int type, j
};
settingsExt1_1.settingExt.noinit();
+ if (tunerVersion < TUNER_VERSION_1_1) {
+ return settingsExt1_1;
+ }
+
if (type == static_cast<int>(::android::hardware::tv::tuner::V1_1::FrontendType::DTMB)) {
getDtmbFrontendSettings(env, settings, settingsExt1_1);
} else {
@@ -3220,7 +3225,8 @@ static jobject android_media_tv_Tuner_open_frontend_by_handle(
static int android_media_tv_Tuner_tune(JNIEnv *env, jobject thiz, jint type, jobject settings) {
sp<JTuner> tuner = getTuner(env, thiz);
FrontendSettings setting = getFrontendSettings(env, type, settings);
- FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(env, type, settings);
+ FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(
+ env, type, settings, tuner->getTunerVersion());
return tuner->tune(setting, settingExt);
}
@@ -3233,7 +3239,8 @@ static int android_media_tv_Tuner_scan(
JNIEnv *env, jobject thiz, jint settingsType, jobject settings, jint scanType) {
sp<JTuner> tuner = getTuner(env, thiz);
FrontendSettings setting = getFrontendSettings(env, settingsType, settings);
- FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(env, settingsType, settings);
+ FrontendSettingsExt1_1 settingExt = getFrontendSettingsExt1_1(
+ env, settingsType, settings, tuner->getTunerVersion());
return tuner->scan(setting, static_cast<FrontendScanType>(scanType), settingExt);
}
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index fafef4221541..2a933b207902 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -73,6 +73,8 @@ using ::android::hardware::tv::tuner::V1_1::FrontendScanMessageTypeExt1_1;
using MQ = MessageQueue<uint8_t, kSynchronizedReadWrite>;
+const static int TUNER_VERSION_1_1 = ((1 << 16) | 1);
+
namespace android {
struct LnbClientCallbackImpl : public LnbClientCallback {
diff --git a/media/jni/tuner/FilterClient.cpp b/media/jni/tuner/FilterClient.cpp
index c080701e31a8..dc1d8b705d8f 100644
--- a/media/jni/tuner/FilterClient.cpp
+++ b/media/jni/tuner/FilterClient.cpp
@@ -596,11 +596,11 @@ TunerFilterSectionSettings FilterClient::getAidlSectionSettings(
sectionBits.mask.resize(hidlSectionBits.mask.size());
sectionBits.mode.resize(hidlSectionBits.mode.size());
copy(hidlSectionBits.filter.begin(), hidlSectionBits.filter.end(),
- hidlSectionBits.filter.begin());
+ sectionBits.filter.begin());
copy(hidlSectionBits.mask.begin(), hidlSectionBits.mask.end(),
- hidlSectionBits.mask.begin());
+ sectionBits.mask.begin());
copy(hidlSectionBits.mode.begin(), hidlSectionBits.mode.end(),
- hidlSectionBits.mode.begin());
+ sectionBits.mode.begin());
aidlSection.condition.set<TunerFilterSectionCondition::sectionBits>(sectionBits);
break;
}
diff --git a/native/android/system_fonts.cpp b/native/android/system_fonts.cpp
index 48d738039696..60b0f1eeaf72 100644
--- a/native/android/system_fonts.cpp
+++ b/native/android/system_fonts.cpp
@@ -54,21 +54,51 @@ struct ParserState {
XmlCharUniquePtr mLocale;
};
-struct ASystemFontIterator {
- XmlDocUniquePtr mXmlDoc;
- ParserState state;
-
- // The OEM customization XML.
- XmlDocUniquePtr mCustomizationXmlDoc;
-};
-
struct AFont {
std::string mFilePath;
- std::unique_ptr<std::string> mLocale;
+ std::optional<std::string> mLocale;
uint16_t mWeight;
bool mItalic;
uint32_t mCollectionIndex;
std::vector<std::pair<uint32_t, float>> mAxes;
+
+ bool operator==(const AFont& o) const {
+ return mFilePath == o.mFilePath && mLocale == o.mLocale && mWeight == o.mWeight &&
+ mItalic == o.mItalic && mCollectionIndex == o.mCollectionIndex && mAxes == o.mAxes;
+ }
+
+ AFont() = default;
+ AFont(const AFont&) = default;
+};
+
+struct FontHasher {
+ std::size_t operator()(const AFont& font) const {
+ std::size_t r = std::hash<std::string>{}(font.mFilePath);
+ if (font.mLocale) {
+ r = combine(r, std::hash<std::string>{}(*font.mLocale));
+ }
+ r = combine(r, std::hash<uint16_t>{}(font.mWeight));
+ r = combine(r, std::hash<uint32_t>{}(font.mCollectionIndex));
+ for (const auto& [tag, value] : font.mAxes) {
+ r = combine(r, std::hash<uint32_t>{}(tag));
+ r = combine(r, std::hash<float>{}(value));
+ }
+ return r;
+ }
+
+ std::size_t combine(std::size_t l, std::size_t r) const { return l ^ (r << 1); }
+};
+
+struct ASystemFontIterator {
+ std::vector<AFont> fonts;
+ uint32_t index;
+
+ XmlDocUniquePtr mXmlDoc;
+
+ ParserState state;
+
+ // The OEM customization XML.
+ XmlDocUniquePtr mCustomizationXmlDoc;
};
struct AFontMatcher {
@@ -147,10 +177,9 @@ void copyFont(const XmlDocUniquePtr& xmlDoc, const ParserState& state, AFont* ou
out->mCollectionIndex = indexStr ?
strtol(reinterpret_cast<const char*>(indexStr.get()), nullptr, 10) : 0;
- out->mLocale.reset(
- state.mLocale ?
- new std::string(reinterpret_cast<const char*>(state.mLocale.get()))
- : nullptr);
+ if (state.mLocale) {
+ out->mLocale.emplace(reinterpret_cast<const char*>(state.mLocale.get()));
+ }
const xmlChar* TAG_ATTR_NAME = BAD_CAST("tag");
const xmlChar* STYLEVALUE_ATTR_NAME = BAD_CAST("stylevalue");
@@ -214,8 +243,44 @@ bool findFirstFontNode(const XmlDocUniquePtr& doc, ParserState* state) {
ASystemFontIterator* ASystemFontIterator_open() {
std::unique_ptr<ASystemFontIterator> ite(new ASystemFontIterator());
- ite->mXmlDoc.reset(xmlReadFile("/system/etc/fonts.xml", nullptr, 0));
- ite->mCustomizationXmlDoc.reset(xmlReadFile("/product/etc/fonts_customization.xml", nullptr, 0));
+
+ std::unordered_set<AFont, FontHasher> fonts;
+ minikin::SystemFonts::getFontMap(
+ [&fonts](const std::vector<std::shared_ptr<minikin::FontCollection>>& collections) {
+ for (const auto& fc : collections) {
+ for (const auto& family : fc->getFamilies()) {
+ for (uint32_t i = 0; i < family->getNumFonts(); ++i) {
+ const minikin::Font* font = family->getFont(i);
+
+ std::optional<std::string> locale;
+ uint32_t localeId = font->getLocaleListId();
+ if (localeId != minikin::kEmptyLocaleListId) {
+ locale.emplace(minikin::getLocaleString(localeId));
+ }
+ std::vector<std::pair<uint32_t, float>> axes;
+ for (const auto& [tag, value] : font->typeface()->GetAxes()) {
+ axes.push_back(std::make_pair(tag, value));
+ }
+
+ fonts.insert(
+ {font->typeface()->GetFontPath(), std::move(locale),
+ font->style().weight(),
+ font->style().slant() == minikin::FontStyle::Slant::ITALIC,
+ static_cast<uint32_t>(font->typeface()->GetFontIndex()),
+ axes});
+ }
+ }
+ }
+ });
+
+ if (fonts.empty()) {
+ ite->mXmlDoc.reset(xmlReadFile("/system/etc/fonts.xml", nullptr, 0));
+ ite->mCustomizationXmlDoc.reset(
+ xmlReadFile("/product/etc/fonts_customization.xml", nullptr, 0));
+ } else {
+ ite->index = 0;
+ ite->fonts.assign(fonts.begin(), fonts.end());
+ }
return ite.release();
}
@@ -308,6 +373,13 @@ bool findNextFontNode(const XmlDocUniquePtr& xmlDoc, ParserState* state) {
AFont* ASystemFontIterator_next(ASystemFontIterator* ite) {
LOG_ALWAYS_FATAL_IF(ite == nullptr, "nullptr has passed as iterator argument");
+ if (!ite->fonts.empty()) {
+ if (ite->index >= ite->fonts.size()) {
+ return nullptr;
+ }
+ return new AFont(ite->fonts[ite->index++]);
+ }
+
if (ite->mXmlDoc) {
if (!findNextFontNode(ite->mXmlDoc, &ite->state)) {
// Reached end of the XML file. Continue OEM customization.
diff --git a/packages/Connectivity/framework/api/module-lib-current.txt b/packages/Connectivity/framework/api/module-lib-current.txt
index 9e2cd3e8a7fd..c8b04a3f63f1 100644
--- a/packages/Connectivity/framework/api/module-lib-current.txt
+++ b/packages/Connectivity/framework/api/module-lib-current.txt
@@ -7,7 +7,7 @@ package android.net {
public class ConnectivityManager {
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void factoryReset();
- method @NonNull @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public java.util.List<android.net.NetworkStateSnapshot> getAllNetworkStateSnapshot();
+ method @NonNull @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public java.util.List<android.net.NetworkStateSnapshot> getAllNetworkStateSnapshots();
method @Nullable public android.net.ProxyInfo getGlobalProxy();
method @NonNull public static android.util.Range<java.lang.Integer> getIpSecNetIdRange();
method @NonNull public static String getPrivateDnsMode(@NonNull android.content.Context);
diff --git a/packages/Connectivity/framework/src/android/net/ConnectivityManager.java b/packages/Connectivity/framework/src/android/net/ConnectivityManager.java
index 96f2de6f76bd..b3c199772554 100644
--- a/packages/Connectivity/framework/src/android/net/ConnectivityManager.java
+++ b/packages/Connectivity/framework/src/android/net/ConnectivityManager.java
@@ -1425,9 +1425,9 @@ public class ConnectivityManager {
android.Manifest.permission.NETWORK_STACK,
android.Manifest.permission.NETWORK_SETTINGS})
@NonNull
- public List<NetworkStateSnapshot> getAllNetworkStateSnapshot() {
+ public List<NetworkStateSnapshot> getAllNetworkStateSnapshots() {
try {
- return mService.getAllNetworkStateSnapshot();
+ return mService.getAllNetworkStateSnapshots();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/packages/Connectivity/framework/src/android/net/IConnectivityManager.aidl b/packages/Connectivity/framework/src/android/net/IConnectivityManager.aidl
index 728f375372b1..c434bbcb0f51 100644
--- a/packages/Connectivity/framework/src/android/net/IConnectivityManager.aidl
+++ b/packages/Connectivity/framework/src/android/net/IConnectivityManager.aidl
@@ -82,7 +82,7 @@ interface IConnectivityManager
@UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
NetworkState[] getAllNetworkState();
- List<NetworkStateSnapshot> getAllNetworkStateSnapshot();
+ List<NetworkStateSnapshot> getAllNetworkStateSnapshots();
boolean isActiveNetworkMetered();
diff --git a/packages/Connectivity/service/ServiceConnectivityResources/Android.bp b/packages/Connectivity/service/ServiceConnectivityResources/Android.bp
index d78373811194..515498e4823a 100644
--- a/packages/Connectivity/service/ServiceConnectivityResources/Android.bp
+++ b/packages/Connectivity/service/ServiceConnectivityResources/Android.bp
@@ -21,7 +21,7 @@ package {
android_app {
name: "ServiceConnectivityResources",
- sdk_version: "module_current",
+ sdk_version: "module_30",
min_sdk_version: "30",
resource_dirs: [
"res",
diff --git a/packages/PrintSpooler/res/values-te/strings.xml b/packages/PrintSpooler/res/values-te/strings.xml
index 79944bb9994c..cf0e0f6b506e 100644
--- a/packages/PrintSpooler/res/values-te/strings.xml
+++ b/packages/PrintSpooler/res/values-te/strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4469836075319831821">"ముద్రణ స్పూలర్"</string>
- <string name="more_options_button" msgid="2243228396432556771">"మరిన్ని ఎంపికలు"</string>
+ <string name="more_options_button" msgid="2243228396432556771">"మరిన్ని ఆప్షన్‌లు"</string>
<string name="label_destination" msgid="9132510997381599275">"గమ్యం"</string>
<string name="label_copies" msgid="3634531042822968308">"కాపీలు"</string>
<string name="label_copies_summary" msgid="3861966063536529540">"కాపీలు:"</string>
diff --git a/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml b/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml
index 5ff0dc7a84f4..403e417c1bf2 100644
--- a/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml
+++ b/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml
@@ -65,9 +65,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceListItem"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal"/>
+ android:textAppearance="?android:attr/textAppearanceListItem"/>
<LinearLayout
android:id="@+id/summary_container"
diff --git a/packages/SettingsLib/SearchWidget/res/values-or/strings.xml b/packages/SettingsLib/SearchWidget/res/values-or/strings.xml
index c2379acf0950..cf824deecd79 100644
--- a/packages/SettingsLib/SearchWidget/res/values-or/strings.xml
+++ b/packages/SettingsLib/SearchWidget/res/values-or/strings.xml
@@ -17,5 +17,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="search_menu" msgid="1914043873178389845">"ସନ୍ଧାନ ସେଟିଂସ୍"</string>
+ <string name="search_menu" msgid="1914043873178389845">"ସେଟିଂସ୍ ସନ୍ଧାନ କରନ୍ତୁ"</string>
</resources>
diff --git a/packages/SettingsLib/SearchWidget/res/values-pt-rPT/strings.xml b/packages/SettingsLib/SearchWidget/res/values-pt-rPT/strings.xml
index 5fe116e86f94..02229b86b944 100644
--- a/packages/SettingsLib/SearchWidget/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/SearchWidget/res/values-pt-rPT/strings.xml
@@ -17,5 +17,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="search_menu" msgid="1914043873178389845">"Pesquisar nas definições"</string>
+ <string name="search_menu" msgid="1914043873178389845">"Pesquise nas definições"</string>
</resources>
diff --git a/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml b/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml
index 31b3fe56b76a..d2c6fa26a4bd 100644
--- a/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml
+++ b/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml
@@ -24,29 +24,27 @@
android:orientation="vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:paddingTop="32dp"
- android:paddingBottom="32dp">
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/usage_summary"
- android:layout_width="0dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- app:layout_constraintWidth_percent="0.45"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBaseline_toBaselineOf="@id/total_summary"
android:ellipsize="marquee"
- android:fontFamily="@*android:string/config_headlineFontFamily"
- android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Display1"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
android:textSize="14sp"
android:textAlignment="viewStart"/>
<TextView
android:id="@+id/total_summary"
android:layout_width="0dp"
android:layout_height="wrap_content"
- app:layout_constraintWidth_percent="0.45"
+ app:layout_constraintStart_toEndOf="@id/usage_summary"
app:layout_constraintEnd_toStartOf="@id/custom_content"
android:ellipsize="marquee"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
@@ -54,12 +52,11 @@
android:textAlignment="viewEnd"/>
<FrameLayout
android:id="@+id/custom_content"
- android:layout_width="0dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toBottomOf="@id/total_summary"
- app:layout_constraintWidth_percent="0.1"/>
+ app:layout_constraintBottom_toBottomOf="@id/total_summary"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<ProgressBar
@@ -67,8 +64,7 @@
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:scaleY="2"
- android:layout_marginTop="4dp"
+ android:scaleY="4"
android:max="100"/>
<TextView
diff --git a/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java b/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java
index a2b1de25bd21..fbf325c7603a 100644
--- a/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java
+++ b/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java
@@ -20,7 +20,7 @@ import android.content.Context;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
-import android.text.style.RelativeSizeSpan;
+import android.text.style.AbsoluteSizeSpan;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
@@ -192,7 +192,7 @@ public class UsageProgressBarPreference extends Preference {
final Matcher matcher = mNumberPattern.matcher(summary);
if (matcher.find()) {
final SpannableString spannableSummary = new SpannableString(summary);
- spannableSummary.setSpan(new RelativeSizeSpan(2.4f), matcher.start(),
+ spannableSummary.setSpan(new AbsoluteSizeSpan(64, true /* dip */), matcher.start(),
matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannableSummary;
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
index 8f7006e7dc83..2c2ca3becd4a 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
@@ -80,9 +80,6 @@ public class WifiStatusTracker {
@Override
public void onCapabilitiesChanged(
Network network, NetworkCapabilities networkCapabilities) {
- if (mDefaultNetwork != null && mDefaultNetwork.getNetId() != network.getNetId()) {
- return;
- }
if (!mNetworks.contains(network.getNetId())) {
// New network
boolean isVcnOverWifi =
@@ -117,9 +114,6 @@ public class WifiStatusTracker {
@Override
public void onLost(Network network) {
- if (mDefaultNetwork != null && mDefaultNetwork.getNetId() != network.getNetId()) {
- return;
- }
String log = new StringBuilder()
.append(SSDF.format(System.currentTimeMillis())).append(",")
.append("onLost: ")
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java
index cd78addf254f..ddafa3cab376 100644
--- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java
@@ -22,7 +22,7 @@ import static org.mockito.Mockito.mock;
import android.content.Context;
import android.text.SpannedString;
-import android.text.style.RelativeSizeSpan;
+import android.text.style.AbsoluteSizeSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
@@ -56,38 +56,38 @@ public class UsageProgressBarPreferenceTest {
}
@Test
- public void setUsageSummary_noNumber_noRelativeSizeSpan() {
+ public void setUsageSummary_noNumber_noAbsoluteSizeSpan() {
mUsageProgressBarPreference.setUsageSummary("test");
mUsageProgressBarPreference.onBindViewHolder(mViewHolder);
final TextView usageSummary = (TextView) mViewHolder.findViewById(R.id.usage_summary);
final SpannedString summary = new SpannedString(usageSummary.getText());
- assertThat(summary.getSpans(0, summary.length(), RelativeSizeSpan.class).length)
+ assertThat(summary.getSpans(0, summary.length(), AbsoluteSizeSpan.class).length)
.isEqualTo(0);
}
@Test
- public void setUsageSummary_integerNumber_findRelativeSizeSpan() {
+ public void setUsageSummary_integerNumber_findAbsoluteSizeSpan() {
mUsageProgressBarPreference.setUsageSummary("10Test");
mUsageProgressBarPreference.onBindViewHolder(mViewHolder);
final TextView usageSummary = (TextView) mViewHolder.findViewById(R.id.usage_summary);
final SpannedString summary = new SpannedString(usageSummary.getText());
- assertThat(summary.getSpans(0, summary.length(), RelativeSizeSpan.class).length)
+ assertThat(summary.getSpans(0, summary.length(), AbsoluteSizeSpan.class).length)
.isEqualTo(1);
}
@Test
- public void setUsageSummary_floatNumber_findRelativeSizeSpan() {
+ public void setUsageSummary_floatNumber_findAbsoluteSizeSpan() {
mUsageProgressBarPreference.setUsageSummary("3.14Test");
mUsageProgressBarPreference.onBindViewHolder(mViewHolder);
final TextView usageSummary = (TextView) mViewHolder.findViewById(R.id.usage_summary);
final SpannedString summary = new SpannedString(usageSummary.getText());
- assertThat(summary.getSpans(0, summary.length(), RelativeSizeSpan.class).length)
+ assertThat(summary.getSpans(0, summary.length(), AbsoluteSizeSpan.class).length)
.isEqualTo(1);
}
diff --git a/packages/SettingsProvider/res/values-es/strings.xml b/packages/SettingsProvider/res/values-es/strings.xml
index a3d3469b4cfe..c79968978686 100644
--- a/packages/SettingsProvider/res/values-es/strings.xml
+++ b/packages/SettingsProvider/res/values-es/strings.xml
@@ -20,6 +20,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Almacenamiento de configuración"</string>
- <string name="wifi_softap_config_change" msgid="5688373762357941645">"Se han cambiado los ajustes del punto de acceso"</string>
+ <string name="wifi_softap_config_change" msgid="5688373762357941645">"Se han cambiado los ajustes de Compartir Internet"</string>
<string name="wifi_softap_config_change_summary" msgid="8946397286141531087">"Toca para ver información detallada"</string>
</resources>
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index f685d888ffa3..b5af9ad21fa2 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -162,6 +162,7 @@
<uses-permission android:name="android.permission.READ_INPUT_STATE" />
<uses-permission android:name="android.permission.SET_ORIENTATION" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
+ <uses-permission android:name="com.android.permission.USE_INSTALLER_V2" />
<uses-permission android:name="com.android.permission.USE_SYSTEM_DATA_LOADERS" />
<uses-permission android:name="android.permission.MOVE_PACKAGE" />
<uses-permission android:name="android.permission.KEEP_UNINSTALLED_PACKAGES" />
@@ -413,6 +414,9 @@
<!-- Permission required for testing system audio effect APIs. -->
<uses-permission android:name="android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS"/>
+ <!-- Permission required for running networking unit tests -->
+ <uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS" />
+
<!-- Permissions required for CTS test - TunerTest -->
<uses-permission android:name="android.permission.ACCESS_TV_DESCRAMBLER" />
<uses-permission android:name="android.permission.ACCESS_TV_TUNER" />
@@ -544,6 +548,9 @@
<!-- Permission required for CTS test - CtsUwbTestCases -->
<uses-permission android:name="android.permission.UWB_PRIVILEGED" />
+ <!-- Permission required for CTS test - CtsAlarmManagerTestCases -->
+ <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
+
<application android:label="@string/app_label"
android:theme="@android:style/Theme.DeviceDefault.DayNight"
android:defaultToDeviceProtectedStorage="true"
diff --git a/packages/Shell/TEST_MAPPING b/packages/Shell/TEST_MAPPING
index a149b5cda3ea..9bb1b4b99207 100644
--- a/packages/Shell/TEST_MAPPING
+++ b/packages/Shell/TEST_MAPPING
@@ -18,6 +18,20 @@
"exclude-annotation": "androidx.test.filters.FlakyTest"
}
]
+ },
+ {
+ "name": "CtsUiAutomationTestCases",
+ "options": [
+ {
+ "include-filter": "android.app.uiautomation.cts.UiAutomationTest#testAdoptAllShellPermissions"
+ },
+ {
+ "include-filter": "android.app.uiautomation.cts.UiAutomationTest#testAdoptSomeShellPermissions"
+ },
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
}
],
"postsubmit": [
diff --git a/packages/SystemUI/res-keyguard/values-eu/strings.xml b/packages/SystemUI/res-keyguard/values-eu/strings.xml
index 93fe516a8aa6..9f00e6680481 100644
--- a/packages/SystemUI/res-keyguard/values-eu/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-eu/strings.xml
@@ -106,7 +106,7 @@
<string name="kg_prompt_reason_restart_pin" msgid="1587671566498057656">"PIN kodea idatzi beharko duzu gailua berrabiarazten denean"</string>
<string name="kg_prompt_reason_restart_password" msgid="8061279087240952002">"Pasahitza idatzi beharko duzu gailua berrabiarazten denean"</string>
<string name="kg_prompt_reason_timeout_pattern" msgid="9170360502528959889">"Eredua behar da gailua babestuago izateko"</string>
- <string name="kg_prompt_reason_timeout_pin" msgid="5945186097160029201">"PIN kodea behar da gailua babestuago izateko"</string>
+ <string name="kg_prompt_reason_timeout_pin" msgid="5945186097160029201">"PINa behar da gailua babestuago izateko"</string>
<string name="kg_prompt_reason_timeout_password" msgid="2258263949430384278">"Pasahitza behar da gailua babestuago izateko"</string>
<string name="kg_prompt_reason_switch_profiles_pattern" msgid="1922016914701991230">"Eredua marraztu beharko duzu profilez aldatzen baduzu"</string>
<string name="kg_prompt_reason_switch_profiles_pin" msgid="6490434826361055400">"PIN kodea idatzi beharko duzu profilez aldatzen baduzu"</string>
diff --git a/packages/SystemUI/res-keyguard/values-ne/strings.xml b/packages/SystemUI/res-keyguard/values-ne/strings.xml
index 6f8a10885d5d..707488df7c5b 100644
--- a/packages/SystemUI/res-keyguard/values-ne/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-ne/strings.xml
@@ -51,7 +51,7 @@
<string name="keyguard_sim_puk_locked_message" msgid="6253830777745450550">"SIM कार्ड PUK-लक भएको छ।"</string>
<string name="keyguard_sim_unlock_progress_dialog_message" msgid="2394023844117630429">"SIM कार्ड अनलक गरिँदै..."</string>
<string name="keyguard_accessibility_pin_area" msgid="7403009340414014734">"PIN क्षेत्र"</string>
- <string name="keyguard_accessibility_password" msgid="3524161948484801450">"यन्त्रको पासवर्ड"</string>
+ <string name="keyguard_accessibility_password" msgid="3524161948484801450">"डिभाइसको पासवर्ड"</string>
<string name="keyguard_accessibility_sim_pin_area" msgid="6272116591533888062">"SIM को PIN क्षेत्र"</string>
<string name="keyguard_accessibility_sim_puk_area" msgid="5537294043180237374">"SIM को PUK क्षेत्र"</string>
<string name="keyguard_accessibility_next_alarm" msgid="4492876946798984630">"अर्को अलार्म <xliff:g id="ALARM">%1$s</xliff:g> का लागि सेट गरियो"</string>
@@ -71,7 +71,7 @@
<string name="kg_pattern_instructions" msgid="5376036737065051736">"आफ्नो ढाँचा कोर्नुहोस्"</string>
<string name="kg_sim_pin_instructions" msgid="1942424305184242951">"SIM को PIN प्रविष्टि गर्नुहोस्।"</string>
<string name="kg_sim_pin_instructions_multi" msgid="3639863309953109649">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" को SIM को PIN प्रविष्टि गर्नुहोस्।"</string>
- <string name="kg_sim_lock_esim_instructions" msgid="5577169988158738030">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> मोबाइल सेवा बिना यन्त्रको प्रयोग गर्न eSIM लाई असक्षम पार्नुहोस्।"</string>
+ <string name="kg_sim_lock_esim_instructions" msgid="5577169988158738030">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> मोबाइल सेवा बिना डिभाइसको प्रयोग गर्न eSIM लाई असक्षम पार्नुहोस्।"</string>
<string name="kg_pin_instructions" msgid="822353548385014361">"PIN प्रविष्टि गर्नुहोस्"</string>
<string name="kg_password_instructions" msgid="324455062831719903">"पासवर्ड प्रविष्टि गर्नुहोस्"</string>
<string name="kg_puk_enter_puk_hint" msgid="3005288372875367017">"SIM कार्ड अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्टि गर्नुहोस्। विवरणको लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
@@ -85,7 +85,7 @@
<string name="kg_login_too_many_attempts" msgid="4519957179182578690">"अत्यन्त धेरै ढाँचा कोर्ने प्रयासहरू"</string>
<string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="544687656831558971">"तपाईंले <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक गलत तरिकाले आफ्नो PIN प्रविष्ट गर्नुभएको छ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि प्रयास गर्नुहोस्।"</string>
<string name="kg_too_many_failed_password_attempts_dialog_message" msgid="190984061975729494">"तपाईंले <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक आफ्नो गलत पासवर्ड प्रविष्ट गर्नुभएको छ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि प्रयास गर्नुहोस्।"</string>
- <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4252405904570284368">"तपाईंले <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक गलत तरिकाले आफ्नो अनलक ढाँचा कोर्नुभएको छ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि कोसिस गर्नुहोस्।"</string>
+ <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4252405904570284368">"तपाईंले <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक गलत तरिकाले आफ्नो अनलक प्याटर्न कोर्नुभएको छ। \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि कोसिस गर्नुहोस्।"</string>
<string name="kg_password_wrong_pin_code_pukked" msgid="8047350661459040581">"SIM को PIN कोड गलत छ। तपाईंले अब आफ्नो यन्त्र खोल्न आफ्नो सेवा प्रदायकलाई सम्पर्क गर्नै पर्ने हुन्छ।"</string>
<plurals name="kg_password_wrong_pin_code" formatted="false" msgid="7030584350995485026">
<item quantity="other">SIM को PIN कोड गलत छ, तपाईं अझै <xliff:g id="NUMBER_1">%d</xliff:g> पटक प्रयास गर्न सक्नुहुन्छ।</item>
@@ -135,7 +135,7 @@
<item quantity="other">SIM लाई असक्षम पारिएको छ। जारी राख्न PUK कोड प्रविष्टि गर्नुहोस्। तपाईंसँग <xliff:g id="_NUMBER_1">%d</xliff:g> प्रयासहरू बाँकी छन्, त्यसपछि SIM सदाका लागि प्रयोग गर्न नमिल्ने हुन्छ। विवरणहरूका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</item>
<item quantity="one">SIM लाई असक्षम पारिएको छ। जारी राख्न PUK कोड प्रविष्टि गर्नुहोस्। तपाईंसँग <xliff:g id="_NUMBER_0">%d</xliff:g> प्रयास बाँकी छ, त्यसपछि SIM सदाका लागि प्रयोग गर्न नमिल्ने हुन्छ। विवरणहरूका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</item>
</plurals>
- <string name="clock_title_default" msgid="6342735240617459864">"पूर्वनिर्धारित"</string>
+ <string name="clock_title_default" msgid="6342735240617459864">"डिफल्ट"</string>
<string name="clock_title_bubble" msgid="2204559396790593213">"बबल"</string>
<string name="clock_title_analog" msgid="8409262532900918273">"एनालग"</string>
</resources>
diff --git a/packages/SystemUI/res-keyguard/values/styles.xml b/packages/SystemUI/res-keyguard/values/styles.xml
index 0fef9f15c373..72b027af1bf6 100644
--- a/packages/SystemUI/res-keyguard/values/styles.xml
+++ b/packages/SystemUI/res-keyguard/values/styles.xml
@@ -17,7 +17,7 @@
*/
-->
-<resources xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+<resources>
<!-- Keyguard PIN pad styles -->
<style name="Keyguard.TextView" parent="@android:style/Widget.DeviceDefault.TextView">
<item name="android:textSize">@dimen/kg_status_line_font_size</item>
@@ -32,7 +32,9 @@
<item name="android:stateListAnimator">@null</item>
</style>
<style name="NumPadKey" parent="Theme.SystemUI">
- <item name="android:colorControlNormal">?androidprv:attr/colorSurface</item>
+ <!-- Studio can't directly reference ?androidprv:attr/colorSurface here, so this value
+ is resolved in {@link NumPadAnimator}. -->
+ <item name="android:colorControlNormal">@null</item>
<item name="android:colorControlHighlight">?android:attr/colorAccent</item>
<item name="android:background">@drawable/num_pad_key_background</item>
</style>
diff --git a/packages/SystemUI/res-product/values-ne/strings.xml b/packages/SystemUI/res-product/values-ne/strings.xml
index 148cb51fd902..1d368f46ec62 100644
--- a/packages/SystemUI/res-product/values-ne/strings.xml
+++ b/packages/SystemUI/res-product/values-ne/strings.xml
@@ -22,7 +22,7 @@
<string name="dock_alignment_slow_charging" product="default" msgid="6997633396534416792">"अझ छिटो चार्ज गर्न फोनलाई फेरि मिलाउनुहोस्"</string>
<string name="dock_alignment_not_charging" product="default" msgid="3980752926226749808">"तारविनै चार्ज गर्न फोनलाई फेरि मिलाउनुहोस्"</string>
<string name="inattentive_sleep_warning_message" product="tv" msgid="6844464574089665063">"Android टिभी यन्त्र चाँडै निष्क्रिय हुने छ; सक्रिय राख्न कुनै बटन थिच्नुहोस्।"</string>
- <string name="inattentive_sleep_warning_message" product="default" msgid="5693904520452332224">"यो यन्त्र चाँडै निष्क्रिय हुने छ; सक्रिय राख्न थिच्नुहोस्।"</string>
+ <string name="inattentive_sleep_warning_message" product="default" msgid="5693904520452332224">"यो डिभाइस चाँडै निष्क्रिय हुने छ; सक्रिय राख्न थिच्नुहोस्।"</string>
<string name="keyguard_missing_sim_message" product="tablet" msgid="5018086454277963787">"ट्याब्लेटमा SIM कार्ड छैन।"</string>
<string name="keyguard_missing_sim_message" product="default" msgid="7053347843877341391">"फोनमा SIM कार्ड छैन।"</string>
<string name="kg_invalid_confirm_pin_hint" product="default" msgid="6278551068943958651">"PIN कोडहरू मिलेनन्"</string>
diff --git a/packages/SystemUI/res/layout/long_screenshot.xml b/packages/SystemUI/res/layout/long_screenshot.xml
index fb783a760c3d..ceba4e3e1c19 100644
--- a/packages/SystemUI/res/layout/long_screenshot.xml
+++ b/packages/SystemUI/res/layout/long_screenshot.xml
@@ -19,6 +19,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="?android:colorBackgroundFloating"
+ android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -119,4 +120,14 @@
app:layout_constraintRight_toRightOf="parent"
/>
+ <ImageView
+ android:id="@+id/transition"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toBottomOf="@id/save"
+ app:layout_constraintStart_toStartOf="parent"
+ android:scaleType="matrix"
+ android:visibility="gone"
+ />
+
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/media_output_list_item.xml b/packages/SystemUI/res/layout/media_output_list_item.xml
index c98c3a0beb65..b563633f24fe 100644
--- a/packages/SystemUI/res/layout/media_output_list_item.xml
+++ b/packages/SystemUI/res/layout/media_output_list_item.xml
@@ -28,7 +28,7 @@
<FrameLayout
android:layout_width="36dp"
android:layout_height="36dp"
- android:layout_gravity="center_vertical"
+ android:layout_gravity="center_vertical|start"
android:layout_marginStart="16dp">
<ImageView
android:id="@+id/title_icon"
@@ -41,7 +41,7 @@
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
+ android:layout_gravity="center_vertical|start"
android:layout_marginStart="68dp"
android:ellipsize="end"
android:maxLines="1"
diff --git a/packages/SystemUI/res/layout/privacy_dialog_item.xml b/packages/SystemUI/res/layout/privacy_dialog_item.xml
index 0c8ed9f7ff2a..b91fb29c6f51 100644
--- a/packages/SystemUI/res/layout/privacy_dialog_item.xml
+++ b/packages/SystemUI/res/layout/privacy_dialog_item.xml
@@ -31,7 +31,6 @@
android:layout_width="@dimen/ongoing_appops_dialog_circle_size"
android:layout_height="@dimen/ongoing_appops_dialog_circle_size"
android:layout_gravity="center_vertical"
- android:importantForAccessibility="no"
/>
<TextView
diff --git a/packages/SystemUI/res/layout/qs_customize_tile_divider.xml b/packages/SystemUI/res/layout/qs_customize_tile_divider.xml
index 0d932acb2c50..19c2fc84a30a 100644
--- a/packages/SystemUI/res/layout/qs_customize_tile_divider.xml
+++ b/packages/SystemUI/res/layout/qs_customize_tile_divider.xml
@@ -18,8 +18,5 @@
<View
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
- android:layout_marginEnd="16dp"
- android:background="?android:attr/listDivider"
+ android:layout_height="32dp"
android:importantForAccessibility="no" />
diff --git a/packages/SystemUI/res/layout/qs_detail.xml b/packages/SystemUI/res/layout/qs_detail.xml
index 59e1a755d7d2..f056402b0cd4 100644
--- a/packages/SystemUI/res/layout/qs_detail.xml
+++ b/packages/SystemUI/res/layout/qs_detail.xml
@@ -23,6 +23,7 @@
android:clickable="true"
android:orientation="vertical"
android:layout_marginTop="@*android:dimen/quick_qs_offset_height"
+ android:layout_marginBottom="@dimen/qs_container_bottom_padding"
android:paddingBottom="8dp"
android:visibility="invisible"
android:elevation="4dp"
diff --git a/packages/SystemUI/res/layout/qs_panel.xml b/packages/SystemUI/res/layout/qs_panel.xml
index 3d2a621756f0..30e52e9a763c 100644
--- a/packages/SystemUI/res/layout/qs_panel.xml
+++ b/packages/SystemUI/res/layout/qs_panel.xml
@@ -32,6 +32,7 @@
android:id="@+id/expanded_qs_scroll_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/qs_container_bottom_padding"
android:elevation="4dp"
android:importantForAccessibility="no"
android:scrollbars="none"
diff --git a/packages/SystemUI/res/values-land/dimens.xml b/packages/SystemUI/res/values-land/dimens.xml
index 007f81b45bf7..5f50fd400e7f 100644
--- a/packages/SystemUI/res/values-land/dimens.xml
+++ b/packages/SystemUI/res/values-land/dimens.xml
@@ -33,7 +33,7 @@
<dimen name="battery_detail_graph_space_top">9dp</dimen>
<dimen name="battery_detail_graph_space_bottom">9dp</dimen>
- <dimen name="qs_detail_margin_top">0dp</dimen>
+ <dimen name="qs_detail_margin_top">14dp</dimen>
<dimen name="volume_tool_tip_right_margin">136dp</dimen>
<dimen name="volume_tool_tip_top_margin">12dp</dimen>
diff --git a/packages/SystemUI/res/values-night/styles.xml b/packages/SystemUI/res/values-night/styles.xml
index cd2395ed7064..fe52dee0ed3b 100644
--- a/packages/SystemUI/res/values-night/styles.xml
+++ b/packages/SystemUI/res/values-night/styles.xml
@@ -31,6 +31,7 @@
<!-- Screenshots -->
<style name="LongScreenshotActivity" parent="@android:style/Theme.DeviceDefault.DayNight">
+ <item name="android:windowNoTitle">true</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:windowLightNavigationBar">false</item>
</style>
diff --git a/packages/SystemUI/res/values-pt-ldrtl/strings.xml b/packages/SystemUI/res/values-pt-ldrtl/strings.xml
index 6fd2bc1ad711..53b2473446f3 100644
--- a/packages/SystemUI/res/values-pt-ldrtl/strings.xml
+++ b/packages/SystemUI/res/values-pt-ldrtl/strings.xml
@@ -19,5 +19,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="recents_quick_scrub_onboarding" msgid="2452671841151577157">"Arraste para a esquerda para alternar rapidamente entre os apps"</string>
+ <string name="recents_quick_scrub_onboarding" msgid="2452671841151577157">"Arraste para a esquerda para mudar rapidamente de app"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rBR-ldrtl/strings.xml b/packages/SystemUI/res/values-pt-rBR-ldrtl/strings.xml
index 6fd2bc1ad711..53b2473446f3 100644
--- a/packages/SystemUI/res/values-pt-rBR-ldrtl/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR-ldrtl/strings.xml
@@ -19,5 +19,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="recents_quick_scrub_onboarding" msgid="2452671841151577157">"Arraste para a esquerda para alternar rapidamente entre os apps"</string>
+ <string name="recents_quick_scrub_onboarding" msgid="2452671841151577157">"Arraste para a esquerda para mudar rapidamente de app"</string>
</resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 210efd86d453..935cfa673c23 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -610,6 +610,8 @@
<dimen name="qs_notif_collapsed_space">64dp</dimen>
+ <dimen name="qs_container_bottom_padding">24dp</dimen>
+
<!-- Desired qs icon overlay size. -->
<dimen name="qs_detail_icon_overlay_size">24dp</dimen>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index e55142bcde28..7ae74e2f1325 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -2620,19 +2620,19 @@
<string name="ongoing_privacy_dialog_last_separator">\u0020and\u0020</string>
<!-- Text for privacy dialog, using sensitive app op (one of camera, location, microphone) right now [CHAR LIMIT=NONE] -->
- <string name="ongoing_privacy_dialog_using_op"><xliff:g id="application_name" example="Photos">%1$s</xliff:g> is using the <xliff:g id="app_opp_name" example="camera">%2$s</xliff:g></string>
+ <string name="ongoing_privacy_dialog_using_op">Being used by <xliff:g id="application_name" example="Photos">%1$s</xliff:g></string>
<!-- Text for privacy dialog, recently used sensitive app op (one of camera, location, microphone) [CHAR LIMIT=NONE] -->
- <string name="ongoing_privacy_dialog_recent_op"><xliff:g id="application_name" example="Photos">%1$s</xliff:g> used the <xliff:g id="app_opp_name" example="camera">%2$s</xliff:g> recently</string>
+ <string name="ongoing_privacy_dialog_recent_op">Recently used by <xliff:g id="application_name" example="Photos">%1$s</xliff:g></string>
<!-- Text for privacy dialog, indicating that the application is the enterprise version [CHAR LIMIT=NONE] -->
- <string name="ongoing_privacy_dialog_enterprise">(enterprise)</string>
+ <string name="ongoing_privacy_dialog_enterprise">(work)</string>
<!-- Text for privacy dialog, identifying the phone call app [CHAR LIMIT=NONE]-->
<string name="ongoing_privacy_dialog_phonecall">Phone call</string>
- <!-- Text for privacy dialog, indicating that an app is using an op on behalf of another [CHAR LIMIT=NONE] -->
- <string name="ongoing_privacy_dialog_attribution_text">(through <xliff:g id="attribution" example="Special app">%s</xliff:g>)</string>
+ <!-- Text for privacy dialog, indicating that an app (or multiple) is using an op on behalf of another [CHAR LIMIT=NONE] -->
+ <string name="ongoing_privacy_dialog_attribution_text">(through <xliff:g id="application name(s)" example="Maps, and Assistant">%s</xliff:g>)</string>
<!-- Text for camera app op [CHAR LIMIT=20]-->
<string name="privacy_type_camera">camera</string>
diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java b/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java
index 570854ecaa36..abdd770c37d4 100644
--- a/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java
+++ b/packages/SystemUI/src/com/android/keyguard/NumPadAnimator.java
@@ -29,6 +29,7 @@ import androidx.annotation.StyleRes;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
+import com.android.systemui.util.Utils;
/**
* Provides background color and radius animations for key pad buttons.
@@ -100,7 +101,8 @@ class NumPadAnimator {
ContextThemeWrapper ctw = new ContextThemeWrapper(context, mStyle);
TypedArray a = ctw.obtainStyledAttributes(customAttrs);
- mNormalColor = a.getColor(0, 0);
+ mNormalColor = Utils.getPrivateAttrColorIfUnset(ctw, a, 0, 0,
+ com.android.internal.R.attr.colorSurface);
mHighlightColor = a.getColor(1, 0);
a.recycle();
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/Classifier.java b/packages/SystemUI/src/com/android/systemui/classifier/Classifier.java
index 6a012ebdd1e7..6f70672dbb54 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/Classifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/Classifier.java
@@ -42,6 +42,7 @@ public abstract class Classifier {
public static final int QS_COLLAPSE = 12;
public static final int UDFPS_AUTHENTICATION = 13;
public static final int DISABLED_UDFPS_AFFORDANCE = 14;
+ public static final int QS_SWIPE = 15;
@IntDef({
QUICK_SETTINGS,
@@ -59,7 +60,8 @@ public abstract class Classifier {
QS_COLLAPSE,
BRIGHTNESS_SLIDER,
UDFPS_AUTHENTICATION,
- DISABLED_UDFPS_AFFORDANCE
+ DISABLED_UDFPS_AFFORDANCE,
+ QS_SWIPE
})
@Retention(RetentionPolicy.SOURCE)
public @interface InteractionType {}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
index a4e1637e0de0..229801074246 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/DistanceClassifier.java
@@ -155,7 +155,8 @@ class DistanceClassifier extends FalsingClassifier {
|| interactionType == SHADE_DRAG
|| interactionType == QS_COLLAPSE
|| interactionType == Classifier.UDFPS_AUTHENTICATION
- || interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE) {
+ || interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE
+ || interactionType == Classifier.QS_SWIPE) {
return Result.passed(0);
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
index 3bc24c734a60..72d4303dc0ef 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/ProximityClassifier.java
@@ -19,6 +19,7 @@ package com.android.systemui.classifier;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.BRIGHTLINE_FALSING_PROXIMITY_PERCENT_COVERED_THRESHOLD;
import static com.android.systemui.classifier.Classifier.BRIGHTNESS_SLIDER;
import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
+import static com.android.systemui.classifier.Classifier.QS_SWIPE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import android.provider.DeviceConfig;
@@ -118,7 +119,7 @@ class ProximityClassifier extends FalsingClassifier {
@Classifier.InteractionType int interactionType,
double historyBelief, double historyConfidence) {
if (interactionType == QUICK_SETTINGS || interactionType == BRIGHTNESS_SLIDER
- || interactionType == QS_COLLAPSE) {
+ || interactionType == QS_COLLAPSE || interactionType == QS_SWIPE) {
return Result.passed(0);
}
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
index 1042516ebecf..c2ad7e6387d6 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/TypeClassifier.java
@@ -24,6 +24,7 @@ import static com.android.systemui.classifier.Classifier.NOTIFICATION_DISMISS;
import static com.android.systemui.classifier.Classifier.NOTIFICATION_DRAG_DOWN;
import static com.android.systemui.classifier.Classifier.PULSE_EXPAND;
import static com.android.systemui.classifier.Classifier.QS_COLLAPSE;
+import static com.android.systemui.classifier.Classifier.QS_SWIPE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.SHADE_DRAG;
@@ -85,6 +86,9 @@ public class TypeClassifier extends FalsingClassifier {
case QS_COLLAPSE:
wrongDirection = !vertical || !up;
break;
+ case QS_SWIPE:
+ wrongDirection = vertical;
+ break;
default:
wrongDirection = true;
break;
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java b/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java
index 1a94473f18d4..2e03d9a90f49 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/WakefulnessLifecycle.java
@@ -63,6 +63,8 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe
private final Context mContext;
private final DisplayMetrics mDisplayMetrics;
+
+ @Nullable
private final IWallpaperManager mWallpaperManagerService;
private int mWakefulness = WAKEFULNESS_ASLEEP;
@@ -114,11 +116,13 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe
mLastWakeReason = pmWakeReason;
updateLastWakeOriginLocation();
- try {
- mWallpaperManagerService.notifyWakingUp(
- mLastWakeOriginLocation.x, mLastWakeOriginLocation.y, new Bundle());
- } catch (RemoteException e) {
- e.printStackTrace();
+ if (mWallpaperManagerService != null) {
+ try {
+ mWallpaperManagerService.notifyWakingUp(
+ mLastWakeOriginLocation.x, mLastWakeOriginLocation.y, new Bundle());
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
}
dispatch(Observer::onStartedWakingUp);
@@ -140,11 +144,13 @@ public class WakefulnessLifecycle extends Lifecycle<WakefulnessLifecycle.Observe
mLastSleepReason = pmSleepReason;
updateLastSleepOriginLocation();
- try {
- mWallpaperManagerService.notifyGoingToSleep(
- mLastSleepOriginLocation.x, mLastSleepOriginLocation.y, new Bundle());
- } catch (RemoteException e) {
- e.printStackTrace();
+ if (mWallpaperManagerService != null) {
+ try {
+ mWallpaperManagerService.notifyGoingToSleep(
+ mLastSleepOriginLocation.x, mLastSleepOriginLocation.y, new Bundle());
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
}
dispatch(Observer::onStartedGoingToSleep);
diff --git a/packages/SystemUI/src/com/android/systemui/people/NotificationHelper.java b/packages/SystemUI/src/com/android/systemui/people/NotificationHelper.java
new file mode 100644
index 000000000000..68a829ca2e38
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/people/NotificationHelper.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.systemui.people;
+
+import static android.Manifest.permission.READ_CONTACTS;
+import static android.app.Notification.CATEGORY_MISSED_CALL;
+import static android.app.Notification.EXTRA_MESSAGES;
+import static android.app.Notification.EXTRA_PEOPLE_LIST;
+
+import android.annotation.Nullable;
+import android.app.Notification;
+import android.app.Person;
+import android.content.pm.PackageManager;
+import android.os.Parcelable;
+import android.service.notification.StatusBarNotification;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ArrayUtils;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+/** Helper functions to handle notifications in People Tiles. */
+public class NotificationHelper {
+ private static final boolean DEBUG = PeopleSpaceUtils.DEBUG;
+ private static final String TAG = "PeopleNotificationHelper";
+
+ /** Returns the notification with highest priority to be shown in People Tiles. */
+ public static NotificationEntry getHighestPriorityNotification(
+ Set<NotificationEntry> notificationEntries) {
+ if (notificationEntries == null || notificationEntries.isEmpty()) {
+ return null;
+ }
+
+ return notificationEntries
+ .stream()
+ .filter(NotificationHelper::isMissedCallOrHasContent)
+ .sorted(notificationEntryComparator)
+ .findFirst().orElse(null);
+ }
+
+
+ /** Notification comparator, checking category and timestamps, in reverse order of priority. */
+ public static Comparator<NotificationEntry> notificationEntryComparator =
+ new Comparator<NotificationEntry>() {
+ @Override
+ public int compare(NotificationEntry e1, NotificationEntry e2) {
+ Notification n1 = e1.getSbn().getNotification();
+ Notification n2 = e2.getSbn().getNotification();
+
+ boolean missedCall1 = isMissedCall(n1);
+ boolean missedCall2 = isMissedCall(n2);
+ if (missedCall1 && !missedCall2) {
+ return -1;
+ }
+ if (!missedCall1 && missedCall2) {
+ return 1;
+ }
+
+ // Get messages in reverse chronological order.
+ List<Notification.MessagingStyle.Message> messages1 =
+ getMessagingStyleMessages(n1);
+ List<Notification.MessagingStyle.Message> messages2 =
+ getMessagingStyleMessages(n2);
+
+ if (messages1 != null && messages2 != null) {
+ Notification.MessagingStyle.Message message1 = messages1.get(0);
+ Notification.MessagingStyle.Message message2 = messages2.get(0);
+ return (int) (message2.getTimestamp() - message1.getTimestamp());
+ }
+
+ if (messages1 == null) {
+ return 1;
+ }
+ if (messages2 == null) {
+ return -1;
+ }
+ return (int) (n2.when - n1.when);
+ }
+ };
+
+ /** Returns whether {@code e} is a missed call notification. */
+ public static boolean isMissedCall(NotificationEntry e) {
+ return e != null && e.getSbn().getNotification() != null
+ && isMissedCall(e.getSbn().getNotification());
+ }
+
+ /** Returns whether {@code notification} is a missed call notification. */
+ public static boolean isMissedCall(Notification notification) {
+ return notification != null && Objects.equals(notification.category, CATEGORY_MISSED_CALL);
+ }
+
+ private static boolean hasContent(NotificationEntry e) {
+ if (e == null) {
+ return false;
+ }
+ List<Notification.MessagingStyle.Message> messages =
+ getMessagingStyleMessages(e.getSbn().getNotification());
+ return messages != null && !messages.isEmpty();
+ }
+
+ /** Returns whether {@code e} is a valid conversation notification. */
+ public static boolean isValid(NotificationEntry e) {
+ return e != null && e.getRanking() != null
+ && e.getRanking().getConversationShortcutInfo() != null
+ && e.getSbn().getNotification() != null;
+ }
+
+ /** Returns whether conversation notification should be shown in People Tile. */
+ public static boolean isMissedCallOrHasContent(NotificationEntry e) {
+ return isMissedCall(e) || hasContent(e);
+ }
+
+ /** Returns whether {@code sbn}'s package has permission to read contacts. */
+ public static boolean hasReadContactsPermission(
+ PackageManager packageManager, StatusBarNotification sbn) {
+ return packageManager.checkPermission(READ_CONTACTS,
+ sbn.getPackageName()) == PackageManager.PERMISSION_GRANTED;
+ }
+
+ /**
+ * Returns whether a notification should be matched to other Tiles by Uri.
+ *
+ * <p>Currently only matches missed calls.
+ */
+ public static boolean shouldMatchNotificationByUri(StatusBarNotification sbn) {
+ Notification notification = sbn.getNotification();
+ if (notification == null) {
+ if (DEBUG) Log.d(TAG, "Notification is null");
+ return false;
+ }
+ boolean isMissedCall = isMissedCall(notification);
+ if (!isMissedCall) {
+ if (DEBUG) Log.d(TAG, "Not missed call");
+ }
+ return isMissedCall;
+ }
+
+ /**
+ * Try to retrieve a valid Uri via {@code sbn}, falling back to the {@code
+ * contactUriFromShortcut} if valid.
+ */
+ @Nullable
+ public static String getContactUri(StatusBarNotification sbn) {
+ // First, try to get a Uri from the Person directly set on the Notification.
+ ArrayList<Person> people = sbn.getNotification().extras.getParcelableArrayList(
+ EXTRA_PEOPLE_LIST);
+ if (people != null && people.get(0) != null) {
+ String contactUri = people.get(0).getUri();
+ if (contactUri != null && !contactUri.isEmpty()) {
+ return contactUri;
+ }
+ }
+
+ // Then, try to get a Uri from the Person set on the Notification message.
+ List<Notification.MessagingStyle.Message> messages =
+ getMessagingStyleMessages(sbn.getNotification());
+ if (messages != null && !messages.isEmpty()) {
+ Notification.MessagingStyle.Message message = messages.get(0);
+ Person sender = message.getSenderPerson();
+ if (sender != null && sender.getUri() != null && !sender.getUri().isEmpty()) {
+ return sender.getUri();
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns {@link Notification.MessagingStyle.Message}s from the Notification in chronological
+ * order from most recent to least.
+ */
+ @VisibleForTesting
+ @Nullable
+ public static List<Notification.MessagingStyle.Message> getMessagingStyleMessages(
+ Notification notification) {
+ if (notification == null) {
+ return null;
+ }
+ if (Notification.MessagingStyle.class.equals(notification.getNotificationStyle())
+ && notification.extras != null) {
+ final Parcelable[] messages = notification.extras.getParcelableArray(EXTRA_MESSAGES);
+ if (!ArrayUtils.isEmpty(messages)) {
+ List<Notification.MessagingStyle.Message> sortedMessages =
+ Notification.MessagingStyle.Message.getMessagesFromBundleArray(messages);
+ sortedMessages.sort(Collections.reverseOrder(
+ Comparator.comparing(Notification.MessagingStyle.Message::getTimestamp)));
+ return sortedMessages;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java b/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java
index 59329d1b091f..a9640566d531 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java
@@ -16,36 +16,28 @@
package com.android.systemui.people;
-import android.app.people.IPeopleManager;
import android.content.ContentProvider;
import android.content.ContentValues;
-import android.content.Context;
-import android.content.pm.LauncherApps;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
-import android.os.ServiceManager;
import android.os.UserHandle;
import android.util.Log;
import android.widget.RemoteViews;
-import com.android.systemui.Dependency;
+import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
import com.android.systemui.shared.system.PeopleProviderUtils;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
/** API that returns a People Tile preview. */
public class PeopleProvider extends ContentProvider {
-
- LauncherApps mLauncherApps;
- IPeopleManager mPeopleManager;
- NotificationEntryManager mNotificationEntryManager;
-
private static final String TAG = "PeopleProvider";
private static final boolean DEBUG = PeopleSpaceUtils.DEBUG;
private static final String EMPTY_STRING = "";
+ PeopleSpaceWidgetManager mPeopleSpaceWidgetManager;
+
@Override
public Bundle call(String method, String arg, Bundle extras) {
if (!doesCallerHavePermission()) {
@@ -83,17 +75,11 @@ public class PeopleProvider extends ContentProvider {
throw new IllegalArgumentException("Null user handle");
}
- // If services are not set as mocks in tests, fetch them now.
- mPeopleManager = mPeopleManager != null ? mPeopleManager
- : IPeopleManager.Stub.asInterface(
- ServiceManager.getService(Context.PEOPLE_SERVICE));
- mLauncherApps = mLauncherApps != null ? mLauncherApps
- : getContext().getSystemService(LauncherApps.class);
- mNotificationEntryManager = mNotificationEntryManager != null ? mNotificationEntryManager
- : Dependency.get(NotificationEntryManager.class);
-
- RemoteViews view = PeopleSpaceUtils.getPreview(getContext(), mPeopleManager, mLauncherApps,
- mNotificationEntryManager, shortcutId, userHandle, packageName);
+ if (mPeopleSpaceWidgetManager == null) {
+ mPeopleSpaceWidgetManager = new PeopleSpaceWidgetManager(getContext());
+ }
+ RemoteViews view =
+ mPeopleSpaceWidgetManager.getPreview(shortcutId, userHandle, packageName, extras);
if (view == null) {
if (DEBUG) Log.d(TAG, "No preview available for shortcutId: " + shortcutId);
return null;
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java
index 38a6186ee7ea..ff14abe118ab 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceActivity.java
@@ -39,6 +39,7 @@ import android.widget.LinearLayout;
import com.android.systemui.R;
import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
+import com.android.systemui.people.widget.PeopleTileKey;
import java.util.ArrayList;
import java.util.List;
@@ -136,14 +137,15 @@ public class PeopleSpaceActivity extends Activity {
getSizeInDp(mContext, R.dimen.avatar_size_for_medium,
mContext.getResources().getDisplayMetrics().density)));
- tileView.setOnClickListener(v -> storeWidgetConfiguration(tile));
+ PeopleTileKey key = new PeopleTileKey(tile);
+ tileView.setOnClickListener(v -> storeWidgetConfiguration(tile, key));
} catch (Exception e) {
Log.e(TAG, "Couldn't retrieve shortcut information", e);
}
}
/** Stores the user selected configuration for {@code mAppWidgetId}. */
- private void storeWidgetConfiguration(PeopleSpaceTile tile) {
+ private void storeWidgetConfiguration(PeopleSpaceTile tile, PeopleTileKey key) {
if (PeopleSpaceUtils.DEBUG) {
if (DEBUG) {
Log.d(TAG, "Put " + tile.getUserName() + "'s shortcut ID: "
@@ -151,7 +153,7 @@ public class PeopleSpaceActivity extends Activity {
+ mAppWidgetId);
}
}
- mPeopleSpaceWidgetManager.addNewWidget(mAppWidgetId, tile);
+ mPeopleSpaceWidgetManager.addNewWidget(mAppWidgetId, key);
finishActivity();
}
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java
index a16037981370..eefe5ca93793 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java
@@ -16,8 +16,11 @@
package com.android.systemui.people;
-import static android.app.Notification.CATEGORY_MISSED_CALL;
-import static android.app.Notification.EXTRA_MESSAGES;
+import static com.android.systemui.people.NotificationHelper.getContactUri;
+import static com.android.systemui.people.NotificationHelper.getMessagingStyleMessages;
+import static com.android.systemui.people.NotificationHelper.hasReadContactsPermission;
+import static com.android.systemui.people.NotificationHelper.isMissedCall;
+import static com.android.systemui.people.NotificationHelper.shouldMatchNotificationByUri;
import android.app.Notification;
import android.app.people.ConversationChannel;
@@ -27,6 +30,7 @@ import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.LauncherApps;
+import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.database.Cursor;
import android.database.SQLException;
@@ -36,9 +40,6 @@ import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
-import android.os.Parcelable;
-import android.os.ServiceManager;
-import android.os.UserHandle;
import android.os.UserManager;
import android.provider.ContactsContract;
import android.service.notification.StatusBarNotification;
@@ -56,19 +57,16 @@ import com.android.settingslib.utils.ThreadUtils;
import com.android.systemui.R;
import com.android.systemui.people.widget.AppWidgetOptionsHelper;
import com.android.systemui.people.widget.PeopleTileKey;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -185,73 +183,85 @@ public class PeopleSpaceUtils {
editor.putStringSet(storageKey, storedWidgetIds);
}
- /** Augments a single {@link PeopleSpaceTile} with notification content, if one is present. */
- public static PeopleSpaceTile augmentSingleTileFromVisibleNotifications(Context context,
- PeopleSpaceTile tile, NotificationEntryManager notificationEntryManager) {
- List<PeopleSpaceTile> augmentedTile = augmentTilesFromVisibleNotifications(
- context, Arrays.asList(tile), notificationEntryManager);
- return augmentedTile.get(0);
+ /** Returns notifications that match provided {@code contactUri}. */
+ public static List<NotificationEntry> getNotificationsByUri(
+ PackageManager packageManager, String contactUri,
+ Map<PeopleTileKey, Set<NotificationEntry>> notifications) {
+ if (DEBUG) Log.d(TAG, "Getting notifications by contact URI.");
+ if (TextUtils.isEmpty(contactUri)) {
+ return new ArrayList<>();
+ }
+ return notifications.entrySet().stream().flatMap(e -> e.getValue().stream())
+ .filter(e ->
+ hasReadContactsPermission(packageManager, e.getSbn())
+ && shouldMatchNotificationByUri(e.getSbn())
+ && Objects.equals(contactUri, getContactUri(e.getSbn()))
+ )
+ .collect(Collectors.toList());
}
- /** Adds to {@code tiles} any visible notifications. */
- public static List<PeopleSpaceTile> augmentTilesFromVisibleNotifications(Context context,
- List<PeopleSpaceTile> tiles, NotificationEntryManager notificationEntryManager) {
- if (notificationEntryManager == null) {
- Log.w(TAG, "NotificationEntryManager is null");
- return tiles;
- }
- Map<PeopleTileKey, NotificationEntry> visibleNotifications = notificationEntryManager
- .getVisibleNotifications()
- .stream()
- .filter(entry -> entry.getRanking() != null
- && entry.getRanking().getConversationShortcutInfo() != null)
- .collect(Collectors.toMap(PeopleTileKey::new, e -> e,
- // Handle duplicate keys to avoid crashes.
- (e1, e2) -> e1.getSbn().getNotification().when
- > e2.getSbn().getNotification().when ? e1 : e2));
+ /** Returns the total messages in {@code notificationEntries}.*/
+ public static int getMessagesCount(Set<NotificationEntry> notificationEntries) {
if (DEBUG) {
- Log.d(TAG, "Number of visible notifications:" + visibleNotifications.size());
+ Log.d(TAG, "Calculating messages count from " + notificationEntries.size()
+ + " notifications.");
}
- return tiles
- .stream()
- .map(entry -> augmentTileFromVisibleNotifications(
- context, entry, visibleNotifications))
- .collect(Collectors.toList());
+ int messagesCount = 0;
+ for (NotificationEntry entry : notificationEntries) {
+ Notification notification = entry.getSbn().getNotification();
+ // Should not count messages from missed call notifications.
+ if (isMissedCall(notification)) {
+ continue;
+ }
+
+ List<Notification.MessagingStyle.Message> messages =
+ getMessagingStyleMessages(notification);
+ if (messages != null) {
+ messagesCount += messages.size();
+ }
+ }
+ return messagesCount;
}
- static PeopleSpaceTile augmentTileFromVisibleNotifications(Context context,
- PeopleSpaceTile tile, Map<PeopleTileKey, NotificationEntry> visibleNotifications) {
- PeopleTileKey key = new PeopleTileKey(
- tile.getId(), getUserId(tile), tile.getPackageName());
- // TODO: Match missed calls with matching Uris in addition to keys.
- if (!visibleNotifications.containsKey(key)) {
- if (DEBUG) Log.d(TAG, "No existing notifications for key:" + key.toString());
- return tile;
+ /** Removes all notification related fields from {@code tile}. */
+ public static PeopleSpaceTile removeNotificationFields(PeopleSpaceTile tile) {
+ if (DEBUG) {
+ Log.i(TAG, "Removing any notification stored for tile Id: " + tile.getId());
}
- if (DEBUG) Log.d(TAG, "Augmenting tile from visible notifications, key:" + key.toString());
- return augmentTileFromNotification(context, tile, visibleNotifications.get(key).getSbn());
+ return tile
+ .toBuilder()
+ // Reset notification content.
+ .setNotificationKey(null)
+ .setNotificationContent(null)
+ .setNotificationDataUri(null)
+ .setMessagesCount(0)
+ // Reset missed calls category.
+ .setNotificationCategory(null)
+ .build();
}
- /** Augments {@code tile} with the notification content from {@code sbn}. */
+ /**
+ * Augments {@code tile} with the notification content from {@code notificationEntry} and
+ * {@code messagesCount}.
+ */
public static PeopleSpaceTile augmentTileFromNotification(Context context, PeopleSpaceTile tile,
- StatusBarNotification sbn) {
- Notification notification = sbn.getNotification();
- if (notification == null) {
+ NotificationEntry notificationEntry, int messagesCount) {
+ if (notificationEntry == null || notificationEntry.getSbn().getNotification() == null) {
if (DEBUG) Log.d(TAG, "Notification is null");
- return tile;
+ return removeNotificationFields(tile);
}
- boolean isMissedCall = Objects.equals(notification.category, CATEGORY_MISSED_CALL);
+ Notification notification = notificationEntry.getSbn().getNotification();
+ boolean isMissedCall = isMissedCall(notification);
List<Notification.MessagingStyle.Message> messages =
getMessagingStyleMessages(notification);
if (!isMissedCall && ArrayUtils.isEmpty(messages)) {
if (DEBUG) Log.d(TAG, "Notification has no content");
- return tile;
+ return removeNotificationFields(tile);
}
// messages are in chronological order from most recent to least.
Notification.MessagingStyle.Message message = messages != null ? messages.get(0) : null;
- int messagesCount = messages != null ? messages.size() : 0;
// If it's a missed call notification and it doesn't include content, use fallback value,
// otherwise, use notification content.
boolean hasMessageText = message != null && !TextUtils.isEmpty(message.getText());
@@ -262,7 +272,7 @@ public class PeopleSpaceUtils {
return tile
.toBuilder()
- .setNotificationKey(sbn.getKey())
+ .setNotificationKey(notificationEntry.getSbn().getKey())
.setNotificationCategory(notification.category)
.setNotificationContent(content)
.setNotificationDataUri(dataUri)
@@ -270,30 +280,6 @@ public class PeopleSpaceUtils {
.build();
}
- /**
- * Returns {@link Notification.MessagingStyle.Message}s from the Notification in chronological
- * order from most recent to least.
- */
- @VisibleForTesting
- public static List<Notification.MessagingStyle.Message> getMessagingStyleMessages(
- Notification notification) {
- if (notification == null) {
- return null;
- }
- if (Notification.MessagingStyle.class.equals(notification.getNotificationStyle())
- && notification.extras != null) {
- final Parcelable[] messages = notification.extras.getParcelableArray(EXTRA_MESSAGES);
- if (!ArrayUtils.isEmpty(messages)) {
- List<Notification.MessagingStyle.Message> sortedMessages =
- Notification.MessagingStyle.Message.getMessagesFromBundleArray(messages);
- sortedMessages.sort(Collections.reverseOrder(
- Comparator.comparing(Notification.MessagingStyle.Message::getTimestamp)));
- return sortedMessages;
- }
- }
- return null;
- }
-
/** Returns a list sorted by ascending last interaction time from {@code stream}. */
public static List<PeopleSpaceTile> getSortedTiles(IPeopleManager peopleManager,
LauncherApps launcherApps, UserManager userManager,
@@ -467,7 +453,14 @@ public class PeopleSpaceUtils {
/** Updates the current widget view with provided {@link PeopleSpaceTile}. */
public static void updateAppWidgetViews(AppWidgetManager appWidgetManager,
Context context, int appWidgetId, PeopleSpaceTile tile, Bundle options) {
- if (DEBUG) Log.d(TAG, "Widget: " + appWidgetId + ", " + tile.getUserName());
+ if (tile == null) {
+ if (DEBUG) Log.d(TAG, "Widget: " + appWidgetId + ". Tile is null, skipping update");
+ return;
+ }
+ if (DEBUG) {
+ Log.d(TAG, "Widget: " + appWidgetId + ", " + tile.getUserName() + ", "
+ + tile.getPackageName());
+ }
RemoteViews views = new PeopleTileViewHelper(context, tile, appWidgetId,
options).getViews();
@@ -478,10 +471,24 @@ public class PeopleSpaceUtils {
/** Updates tile in app widget options and the current view. */
public static void updateAppWidgetOptionsAndView(AppWidgetManager appWidgetManager,
Context context, int appWidgetId, PeopleSpaceTile tile) {
+ if (tile == null) {
+ Log.d(TAG, "Tile is null, skipping storage and update.");
+ return;
+ }
Bundle options = AppWidgetOptionsHelper.setPeopleTile(appWidgetManager, appWidgetId, tile);
updateAppWidgetViews(appWidgetManager, context, appWidgetId, tile, options);
}
+ /** Wrapper around {@link #updateAppWidgetOptionsAndView} with optional tile as a parameter. */
+ public static void updateAppWidgetOptionsAndView(AppWidgetManager appWidgetManager,
+ Context context, int appWidgetId, Optional<PeopleSpaceTile> optionalTile) {
+ if (!optionalTile.isPresent()) {
+ Log.d(TAG, "Tile is null, skipping storage and update.");
+ return;
+ }
+ updateAppWidgetOptionsAndView(appWidgetManager, context, appWidgetId, optionalTile.get());
+ }
+
/**
* Returns lookup keys for all contacts with a birthday today.
*
@@ -523,43 +530,6 @@ public class PeopleSpaceUtils {
return lookupKeysWithBirthdaysToday;
}
- /**
- * Returns a {@link RemoteViews} preview of a Conversation's People Tile. Returns null if one
- * is not available.
- */
- public static RemoteViews getPreview(Context context, IPeopleManager peopleManager,
- LauncherApps launcherApps, NotificationEntryManager notificationEntryManager,
- String shortcutId, UserHandle userHandle, String packageName) {
- peopleManager = (peopleManager != null) ? peopleManager : IPeopleManager.Stub.asInterface(
- ServiceManager.getService(Context.PEOPLE_SERVICE));
- launcherApps = (launcherApps != null) ? launcherApps
- : context.getSystemService(LauncherApps.class);
- if (peopleManager == null || launcherApps == null) {
- return null;
- }
-
- ConversationChannel channel;
- try {
- channel = peopleManager.getConversation(
- packageName, userHandle.getIdentifier(), shortcutId);
- } catch (Exception e) {
- Log.w(TAG, "Exception getting tiles: " + e);
- return null;
- }
- PeopleSpaceTile tile = PeopleSpaceUtils.getTile(channel, launcherApps);
-
- if (tile == null) {
- if (DEBUG) Log.i(TAG, "No tile was returned");
- return null;
- }
- PeopleSpaceTile augmentedTile = augmentSingleTileFromVisibleNotifications(
- context, tile, notificationEntryManager);
-
- if (DEBUG) Log.i(TAG, "Returning tile preview for shortcutId: " + shortcutId);
- Bundle bundle = new Bundle();
- return new PeopleTileViewHelper(context, augmentedTile, 0, bundle).getViews();
- }
-
/** Returns the userId associated with a {@link PeopleSpaceTile} */
public static int getUserId(PeopleSpaceTile tile) {
return tile.getUserHandle().getIdentifier();
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java b/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
index 6b917c576fd8..dd89f749d1bc 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
@@ -71,7 +71,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-class PeopleTileViewHelper {
+/** Functions that help creating the People tile layouts. */
+public class PeopleTileViewHelper {
/** Turns on debugging information about People Space. */
public static final boolean DEBUG = true;
private static final String TAG = "PeopleTileView";
@@ -115,7 +116,7 @@ class PeopleTileViewHelper {
private Locale mLocale;
private NumberFormat mIntegerFormat;
- PeopleTileViewHelper(Context context, PeopleSpaceTile tile,
+ public PeopleTileViewHelper(Context context, PeopleSpaceTile tile,
int appWidgetId, Bundle options) {
mContext = context;
mTile = tile;
@@ -346,6 +347,7 @@ class PeopleTileViewHelper {
private RemoteViews createMissedCallRemoteViews() {
RemoteViews views = getViewForContentLayout();
views.setViewVisibility(R.id.predefined_icon, View.VISIBLE);
+ views.setViewVisibility(R.id.messages_count, View.GONE);
setMaxLines(views);
views.setTextViewText(R.id.text_content, mTile.getNotificationContent());
views.setImageViewResource(R.id.predefined_icon, R.drawable.ic_phone_missed);
@@ -546,7 +548,6 @@ class PeopleTileViewHelper {
if (mLayoutSize == LAYOUT_SMALL) {
views.setViewVisibility(R.id.predefined_icon, View.VISIBLE);
views.setViewVisibility(R.id.name, View.GONE);
- views.setViewVisibility(R.id.messages_count, View.GONE);
} else {
views.setViewVisibility(R.id.predefined_icon, View.GONE);
views.setViewVisibility(R.id.name, View.VISIBLE);
@@ -561,6 +562,7 @@ class PeopleTileViewHelper {
views.setViewPadding(R.id.item, horizontalPadding, verticalPadding, horizontalPadding,
verticalPadding);
}
+ views.setViewVisibility(R.id.messages_count, View.GONE);
return views;
}
diff --git a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
index 6cb7c315737e..9fa6fc36e9d1 100644
--- a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
+++ b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
@@ -17,24 +17,25 @@
package com.android.systemui.people.widget;
import static android.Manifest.permission.READ_CONTACTS;
-import static android.app.Notification.CATEGORY_MISSED_CALL;
-import static android.app.Notification.EXTRA_PEOPLE_LIST;
+import static com.android.systemui.people.NotificationHelper.getContactUri;
+import static com.android.systemui.people.NotificationHelper.getHighestPriorityNotification;
+import static com.android.systemui.people.NotificationHelper.shouldMatchNotificationByUri;
import static com.android.systemui.people.PeopleSpaceUtils.EMPTY_STRING;
import static com.android.systemui.people.PeopleSpaceUtils.INVALID_USER_ID;
import static com.android.systemui.people.PeopleSpaceUtils.PACKAGE_NAME;
import static com.android.systemui.people.PeopleSpaceUtils.SHORTCUT_ID;
import static com.android.systemui.people.PeopleSpaceUtils.USER_ID;
import static com.android.systemui.people.PeopleSpaceUtils.augmentTileFromNotification;
-import static com.android.systemui.people.PeopleSpaceUtils.getMessagingStyleMessages;
-import static com.android.systemui.people.PeopleSpaceUtils.getStoredWidgetIds;
+import static com.android.systemui.people.PeopleSpaceUtils.getMessagesCount;
+import static com.android.systemui.people.PeopleSpaceUtils.getNotificationsByUri;
+import static com.android.systemui.people.PeopleSpaceUtils.removeNotificationFields;
import static com.android.systemui.people.PeopleSpaceUtils.updateAppWidgetOptionsAndView;
import static com.android.systemui.people.PeopleSpaceUtils.updateAppWidgetViews;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.INotificationManager;
-import android.app.Notification;
import android.app.NotificationChannel;
import android.app.PendingIntent;
import android.app.Person;
@@ -67,10 +68,13 @@ import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl;
import com.android.settingslib.utils.ThreadUtils;
import com.android.systemui.Dependency;
+import com.android.systemui.people.NotificationHelper;
import com.android.systemui.people.PeopleSpaceUtils;
+import com.android.systemui.people.PeopleTileViewHelper;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationListener.NotificationHandler;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import java.util.ArrayList;
import java.util.Collections;
@@ -78,8 +82,10 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.inject.Inject;
@@ -272,9 +278,10 @@ public class PeopleSpaceWidgetManager {
private void updateWidgetsWithNotificationChangedInBackground(StatusBarNotification sbn,
PeopleSpaceUtils.NotificationAction action) {
try {
- String sbnShortcutId = sbn.getShortcutId();
- if (sbnShortcutId == null) {
- if (DEBUG) Log.d(TAG, "Sbn shortcut id is null");
+ PeopleTileKey key = new PeopleTileKey(
+ sbn.getShortcutId(), sbn.getUser().getIdentifier(), sbn.getPackageName());
+ if (!key.isValid()) {
+ Log.d(TAG, "Invalid key from sbn");
return;
}
int[] widgetIds = mAppWidgetManager.getAppWidgetIds(
@@ -284,21 +291,15 @@ public class PeopleSpaceWidgetManager {
Log.d(TAG, "No app widget ids returned");
return;
}
- PeopleTileKey key = new PeopleTileKey(
- sbnShortcutId,
- sbn.getUser().getIdentifier(),
- sbn.getPackageName());
- if (!key.isValid()) {
- Log.d(TAG, "Invalid key");
- return;
- }
synchronized (mLock) {
- // First, update People Tiles associated with the Notification's package/shortcut.
- Set<String> tilesUpdatedByKey = getStoredWidgetIds(mSharedPrefs, key);
- updateWidgetIdsForNotificationAction(tilesUpdatedByKey, sbn, action);
-
- // Then, update People Tiles across other packages that use the same Uri.
- updateTilesByUri(key, sbn, action);
+ Set<String> tilesUpdated = getMatchingKeyWidgetIds(key);
+ Set<String> tilesUpdatedByUri = getMatchingUriWidgetIds(sbn, action);
+ if (DEBUG) {
+ Log.d(TAG, "Widgets by key to be updated:" + tilesUpdated.toString());
+ Log.d(TAG, "Widgets by URI to be updated:" + tilesUpdatedByUri.toString());
+ }
+ tilesUpdated.addAll(tilesUpdatedByUri);
+ updateWidgetIdsBasedOnNotifications(tilesUpdated);
}
} catch (Exception e) {
Log.e(TAG, "Throwing exception: " + e);
@@ -306,36 +307,142 @@ public class PeopleSpaceWidgetManager {
}
/** Updates {@code widgetIdsToUpdate} with {@code action}. */
- private void updateWidgetIdsForNotificationAction(Set<String> widgetIdsToUpdate,
- StatusBarNotification sbn, PeopleSpaceUtils.NotificationAction action) {
- for (String widgetIdString : widgetIdsToUpdate) {
- int widgetId = Integer.parseInt(widgetIdString);
- PeopleSpaceTile storedTile = getTileForExistingWidget(widgetId);
- if (storedTile == null) {
- if (DEBUG) Log.d(TAG, "Could not find stored tile for notification");
- continue;
+ private void updateWidgetIdsBasedOnNotifications(Set<String> widgetIdsToUpdate) {
+ Log.d(TAG, "Fetching grouped notifications");
+ try {
+ Map<PeopleTileKey, Set<NotificationEntry>> groupedNotifications =
+ getGroupedConversationNotifications();
+
+ widgetIdsToUpdate
+ .stream()
+ .map(Integer::parseInt)
+ .collect(Collectors.toMap(
+ Function.identity(),
+ id -> getAugmentedTileForExistingWidget(id, groupedNotifications)))
+ .forEach((id, tile) ->
+ updateAppWidgetOptionsAndView(mAppWidgetManager, mContext, id, tile));
+ } catch (Exception e) {
+ Log.e(TAG, "Exception updating widgets: " + e);
+ }
+ }
+
+ /**
+ * Augments {@code tile} based on notifications returned from {@code notificationEntryManager}.
+ */
+ public PeopleSpaceTile augmentTileFromNotificationEntryManager(PeopleSpaceTile tile) {
+ Log.d(TAG, "Augmenting tile from NotificationEntryManager widget: " + tile.getId());
+ Map<PeopleTileKey, Set<NotificationEntry>> notifications =
+ getGroupedConversationNotifications();
+ String contactUri = null;
+ if (tile.getContactUri() != null) {
+ contactUri = tile.getContactUri().toString();
+ }
+ return augmentTileFromNotifications(tile, contactUri, notifications);
+ }
+
+ /** Returns active and pending notifications grouped by {@link PeopleTileKey}. */
+ public Map<PeopleTileKey, Set<NotificationEntry>> getGroupedConversationNotifications() {
+ List<NotificationEntry> notifications =
+ new ArrayList<>(mNotificationEntryManager.getVisibleNotifications());
+ Iterable<NotificationEntry> pendingNotifications =
+ mNotificationEntryManager.getPendingNotificationsIterator();
+ for (NotificationEntry entry : pendingNotifications) {
+ notifications.add(entry);
+ }
+ if (DEBUG) Log.d(TAG, "Number of total notifications: " + notifications.size());
+ Map<PeopleTileKey, Set<NotificationEntry>> groupedNotifications =
+ notifications
+ .stream()
+ .filter(entry -> NotificationHelper.isValid(entry)
+ && NotificationHelper.isMissedCallOrHasContent(entry))
+ .collect(Collectors.groupingBy(
+ PeopleTileKey::new,
+ Collectors.mapping(Function.identity(), Collectors.toSet())));
+ if (DEBUG) {
+ Log.d(TAG, "Number of grouped conversation notifications keys: "
+ + groupedNotifications.keySet().size());
+ }
+ return groupedNotifications;
+ }
+
+ /** Augments {@code tile} based on {@code notifications}, matching {@code contactUri}. */
+ public PeopleSpaceTile augmentTileFromNotifications(PeopleSpaceTile tile, String contactUri,
+ Map<PeopleTileKey, Set<NotificationEntry>> notifications) {
+ if (DEBUG) Log.d(TAG, "Augmenting tile from notifications. Tile id: " + tile.getId());
+ boolean hasReadContactsPermission = mPackageManager.checkPermission(READ_CONTACTS,
+ tile.getPackageName()) == PackageManager.PERMISSION_GRANTED;
+
+ List<NotificationEntry> notificationsByUri = new ArrayList<>();
+ if (hasReadContactsPermission) {
+ notificationsByUri = getNotificationsByUri(mPackageManager, contactUri, notifications);
+ if (!notificationsByUri.isEmpty()) {
+ if (DEBUG) {
+ Log.d(TAG, "Number of notifications matched by contact URI: "
+ + notificationsByUri.size());
+ }
}
- if (DEBUG) Log.d(TAG, "Storing notification change, key:" + sbn.getKey());
- updateStorageAndViewWithNotificationData(sbn, action, widgetId,
- storedTile);
}
+
+ PeopleTileKey key = new PeopleTileKey(tile);
+ Set<NotificationEntry> allNotifications = notifications.get(key);
+ if (allNotifications == null) {
+ allNotifications = new HashSet<>();
+ }
+ if (allNotifications.isEmpty() && notificationsByUri.isEmpty()) {
+ if (DEBUG) Log.d(TAG, "No existing notifications for tile: " + key);
+ return removeNotificationFields(tile);
+ }
+
+ // Merge notifications matched by key and by contact URI.
+ allNotifications.addAll(notificationsByUri);
+ if (DEBUG) Log.d(TAG, "Total notifications matching tile: " + allNotifications.size());
+
+ int messagesCount = getMessagesCount(allNotifications);
+ NotificationEntry highestPriority = getHighestPriorityNotification(allNotifications);
+
+ if (DEBUG) Log.d(TAG, "Augmenting tile from notification, key: " + key.toString());
+ return augmentTileFromNotification(mContext, tile, highestPriority, messagesCount);
+ }
+
+ /** Returns an augmented tile for an existing widget. */
+ @Nullable
+ public Optional<PeopleSpaceTile> getAugmentedTileForExistingWidget(int widgetId,
+ Map<PeopleTileKey, Set<NotificationEntry>> notifications) {
+ Log.d(TAG, "Augmenting tile for widget: " + widgetId);
+ PeopleSpaceTile tile = getTileForExistingWidget(widgetId);
+ if (tile == null) {
+ return Optional.empty();
+ }
+ String contactUriString = mSharedPrefs.getString(String.valueOf(widgetId), null);
+ // Should never be null, but using ofNullable for extra safety.
+ return Optional.ofNullable(
+ augmentTileFromNotifications(tile, contactUriString, notifications));
+ }
+
+ /** Returns stored widgets for the conversation specified. */
+ public Set<String> getMatchingKeyWidgetIds(PeopleTileKey key) {
+ if (!key.isValid()) {
+ return new HashSet<>();
+ }
+ return new HashSet<>(mSharedPrefs.getStringSet(key.toString(), new HashSet<>()));
}
/**
- * Updates tiles with matched Uris, dependent on the {@code action}.
+ * Updates in-memory map of tiles with matched Uris, dependent on the {@code action}.
*
* <p>If the notification was added, adds the notification based on the contact Uri within
* {@code sbn}.
* <p>If the notification was removed, removes the notification based on the in-memory map of
* widgets previously updated by Uri (since the contact Uri is stripped from the {@code sbn}).
*/
- private void updateTilesByUri(PeopleTileKey key, StatusBarNotification sbn,
+ @Nullable
+ private Set<String> getMatchingUriWidgetIds(StatusBarNotification sbn,
PeopleSpaceUtils.NotificationAction action) {
if (action.equals(PeopleSpaceUtils.NotificationAction.POSTED)) {
- Set<String> widgetIdsUpdatedByUri = supplementTilesByUri(sbn, action, key);
+ Set<String> widgetIdsUpdatedByUri = fetchMatchingUriWidgetIds(sbn);
if (widgetIdsUpdatedByUri != null && !widgetIdsUpdatedByUri.isEmpty()) {
- if (DEBUG) Log.d(TAG, "Added due to uri: " + widgetIdsUpdatedByUri);
mNotificationKeyToWidgetIdsMatchedByUri.put(sbn.getKey(), widgetIdsUpdatedByUri);
+ return widgetIdsUpdatedByUri;
}
} else {
// Remove the notification on any widgets where the notification was added
@@ -343,21 +450,16 @@ public class PeopleSpaceWidgetManager {
Set<String> widgetsPreviouslyUpdatedByUri =
mNotificationKeyToWidgetIdsMatchedByUri.remove(sbn.getKey());
if (widgetsPreviouslyUpdatedByUri != null && !widgetsPreviouslyUpdatedByUri.isEmpty()) {
- if (DEBUG) Log.d(TAG, "Remove due to uri: " + widgetsPreviouslyUpdatedByUri);
- updateWidgetIdsForNotificationAction(widgetsPreviouslyUpdatedByUri, sbn,
- action);
+ return widgetsPreviouslyUpdatedByUri;
}
}
+ return new HashSet<>();
}
- /**
- * Retrieves from storage any tiles with the same contact Uri as linked via the {@code sbn}.
- * Supplements the tiles with the notification content only if they still have {@link
- * android.Manifest.permission.READ_CONTACTS} permission.
- */
+ /** Fetches widget Ids that match the contact URI in {@code sbn}. */
@Nullable
- private Set<String> supplementTilesByUri(StatusBarNotification sbn,
- PeopleSpaceUtils.NotificationAction notificationAction, PeopleTileKey key) {
+ private Set<String> fetchMatchingUriWidgetIds(StatusBarNotification sbn) {
+ // Check if it's a missed call notification
if (!shouldMatchNotificationByUri(sbn)) {
if (DEBUG) Log.d(TAG, "Should not supplement conversation");
return null;
@@ -377,80 +479,7 @@ public class PeopleSpaceWidgetManager {
if (DEBUG) Log.d(TAG, "No tiles for contact");
return null;
}
-
- if (mPackageManager.checkPermission(READ_CONTACTS,
- sbn.getPackageName()) != PackageManager.PERMISSION_GRANTED) {
- if (DEBUG) Log.d(TAG, "Notifying app missing permissions");
- return null;
- }
-
- Set<String> widgetIdsUpdatedByUri = new HashSet<>();
- for (String widgetIdString : storedWidgetIdsByUri) {
- int widgetId = Integer.parseInt(widgetIdString);
- PeopleSpaceTile storedTile = getTileForExistingWidget(widgetId);
- // Don't update a widget already updated.
- if (key.equals(new PeopleTileKey(storedTile))) {
- continue;
- }
- if (storedTile == null || mPackageManager.checkPermission(READ_CONTACTS,
- storedTile.getPackageName()) != PackageManager.PERMISSION_GRANTED) {
- if (DEBUG) Log.d(TAG, "Cannot supplement tile: " + storedTile.getUserName());
- continue;
- }
- if (DEBUG) Log.d(TAG, "Adding notification by uri: " + sbn.getKey());
- updateStorageAndViewWithNotificationData(sbn, notificationAction,
- widgetId, storedTile);
- widgetIdsUpdatedByUri.add(String.valueOf(widgetId));
- }
- return widgetIdsUpdatedByUri;
- }
-
- /**
- * Try to retrieve a valid Uri via {@code sbn}, falling back to the {@code
- * contactUriFromShortcut} if valid.
- */
- @Nullable
- private String getContactUri(StatusBarNotification sbn) {
- // First, try to get a Uri from the Person directly set on the Notification.
- ArrayList<Person> people = sbn.getNotification().extras.getParcelableArrayList(
- EXTRA_PEOPLE_LIST);
- if (people != null && people.get(0) != null) {
- String contactUri = people.get(0).getUri();
- if (contactUri != null && !contactUri.isEmpty()) {
- return contactUri;
- }
- }
-
- // Then, try to get a Uri from the Person set on the Notification message.
- List<Notification.MessagingStyle.Message> messages =
- getMessagingStyleMessages(sbn.getNotification());
- if (messages != null && !messages.isEmpty()) {
- Notification.MessagingStyle.Message message = messages.get(0);
- Person sender = message.getSenderPerson();
- if (sender != null && sender.getUri() != null && !sender.getUri().isEmpty()) {
- return sender.getUri();
- }
- }
-
- return null;
- }
-
- /**
- * Returns whether a notification should be matched to other Tiles by Uri.
- *
- * <p>Currently only matches missed calls.
- */
- private boolean shouldMatchNotificationByUri(StatusBarNotification sbn) {
- Notification notification = sbn.getNotification();
- if (notification == null) {
- if (DEBUG) Log.d(TAG, "Notification is null");
- return false;
- }
- if (!Objects.equals(notification.category, CATEGORY_MISSED_CALL)) {
- if (DEBUG) Log.d(TAG, "Not missed call");
- return false;
- }
- return true;
+ return storedWidgetIdsByUri;
}
/**
@@ -461,7 +490,7 @@ public class PeopleSpaceWidgetManager {
synchronized (mLock) {
PeopleTileKey key = new PeopleTileKey(
info.getId(), info.getUserId(), info.getPackage());
- Set<String> storedWidgetIds = getStoredWidgetIds(mSharedPrefs, key);
+ Set<String> storedWidgetIds = getMatchingKeyWidgetIds(key);
for (String widgetIdString : storedWidgetIds) {
if (DEBUG) {
Log.d(TAG,
@@ -469,7 +498,7 @@ public class PeopleSpaceWidgetManager {
+ info.getLabel());
}
updateStorageAndViewWithConversationData(conversation,
- Integer.valueOf(widgetIdString));
+ Integer.parseInt(widgetIdString));
}
}
}
@@ -505,34 +534,6 @@ public class PeopleSpaceWidgetManager {
}
/**
- * Update {@code appWidgetId} with the new data provided by {@code sbn}.
- */
- private void updateStorageAndViewWithNotificationData(
- StatusBarNotification sbn,
- PeopleSpaceUtils.NotificationAction notificationAction,
- int appWidgetId, PeopleSpaceTile storedTile) {
- if (notificationAction == PeopleSpaceUtils.NotificationAction.POSTED) {
- if (DEBUG) Log.i(TAG, "Adding notification to storage, appWidgetId: " + appWidgetId);
- storedTile = augmentTileFromNotification(mContext, storedTile, sbn);
- } else if (Objects.equals(storedTile.getNotificationKey(), sbn.getKey())) {
- if (DEBUG) {
- Log.i(TAG, "Removing notification from storage, appWidgetId: " + appWidgetId);
- }
- storedTile = storedTile
- .toBuilder()
- // Reset notification content.
- .setNotificationKey(null)
- .setNotificationContent(null)
- .setNotificationDataUri(null)
- .setMessagesCount(0)
- // Reset missed calls category.
- .setNotificationCategory(null)
- .build();
- }
- updateAppWidgetOptionsAndView(mAppWidgetManager, mContext, appWidgetId, storedTile);
- }
-
- /**
* Attaches the manager to the pipeline, making it ready to receive events. Should only be
* called once.
*/
@@ -615,22 +616,10 @@ public class PeopleSpaceWidgetManager {
public void addNewWidget(int appWidgetId, PeopleTileKey key) {
if (DEBUG) Log.d(TAG, "addNewWidget called with key for appWidgetId: " + appWidgetId);
PeopleSpaceTile tile = getTileFromPersistentStorage(key);
- tile = PeopleSpaceUtils.augmentSingleTileFromVisibleNotifications(
- mContext, tile, mNotificationEntryManager);
- if (tile != null) {
- addNewWidget(appWidgetId, tile);
- }
- }
-
- /**
- * Adds a widget based on {@code tile} mapped to {@code appWidgetId}.
- * The tile provided should already be augmented.
- */
- public void addNewWidget(int appWidgetId, PeopleSpaceTile tile) {
- if (DEBUG) Log.d(TAG, "addNewWidget called for appWidgetId: " + appWidgetId);
if (tile == null) {
return;
}
+ tile = augmentTileFromNotificationEntryManager(tile);
PeopleTileKey existingKeyIfStored;
synchronized (mLock) {
@@ -648,7 +637,6 @@ public class PeopleSpaceWidgetManager {
synchronized (mLock) {
if (DEBUG) Log.d(TAG, "Add storage for : " + tile.getId());
- PeopleTileKey key = new PeopleTileKey(tile);
PeopleSpaceUtils.setSharedPreferencesStorageForTile(mContext, key, appWidgetId,
tile.getContactUri());
}
@@ -777,12 +765,11 @@ public class PeopleSpaceWidgetManager {
* Builds a request to pin a People Tile app widget, with a preview and storing necessary
* information as the callback.
*/
- public boolean requestPinAppWidget(ShortcutInfo shortcutInfo) {
+ public boolean requestPinAppWidget(ShortcutInfo shortcutInfo, Bundle options) {
if (DEBUG) Log.d(TAG, "Requesting pin widget, shortcutId: " + shortcutInfo.getId());
- RemoteViews widgetPreview = PeopleSpaceUtils.getPreview(mContext, mIPeopleManager,
- mLauncherApps, mNotificationEntryManager, shortcutInfo.getId(),
- shortcutInfo.getUserHandle(), shortcutInfo.getPackage());
+ RemoteViews widgetPreview = getPreview(shortcutInfo.getId(),
+ shortcutInfo.getUserHandle(), shortcutInfo.getPackage(), options);
if (widgetPreview == null) {
Log.w(TAG, "Skipping pinning widget: no tile for shortcutId: " + shortcutInfo.getId());
return false;
@@ -811,8 +798,6 @@ public class PeopleSpaceWidgetManager {
List<PeopleSpaceTile> priorityTiles = PeopleSpaceUtils.getSortedTiles(mIPeopleManager,
mLauncherApps, mUserManager,
priorityConversations);
- priorityTiles = PeopleSpaceUtils.augmentTilesFromVisibleNotifications(
- mContext, priorityTiles, mNotificationEntryManager);
return priorityTiles;
}
@@ -839,9 +824,33 @@ public class PeopleSpaceWidgetManager {
List<PeopleSpaceTile> recentTiles =
PeopleSpaceUtils.getSortedTiles(mIPeopleManager, mLauncherApps, mUserManager,
mergedStream);
-
- recentTiles = PeopleSpaceUtils.augmentTilesFromVisibleNotifications(
- mContext, recentTiles, mNotificationEntryManager);
return recentTiles;
}
+
+ /**
+ * Returns a {@link RemoteViews} preview of a Conversation's People Tile. Returns null if one
+ * is not available.
+ */
+ public RemoteViews getPreview(String shortcutId, UserHandle userHandle, String packageName,
+ Bundle options) {
+ PeopleSpaceTile tile;
+ ConversationChannel channel;
+ try {
+ channel = mIPeopleManager.getConversation(
+ packageName, userHandle.getIdentifier(), shortcutId);
+ tile = PeopleSpaceUtils.getTile(channel, mLauncherApps);
+ } catch (Exception e) {
+ Log.w(TAG, "Exception getting tiles: " + e);
+ return null;
+ }
+ if (tile == null) {
+ if (DEBUG) Log.i(TAG, "No tile was returned");
+ return null;
+ }
+
+ PeopleSpaceTile augmentedTile = augmentTileFromNotificationEntryManager(tile);
+
+ if (DEBUG) Log.i(TAG, "Returning tile preview for shortcutId: " + shortcutId);
+ return new PeopleTileViewHelper(mContext, augmentedTile, 0, options).getViews();
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt
index dc22dc17cb85..9e8f6b82c182 100644
--- a/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt
+++ b/packages/SystemUI/src/com/android/systemui/privacy/PrivacyDialog.kt
@@ -119,7 +119,7 @@ class PrivacyDialog(
} else {
app
}
- val firstLine = context.getString(stringId, appName, element.type.getName(context))
+ val firstLine = context.getString(stringId, appName)
val finalText = element.attribution?.let {
TextUtils.concat(
firstLine,
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
index bf9acc27ebf6..6b09e2eb7b8b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
@@ -206,6 +206,12 @@ public class QSContainerImpl extends FrameLayout {
layoutParams.topMargin = mContext.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.quick_qs_offset_height);
mQSPanelContainer.setLayoutParams(layoutParams);
+ mQSPanelContainer.setPaddingRelative(
+ mQSPanelContainer.getPaddingStart(),
+ mQSPanelContainer.getPaddingTop(),
+ mQSPanelContainer.getPaddingEnd(),
+ mContext.getResources().getDimensionPixelSize(R.dimen.qs_container_bottom_padding)
+ );
mSideMargins = getResources().getDimensionPixelSize(R.dimen.notification_side_paddings);
int padding = getResources().getDimensionPixelSize(
@@ -237,6 +243,8 @@ public class QSContainerImpl extends FrameLayout {
int scrollBottom = calculateContainerBottom();
setBottom(getTop() + height);
mQSDetail.setBottom(getTop() + scrollBottom);
+ int qsDetailBottomMargin = ((MarginLayoutParams) mQSDetail.getLayoutParams()).bottomMargin;
+ mQSDetail.setBottom(getTop() + scrollBottom - qsDetailBottomMargin);
mBackground.setTop(mQSPanelContainer.getTop());
updateBackgroundBottom(scrollBottom, animate);
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java
index 980024eefa08..05197e46fb25 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java
@@ -150,6 +150,12 @@ public class QSDetail extends LinearLayout {
public void updateResources() {
updateDetailText();
+ MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
+ lp.topMargin = mContext.getResources().getDimensionPixelSize(
+ com.android.internal.R.dimen.quick_qs_offset_height);
+ lp.bottomMargin = mContext.getResources().getDimensionPixelSize(
+ R.dimen.qs_container_bottom_padding);
+ setLayoutParams(lp);
}
public boolean isClosingDetail() {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
index 5b6b5dfd123d..93ccfc7288e7 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
@@ -16,12 +16,14 @@
package com.android.systemui.qs;
+import static com.android.systemui.classifier.Classifier.QS_SWIPE;
import static com.android.systemui.media.dagger.MediaModule.QS_PANEL;
import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS;
import static com.android.systemui.qs.dagger.QSFragmentModule.QS_USING_MEDIA_PLAYER;
import android.annotation.NonNull;
import android.content.res.Configuration;
+import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -31,6 +33,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHierarchyManager;
import com.android.systemui.media.MediaHost;
+import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.customize.QSCustomizerController;
@@ -58,6 +61,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
private final TunerService mTunerService;
private final QSCustomizerController mQsCustomizerController;
private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
+ private final FalsingManager mFalsingManager;
private final BrightnessController mBrightnessController;
private final BrightnessSlider.Factory mBrightnessSliderFactory;
private final BrightnessSlider mBrightnessSlider;
@@ -81,6 +85,16 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
private final BrightnessMirrorController.BrightnessMirrorListener mBrightnessMirrorListener =
mirror -> updateBrightnessMirror();
+ private View.OnTouchListener mTileLayoutTouchListener = new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if (event.getActionMasked() == MotionEvent.ACTION_UP) {
+ mFalsingManager.isFalseTouch(QS_SWIPE);
+ }
+ return false;
+ }
+ };
+
@Inject
QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
@@ -89,7 +103,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
QSTileRevealController.Factory qsTileRevealControllerFactory,
DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
- BrightnessSlider.Factory brightnessSliderFactory,
+ BrightnessSlider.Factory brightnessSliderFactory, FalsingManager falsingManager,
FeatureFlags featureFlags) {
super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
metricsLogger, uiEventLogger, qsLogger, dumpManager, featureFlags);
@@ -97,6 +111,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
mTunerService = tunerService;
mQsCustomizerController = qsCustomizerController;
mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
+ mFalsingManager = falsingManager;
mQsSecurityFooter.setHostEnvironment(qstileHost);
mBrightnessSliderFactory = brightnessSliderFactory;
@@ -133,6 +148,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
if (mBrightnessMirrorController != null) {
mBrightnessMirrorController.addCallback(mBrightnessMirrorListener);
}
+
+ ((PagedTileLayout) mView.createRegularTileLayout())
+ .setOnTouchListener(mTileLayoutTouchListener);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index 3f063125ef85..7123e495268a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
@@ -235,6 +235,12 @@ public class QuickStatusBarHeader extends FrameLayout {
public void onAnimationStarted() {
mIconContainer.removeIgnoredSlot(mMobileSlotName);
}
+
+ @Override
+ public void onAnimationAtStart() {
+ super.onAnimationAtStart();
+ mIconContainer.removeIgnoredSlot(mMobileSlotName);
+ }
});
}
mAlphaAnimator = builder.build();
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java b/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java
index 33041d280b9b..fa28754e41a7 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotActivity.java
@@ -17,11 +17,12 @@
package com.android.systemui.screenshot;
import android.app.Activity;
+import android.app.ActivityOptions;
import android.content.ComponentName;
-import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.HardwareRenderer;
+import android.graphics.Matrix;
import android.graphics.RecordingCanvas;
import android.graphics.Rect;
import android.graphics.RenderNode;
@@ -32,11 +33,14 @@ import android.os.Bundle;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
-import android.view.IWindowManager;
import android.view.ScrollCaptureResponse;
import android.view.View;
+import android.view.Window;
import android.widget.ImageView;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.android.internal.app.ChooserActivity;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Background;
@@ -64,17 +68,16 @@ public class LongScreenshotActivity extends Activity {
public static final String EXTRA_CAPTURE_RESPONSE = "capture-response";
private static final String KEY_SAVED_IMAGE_PATH = "saved-image-path";
+ private static final boolean USE_SHARED_ELEMENT = false;
+
private final UiEventLogger mUiEventLogger;
- private final ScrollCaptureController mScrollCaptureController;
private final Executor mUiExecutor;
private final Executor mBackgroundExecutor;
private final ImageExporter mImageExporter;
-
- // If true, the activity is re-loading an image from storage, which should either succeed and
- // populate the UI or fail and finish the activity.
- private boolean mRestoringInstance;
+ private final LongScreenshotHolder mLongScreenshotHolder;
private ImageView mPreview;
+ private ImageView mTransitionView;
private View mSave;
private View mEdit;
private View mShare;
@@ -86,8 +89,8 @@ public class LongScreenshotActivity extends Activity {
private ListenableFuture<File> mCacheSaveFuture;
private ListenableFuture<ImageLoader.Result> mCacheLoadFuture;
- private ListenableFuture<LongScreenshot> mLongScreenshotFuture;
private LongScreenshot mLongScreenshot;
+ private boolean mTransitionStarted;
private enum PendingAction {
SHARE,
@@ -97,21 +100,21 @@ public class LongScreenshotActivity extends Activity {
@Inject
public LongScreenshotActivity(UiEventLogger uiEventLogger, ImageExporter imageExporter,
- @Main Executor mainExecutor, @Background Executor bgExecutor, IWindowManager wms,
- Context context, ScrollCaptureController scrollCaptureController) {
+ @Main Executor mainExecutor, @Background Executor bgExecutor,
+ LongScreenshotHolder longScreenshotHolder) {
mUiEventLogger = uiEventLogger;
mUiExecutor = mainExecutor;
mBackgroundExecutor = bgExecutor;
mImageExporter = imageExporter;
- mScrollCaptureController = scrollCaptureController;
+ mLongScreenshotHolder = longScreenshotHolder;
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate(savedInstanceState = " + savedInstanceState + ")");
-
super.onCreate(savedInstanceState);
+ getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
setContentView(R.layout.long_screenshot);
mPreview = requireViewById(R.id.preview);
@@ -121,6 +124,7 @@ public class LongScreenshotActivity extends Activity {
mCropView = requireViewById(R.id.crop_view);
mMagnifierView = requireViewById(R.id.magnifier);
mCropView.setCropInteractionListener(mMagnifierView);
+ mTransitionView = requireViewById(R.id.transition);
mSave.setOnClickListener(this::onClicked);
mEdit.setOnClickListener(this::onClicked);
@@ -152,7 +156,7 @@ public class LongScreenshotActivity extends Activity {
super.onStart();
if (mCacheLoadFuture != null) {
- Log.d(TAG, "mRestoringInstance = true");
+ Log.d(TAG, "mCacheLoadFuture != null");
final ListenableFuture<ImageLoader.Result> future = mCacheLoadFuture;
mCacheLoadFuture.addListener(() -> {
Log.d(TAG, "cached bitmap load complete");
@@ -170,42 +174,22 @@ public class LongScreenshotActivity extends Activity {
}, mUiExecutor);
mCacheLoadFuture = null;
return;
- }
-
- if (mLongScreenshotFuture == null) {
- Log.d(TAG, "mLongScreenshotFuture == null");
- // First run through, ensure we have a connection to use (see #onCreate)
- if (mScrollCaptureResponse == null || !mScrollCaptureResponse.isConnected()) {
- Log.e(TAG, "Did not receive a live scroll capture connection, bailing out!");
+ } else {
+ LongScreenshot longScreenshot = mLongScreenshotHolder.takeLongScreenshot();
+ if (longScreenshot != null) {
+ onLongScreenshotReceived(longScreenshot);
+ } else {
+ Log.e(TAG, "No long screenshot available!");
finishAndRemoveTask();
- return;
}
- mLongScreenshotFuture = mScrollCaptureController.run(mScrollCaptureResponse);
- mLongScreenshotFuture.addListener(() -> {
- LongScreenshot longScreenshot;
- try {
- longScreenshot = mLongScreenshotFuture.get();
- } catch (CancellationException | InterruptedException | ExecutionException e) {
- Log.e(TAG, "Error capturing long screenshot!", e);
- finishAndRemoveTask();
- return;
- }
- if (longScreenshot.getHeight() == 0) {
- Log.e(TAG, "Got a zero height result");
- finishAndRemoveTask();
- return;
- }
- onCaptureCompleted(longScreenshot);
- }, mUiExecutor);
- } else {
- Log.d(TAG, "mLongScreenshotFuture != null");
}
}
- private void onCaptureCompleted(LongScreenshot longScreenshot) {
- Log.d(TAG, "onCaptureCompleted(longScreenshot=" + longScreenshot + ")");
+ private void onLongScreenshotReceived(LongScreenshot longScreenshot) {
+ Log.d(TAG, "onLongScreenshotReceived(longScreenshot=" + longScreenshot + ")");
mLongScreenshot = longScreenshot;
mPreview.setImageDrawable(mLongScreenshot.getDrawable());
+ mTransitionView.setImageDrawable(mLongScreenshot.getDrawable());
updateImageDimensions();
mCropView.setVisibility(View.VISIBLE);
mMagnifierView.setDrawable(mLongScreenshot.getDrawable(),
@@ -277,15 +261,15 @@ public class LongScreenshotActivity extends Activity {
protected void onStop() {
Log.d(TAG, "onStop finishing=" + isFinishing());
super.onStop();
+ if (mTransitionStarted) {
+ finish();
+ }
if (isFinishing()) {
if (mScrollCaptureResponse != null) {
mScrollCaptureResponse.close();
}
cleanupCache();
- if (mLongScreenshotFuture != null) {
- mLongScreenshotFuture.cancel(true);
- }
if (mLongScreenshot != null) {
mLongScreenshot.release();
}
@@ -323,11 +307,22 @@ public class LongScreenshotActivity extends Activity {
intent.setComponent(ComponentName.unflattenFromString(editorPackage));
}
intent.setDataAndType(uri, "image/png");
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
- | Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
-
- startActivityAsUser(intent, UserHandle.CURRENT);
- finishAndRemoveTask();
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
+ | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+
+ if (USE_SHARED_ELEMENT) {
+ updateImageDimensions();
+ mTransitionView.setVisibility(View.VISIBLE);
+ // TODO: listen for transition completing instead of finishing onStop
+ mTransitionStarted = true;
+ startActivity(intent,
+ ActivityOptions.makeSceneTransitionAnimation(this, mTransitionView,
+ ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME).toBundle());
+ } else {
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ startActivityAsUser(intent, UserHandle.CURRENT);
+ finishAndRemoveTask();
+ }
}
private void doShare(Uri uri) {
@@ -417,19 +412,47 @@ public class LongScreenshotActivity extends Activity {
- mPreview.getPaddingBottom();
float viewRatio = previewWidth / (float) previewHeight;
+ // Top and left offsets of the image relative to mPreview.
+ int imageLeft = mPreview.getPaddingLeft();
+ int imageTop = mPreview.getPaddingTop();
+
+ // The image width and height on screen
+ int imageHeight = previewHeight;
+ int imageWidth = previewWidth;
+ float scale;
if (imageRatio > viewRatio) {
// Image is full width and height is constrained, compute extra padding to inform
// CropView
- float imageHeight = previewHeight * viewRatio / imageRatio;
- int extraPadding = (int) (previewHeight - imageHeight) / 2;
+ imageHeight = (int) (previewHeight * viewRatio / imageRatio);
+ int extraPadding = (previewHeight - imageHeight) / 2;
mCropView.setExtraPadding(extraPadding + mPreview.getPaddingTop(),
extraPadding + mPreview.getPaddingBottom());
+ imageTop += (previewHeight - imageHeight) / 2;
+ scale = imageHeight / bounds.height();
+ mCropView.setExtraPadding(extraPadding, extraPadding);
mCropView.setImageWidth(previewWidth);
} else {
+ imageWidth = (int) (previewWidth * imageRatio / viewRatio);
+ imageLeft += (previewWidth - imageWidth) / 2;
+ scale = imageWidth / (float) bounds.width();
// Image is full height
mCropView.setExtraPadding(mPreview.getPaddingTop(), mPreview.getPaddingBottom());
mCropView.setImageWidth((int) (previewHeight * imageRatio));
}
+ // Update transition view's position and scale.
+ Rect boundaries = mCropView.getCropBoundaries(imageWidth, imageHeight);
+ mTransitionView.setTranslationX(imageLeft + boundaries.left);
+ mTransitionView.setTranslationY(imageTop + boundaries.top);
+ ConstraintLayout.LayoutParams params =
+ (ConstraintLayout.LayoutParams) mTransitionView.getLayoutParams();
+ params.width = boundaries.width();
+ params.height = boundaries.height();
+ mTransitionView.setLayoutParams(params);
+
+ Matrix matrix = new Matrix();
+ matrix.postScale(scale, scale, 0, 0);
+ matrix.postTranslate(-boundaries.left, -boundaries.top);
+ mTransitionView.setImageMatrix(matrix);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotHolder.java b/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotHolder.java
new file mode 100644
index 000000000000..39c6f0798988
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/LongScreenshotHolder.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.systemui.screenshot;
+
+import com.android.systemui.dagger.SysUISingleton;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+import javax.inject.Inject;
+
+/**
+ * LongScreenshotHolder holds on to 1 LongScreenshot reference to facilitate indirect in-process
+ * passing.
+ */
+@SysUISingleton
+public class LongScreenshotHolder {
+ private final AtomicReference<ScrollCaptureController.LongScreenshot> mLongScreenshot;
+
+ @Inject
+ public LongScreenshotHolder() {
+ mLongScreenshot = new AtomicReference<>();
+ }
+
+ /**
+ * Set the holder's stored LongScreenshot.
+ */
+ public void setLongScreenshot(ScrollCaptureController.LongScreenshot longScreenshot) {
+ mLongScreenshot.set(longScreenshot);
+ }
+
+ /**
+ * @return true if the holder has a non-null LongScreenshot.
+ */
+ public boolean hasLongScreenshot() {
+ return mLongScreenshot.get() != null;
+ }
+
+ /**
+ * Return the current stored LongScreenshot, clear the holder's storage.
+ */
+ public ScrollCaptureController.LongScreenshot takeLongScreenshot() {
+ return mLongScreenshot.getAndSet(null);
+ }
+
+}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java
index badffce3259a..9d0198615dcd 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java
@@ -191,6 +191,8 @@ public class ScreenshotController {
private final ScrollCaptureClient mScrollCaptureClient;
private final PhoneWindow mWindow;
private final DisplayManager mDisplayManager;
+ private final ScrollCaptureController mScrollCaptureController;
+ private final LongScreenshotHolder mLongScreenshotHolder;
private ScreenshotView mScreenshotView;
private Bitmap mScreenBitmap;
@@ -233,13 +235,17 @@ public class ScreenshotController {
ScrollCaptureClient scrollCaptureClient,
UiEventLogger uiEventLogger,
ImageExporter imageExporter,
- @Main Executor mainExecutor) {
+ @Main Executor mainExecutor,
+ ScrollCaptureController scrollCaptureController,
+ LongScreenshotHolder longScreenshotHolder) {
mScreenshotSmartActions = screenshotSmartActions;
mNotificationsController = screenshotNotificationsController;
mScrollCaptureClient = scrollCaptureClient;
mUiEventLogger = uiEventLogger;
mImageExporter = imageExporter;
mMainExecutor = mainExecutor;
+ mScrollCaptureController = scrollCaptureController;
+ mLongScreenshotHolder = longScreenshotHolder;
mBgExecutor = Executors.newSingleThreadExecutor();
mDisplayManager = requireNonNull(context.getSystemService(DisplayManager.class));
@@ -569,15 +575,30 @@ public class ScreenshotController {
}
Log.d(TAG, "ScrollCapture: connected to window ["
+ mLastScrollCaptureResponse.getWindowTitle() + "]");
- final Intent intent = new Intent(mContext, LongScreenshotActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
- intent.putExtra(LongScreenshotActivity.EXTRA_CAPTURE_RESPONSE,
- mLastScrollCaptureResponse);
+
+ final ScrollCaptureResponse response = mLastScrollCaptureResponse;
mScreenshotView.showScrollChip(/* onClick */ () -> {
// Clear the reference to prevent close() in dismissScreenshot
mLastScrollCaptureResponse = null;
- mContext.startActivity(intent);
- dismissScreenshot(false);
+ final ListenableFuture<ScrollCaptureController.LongScreenshot> future =
+ mScrollCaptureController.run(response);
+ future.addListener(() -> {
+ ScrollCaptureController.LongScreenshot longScreenshot;
+ try {
+ longScreenshot = future.get();
+ } catch (CancellationException | InterruptedException | ExecutionException e) {
+ Log.e(TAG, "Exception", e);
+ return;
+ }
+
+ mLongScreenshotHolder.setLongScreenshot(longScreenshot);
+
+ final Intent intent = new Intent(mContext, LongScreenshotActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ mContext.startActivity(intent);
+
+ dismissScreenshot(false);
+ }, mMainExecutor);
});
} catch (CancellationException e) {
// Ignore
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
index 20383feff9bc..fad748021559 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
@@ -24,6 +24,7 @@ import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.media.MediaDataManager;
+import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.ActionClickLogger;
import com.android.systemui.statusbar.CommandQueue;
@@ -237,9 +238,11 @@ public interface StatusBarDependenciesModule {
static OngoingCallController provideOngoingCallController(
CommonNotifCollection notifCollection,
FeatureFlags featureFlags,
- SystemClock systemClock) {
+ SystemClock systemClock,
+ ActivityStarter activityStarter) {
OngoingCallController ongoingCallController =
- new OngoingCallController(notifCollection, featureFlags, systemClock);
+ new OngoingCallController(
+ notifCollection, featureFlags, systemClock, activityStarter);
ongoingCallController.init();
return ongoingCallController;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
index fa6f23d38984..3434f67fa271 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
@@ -44,6 +44,7 @@ import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
+import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -181,7 +182,7 @@ public class NotificationConversationInfo extends LinearLayout implements
showPriorityOnboarding();
} else if (mSelectedAction == ACTION_FAVORITE && getPriority() != mSelectedAction) {
mShadeController.animateCollapsePanels();
- mPeopleSpaceWidgetManager.requestPinAppWidget(mShortcutInfo);
+ mPeopleSpaceWidgetManager.requestPinAppWidget(mShortcutInfo, new Bundle());
}
mGutsContainer.closeControls(v, true);
};
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PriorityOnboardingDialogController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PriorityOnboardingDialogController.kt
index 9bbe616dc39d..270721ffa4b8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PriorityOnboardingDialogController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PriorityOnboardingDialogController.kt
@@ -28,6 +28,7 @@ import android.graphics.PixelFormat
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
+import android.os.Bundle
import android.text.SpannableStringBuilder
import android.text.style.BulletSpan
import android.view.Gravity
@@ -86,7 +87,7 @@ class PriorityOnboardingDialogController @Inject constructor(
Prefs.putBoolean(context, Prefs.Key.HAS_SEEN_PRIORITY_ONBOARDING_IN_S, true)
dialog.dismiss()
shadeController.animateCollapsePanels()
- peopleSpaceWidgetManager.requestPinAppWidget(shortcutInfo)
+ peopleSpaceWidgetManager.requestPinAppWidget(shortcutInfo, Bundle())
}
private fun settings() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
index 3e1a7816c2b2..6cacec71db39 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
@@ -272,13 +272,15 @@ public class StackScrollAlgorithm {
currentY += mGapHeight;
}
- // Save index of first view in the shelf
- final float shelfStart = ambientState.getStackEndHeight()
- - ambientState.getShelf().getIntrinsicHeight();
- if (currentY >= shelfStart
- && !(view instanceof FooterView)
- && state.firstViewInShelf == null) {
- state.firstViewInShelf = view;
+ if (ambientState.getShelf() != null) {
+ // Save index of first view in the shelf
+ final float shelfStart = ambientState.getStackEndHeight()
+ - ambientState.getShelf().getIntrinsicHeight();
+ if (currentY >= shelfStart
+ && !(view instanceof FooterView)
+ && state.firstViewInShelf == null) {
+ state.firstViewInShelf = view;
+ }
}
// Record y position when fully expanded
@@ -298,10 +300,14 @@ public class StackScrollAlgorithm {
float sectionEnd = state.expansionData.get(sectionEndView).fullyExpandedY
+ sectionEndView.getIntrinsicHeight();
- // If we show the shelf, trim section end to shelf start
- // This means section end > start for views in the shelf
- if (state.firstViewInShelf != null && sectionEnd > shelfStart) {
- sectionEnd = shelfStart;
+ if (ambientState.getShelf() != null) {
+ // If we show the shelf, trim section end to shelf start
+ // This means section end > start for views in the shelf
+ final float shelfStart = ambientState.getStackEndHeight()
+ - ambientState.getShelf().getIntrinsicHeight();
+ if (state.firstViewInShelf != null && sectionEnd > shelfStart) {
+ sectionEnd = shelfStart;
+ }
}
// Update section bounds of every view in the previous section
@@ -460,7 +466,7 @@ public class StackScrollAlgorithm {
&& i >= algorithmState.visibleChildren.indexOf(
algorithmState.firstViewInShelf)
&& !(view instanceof FooterView);
- } else {
+ } else if (ambientState.getShelf() != null) {
// When pulsing (incoming notification on AOD), innerHeight is 0; clamp all
// to shelf start, thereby hiding all notifications (except the first one, which we
// later unhide in updatePulsingState)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
index 4e57e44f38d7..48c7b89f50c1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
@@ -158,10 +158,12 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
mDarkIconManager.setShouldLog(true);
mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_volume));
mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_alarm_clock));
+ mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_call_strength));
mDarkIconManager.setBlockList(mBlockedIcons);
Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager);
mSystemIconArea = mStatusBar.findViewById(R.id.system_icon_area);
mClockView = mStatusBar.findViewById(R.id.clock);
+ mOngoingCallChip = mStatusBar.findViewById(R.id.ongoing_call_chip);
showSystemIconArea(false);
showClock(false);
initEmergencyCryptkeeperText();
@@ -182,7 +184,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
super.onResume();
mCommandQueue.addCallback(this);
mStatusBarStateController.addCallback(this);
- mOngoingCallController.addCallback(mOngoingCallListener);
+ initOngoingCallChip();
}
@Override
@@ -221,8 +223,6 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
}
statusBarCenteredIconArea.addView(mCenteredIconArea);
- initOngoingCallChip();
-
// Default to showing until we know otherwise.
showNotificationIconArea(false);
}
@@ -273,7 +273,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
state |= DISABLE_CLOCK;
}
- if (mOngoingCallController.getHasOngoingCall()) {
+ if (mOngoingCallController.hasOngoingCall()) {
state |= DISABLE_NOTIFICATION_ICONS;
}
@@ -448,7 +448,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
}
private void initOngoingCallChip() {
- mOngoingCallChip = mStatusBar.findViewById(R.id.ongoing_call_chip);
+ mOngoingCallController.addCallback(mOngoingCallListener);
mOngoingCallController.setChipView(mOngoingCallChip);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
index c22fec97db01..0c4bec2c2c65 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -200,6 +200,7 @@ public class KeyguardStatusBarView extends RelativeLayout implements
Resources r = getResources();
mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_volume));
mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_alarm_clock));
+ mBlockedIcons.add(r.getString(com.android.internal.R.string.status_bar_call_strength));
}
private void updateVisibilities() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
index 89e701606c1a..93b83d3cbcbd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
@@ -74,6 +74,10 @@ public interface StatusBarIconController {
/**
* Display the no calling & SMS icons.
*/
+ void setCallStrengthIcons(String slot, List<CallIndicatorIconState> states);
+ /**
+ * Display the no calling & SMS icons.
+ */
void setNoCallingIcons(String slot, List<CallIndicatorIconState> states);
public void setIconVisibility(String slot, boolean b);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
index 068ded32bbdb..75900a2bffa1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
@@ -224,6 +224,33 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu
}
/**
+ * Accept a list of CallIndicatorIconStates, and show the call strength icons.
+ * @param slot StatusBar slot for the call strength icons
+ * @param states All of the no Calling & SMS icon states
+ */
+ @Override
+ public void setCallStrengthIcons(String slot, List<CallIndicatorIconState> states) {
+ Slot callStrengthSlot = getSlot(slot);
+ int callStrengthSlotIndex = getSlotIndex(slot);
+ Collections.reverse(states);
+ for (CallIndicatorIconState state : states) {
+ if (!state.isNoCalling) {
+ StatusBarIconHolder holder = callStrengthSlot.getHolderForTag(state.subId);
+ if (holder == null) {
+ holder = StatusBarIconHolder.fromCallIndicatorState(mContext, state);
+ setIcon(callStrengthSlotIndex, holder);
+ } else {
+ holder.setIcon(new StatusBarIcon(UserHandle.SYSTEM, mContext.getPackageName(),
+ Icon.createWithResource(mContext, state.callStrengthResId), 0, 0,
+ state.callStrengthDescription));
+ setIcon(callStrengthSlotIndex, holder);
+ }
+ }
+ setIconVisibility(slot, !state.isNoCalling, state.subId);
+ }
+ }
+
+ /**
* Accept a list of CallIndicatorIconStates, and show the no calling icons.
* @param slot StatusBar slot for the no calling icons
* @param states All of the no Calling & SMS icon states
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java
index 4ca71f081c0e..af342dd31a76 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java
@@ -86,9 +86,11 @@ public class StatusBarIconHolder {
Context context,
CallIndicatorIconState state) {
StatusBarIconHolder holder = new StatusBarIconHolder();
+ int resId = state.isNoCalling ? state.noCallingResId : state.callStrengthResId;
+ String contentDescription = state.isNoCalling
+ ? state.noCallingDescription : state.callStrengthDescription;
holder.mIcon = new StatusBarIcon(UserHandle.SYSTEM, context.getPackageName(),
- Icon.createWithResource(context, state.noCallingResId),
- 0, 0, state.noCallingDescription);
+ Icon.createWithResource(context, resId), 0, 0, contentDescription);
holder.mTag = state.subId;
return holder;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
index b57d8766854e..3445826eefbe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
@@ -22,6 +22,7 @@ import android.telephony.SubscriptionInfo;
import android.util.ArraySet;
import android.util.Log;
+import com.android.settingslib.mobile.TelephonyIcons;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.NetworkController;
@@ -49,6 +50,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
private final String mSlotEthernet;
private final String mSlotVpn;
private final String mSlotNoCalling;
+ private final String mSlotCallStrength;
private final Context mContext;
private final StatusBarIconController mIconController;
@@ -82,6 +84,8 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
mSlotEthernet = mContext.getString(com.android.internal.R.string.status_bar_ethernet);
mSlotVpn = mContext.getString(com.android.internal.R.string.status_bar_vpn);
mSlotNoCalling = mContext.getString(com.android.internal.R.string.status_bar_no_calling);
+ mSlotCallStrength =
+ mContext.getString(com.android.internal.R.string.status_bar_call_strength);
mActivityEnabled = mContext.getResources().getBoolean(R.bool.config_showActivity);
mIconController = iconController;
@@ -207,9 +211,14 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
if (statusIcon.icon == R.drawable.ic_qs_no_calling_sms) {
state.isNoCalling = statusIcon.visible;
state.noCallingDescription = statusIcon.contentDescription;
- mIconController.setNoCallingIcons(mSlotNoCalling,
- CallIndicatorIconState.copyStates(mCallIndicatorStates));
+ } else {
+ state.callStrengthResId = statusIcon.icon;
+ state.callStrengthDescription = statusIcon.contentDescription;
}
+ mIconController.setCallStrengthIcons(mSlotCallStrength,
+ CallIndicatorIconState.copyStates(mCallIndicatorStates));
+ mIconController.setNoCallingIcons(mSlotNoCalling,
+ CallIndicatorIconState.copyStates(mCallIndicatorStates));
}
@Override
@@ -296,6 +305,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
mIconController.removeAllIconsForSlot(mSlotMobile);
mIconController.removeAllIconsForSlot(mSlotNoCalling);
+ mIconController.removeAllIconsForSlot(mSlotCallStrength);
mMobileStates.clear();
List<CallIndicatorIconState> noCallingStates = new ArrayList<CallIndicatorIconState>();
noCallingStates.addAll(mCallIndicatorStates);
@@ -410,12 +420,15 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
public static class CallIndicatorIconState {
public boolean isNoCalling;
public int noCallingResId;
+ public int callStrengthResId;
public int subId;
public String noCallingDescription;
+ public String callStrengthDescription;
private CallIndicatorIconState(int subId) {
this.subId = subId;
this.noCallingResId = R.drawable.ic_qs_no_calling_sms;
+ this.callStrengthResId = TelephonyIcons.MOBILE_CALL_STRENGTH_ICONS[0];
}
@Override
@@ -427,21 +440,26 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
CallIndicatorIconState that = (CallIndicatorIconState) o;
return isNoCalling == that.isNoCalling
&& noCallingResId == that.noCallingResId
+ && callStrengthResId == that.callStrengthResId
&& subId == that.subId
- && noCallingDescription == that.noCallingDescription;
+ && noCallingDescription == that.noCallingDescription
+ && callStrengthDescription == that.callStrengthDescription;
}
@Override
public int hashCode() {
- return Objects.hash(isNoCalling, noCallingResId, subId, noCallingDescription);
+ return Objects.hash(isNoCalling, noCallingResId,
+ callStrengthResId, subId, noCallingDescription, callStrengthDescription);
}
private void copyTo(CallIndicatorIconState other) {
other.isNoCalling = isNoCalling;
other.noCallingResId = noCallingResId;
+ other.callStrengthResId = callStrengthResId;
other.subId = subId;
other.noCallingDescription = noCallingDescription;
+ other.callStrengthDescription = callStrengthDescription;
}
private static List<CallIndicatorIconState> copyStates(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
index b55db6fd1e7d..96473c2a961c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
@@ -18,11 +18,14 @@ package com.android.systemui.statusbar.phone.ongoingcall
import android.app.Notification
import android.app.Notification.CallStyle.CALL_TYPE_ONGOING
+import android.content.Intent
import android.util.Log
import android.view.ViewGroup
import android.widget.Chronometer
import com.android.systemui.R
+import com.android.systemui.animation.ActivityLaunchAnimator
import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.FeatureFlags
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
@@ -38,11 +41,12 @@ import javax.inject.Inject
class OngoingCallController @Inject constructor(
private val notifCollection: CommonNotifCollection,
private val featureFlags: FeatureFlags,
- private val systemClock: SystemClock
+ private val systemClock: SystemClock,
+ private val activityStarter: ActivityStarter
) : CallbackController<OngoingCallListener> {
- var hasOngoingCall = false
- private set
+ /** Null if there's no ongoing call. */
+ private var ongoingCallInfo: OngoingCallInfo? = null
private var chipView: ViewGroup? = null
private val mListeners: MutableList<OngoingCallListener> = mutableListOf()
@@ -50,25 +54,16 @@ class OngoingCallController @Inject constructor(
private val notifListener = object : NotifCollectionListener {
override fun onEntryUpdated(entry: NotificationEntry) {
if (isOngoingCallNotification(entry)) {
- val timeView = chipView?.findViewById<Chronometer>(R.id.ongoing_call_chip_time)
- if (timeView != null) {
- hasOngoingCall = true
- val callStartTime = entry.sbn.notification.`when`
- timeView.base = callStartTime -
- System.currentTimeMillis() +
- systemClock.elapsedRealtime()
- timeView.start()
- mListeners.forEach { l -> l.onOngoingCallStarted(animate = true) }
- } else if (DEBUG) {
- Log.w(TAG, "Ongoing call chip view could not be found; " +
- "Not displaying chip in status bar")
- }
+ ongoingCallInfo = OngoingCallInfo(
+ entry.sbn.notification.`when`,
+ entry.sbn.notification.contentIntent.intent)
+ updateChip()
}
}
override fun onEntryRemoved(entry: NotificationEntry, reason: Int) {
if (isOngoingCallNotification(entry)) {
- hasOngoingCall = false
+ ongoingCallInfo = null
mListeners.forEach { l -> l.onOngoingCallEnded(animate = true) }
}
}
@@ -80,10 +75,23 @@ class OngoingCallController @Inject constructor(
}
}
- fun setChipView(chipView: ViewGroup?) {
+ /**
+ * Sets the chip view that will contain ongoing call information.
+ *
+ * Should only be called from [CollapedStatusBarFragment].
+ */
+ fun setChipView(chipView: ViewGroup) {
this.chipView = chipView
+ if (hasOngoingCall()) {
+ updateChip()
+ }
}
+ /**
+ * Returns true if there's an active ongoing call that can be displayed in a status bar chip.
+ */
+ fun hasOngoingCall(): Boolean = ongoingCallInfo != null
+
override fun addCallback(listener: OngoingCallListener) {
synchronized(mListeners) {
if (!mListeners.contains(listener)) {
@@ -97,6 +105,43 @@ class OngoingCallController @Inject constructor(
mListeners.remove(listener)
}
}
+
+ private fun updateChip() {
+ val currentOngoingCallInfo = ongoingCallInfo ?: return
+
+ val currentChipView = chipView
+ val timeView =
+ currentChipView?.findViewById<Chronometer>(R.id.ongoing_call_chip_time)
+
+ if (currentChipView != null && timeView != null) {
+ timeView.base = currentOngoingCallInfo.callStartTime -
+ System.currentTimeMillis() +
+ systemClock.elapsedRealtime()
+ timeView.start()
+
+ currentChipView.setOnClickListener {
+ activityStarter.postStartActivityDismissingKeyguard(
+ currentOngoingCallInfo.intent, 0,
+ ActivityLaunchAnimator.Controller.fromView(it))
+ }
+
+ mListeners.forEach { l -> l.onOngoingCallStarted(animate = true) }
+ } else {
+ // If we failed to update the chip, don't store the ongoing call info. Then
+ // [hasOngoingCall] will return false and we fall back to typical notification handling.
+ ongoingCallInfo = null
+
+ if (DEBUG) {
+ Log.w(TAG, "Ongoing call chip view could not be found; " +
+ "Not displaying chip in status bar")
+ }
+ }
+ }
+
+ private class OngoingCallInfo(
+ val callStartTime: Long,
+ val intent: Intent
+ )
}
private fun isOngoingCallNotification(entry: NotificationEntry): Boolean {
diff --git a/packages/SystemUI/src/com/android/systemui/util/Utils.java b/packages/SystemUI/src/com/android/systemui/util/Utils.java
index fd3641cfdaa0..f3a95f711b7c 100644
--- a/packages/SystemUI/src/com/android/systemui/util/Utils.java
+++ b/packages/SystemUI/src/com/android/systemui/util/Utils.java
@@ -21,8 +21,10 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
+import android.content.res.TypedArray;
import android.provider.Settings;
import android.text.TextUtils;
+import android.view.ContextThemeWrapper;
import android.view.View;
import com.android.systemui.R;
@@ -177,4 +179,23 @@ public class Utils {
&& resources.getBoolean(R.bool.config_use_split_notification_shade);
}
+ /**
+ * Returns the color provided at the specified {@param attrIndex} in {@param a} if it exists,
+ * otherwise, returns the color from the private attribute {@param privAttrId}.
+ */
+ public static int getPrivateAttrColorIfUnset(ContextThemeWrapper ctw, TypedArray a,
+ int attrIndex, int defColor, int privAttrId) {
+ // If the index is specified, use that value
+ if (a.hasValue(attrIndex)) {
+ return a.getColor(attrIndex, defColor);
+ }
+
+ // Otherwise fallback to the value of the private attribute
+ int[] customAttrs = { privAttrId };
+ a = ctw.obtainStyledAttributes(customAttrs);
+ int color = a.getColor(0, defColor);
+ a.recycle();
+ return color;
+ }
+
}
diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java
index 3fc3d89461ae..f96d34495fda 100644
--- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java
+++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java
@@ -381,8 +381,8 @@ public abstract class WMShellBaseModule {
@WMSingleton
@Provides
static StartingWindowController provideStartingWindowController(Context context,
- @ShellSplashscreenThread ShellExecutor executor, TransactionPool pool) {
- return new StartingWindowController(context, executor, pool);
+ @ShellSplashscreenThread ShellExecutor splashScreenExecutor, TransactionPool pool) {
+ return new StartingWindowController(context, splashScreenExecutor, pool);
}
//
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
index c9124194839f..8e00d10a7d39 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/DistanceClassifierTest.java
@@ -17,6 +17,7 @@
package com.android.systemui.classifier;
import static com.android.systemui.classifier.Classifier.BRIGHTNESS_SLIDER;
+import static com.android.systemui.classifier.Classifier.QS_SWIPE;
import static com.google.common.truth.Truth.assertThat;
@@ -103,4 +104,11 @@ public class DistanceClassifierTest extends ClassifierTest {
assertThat(mClassifier.classifyGesture(BRIGHTNESS_SLIDER, 0.5, 1).isFalse())
.isFalse();
}
+
+ @Test
+ public void testPass_QsSwipeAlwaysPasses() {
+ mClassifier.onTouchEvent(appendDownEvent(1, 1));
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 1).isFalse())
+ .isFalse();
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
index 32537b45fd02..1d61e29cad35 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/classifier/TypeClassifierTest.java
@@ -22,6 +22,7 @@ import static com.android.systemui.classifier.Classifier.LEFT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.NOTIFICATION_DISMISS;
import static com.android.systemui.classifier.Classifier.NOTIFICATION_DRAG_DOWN;
import static com.android.systemui.classifier.Classifier.PULSE_EXPAND;
+import static com.android.systemui.classifier.Classifier.QS_SWIPE;
import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS;
import static com.android.systemui.classifier.Classifier.RIGHT_AFFORDANCE;
import static com.android.systemui.classifier.Classifier.UNLOCK;
@@ -320,4 +321,46 @@ public class TypeClassifierTest extends ClassifierTest {
when(mDataProvider.isRight()).thenReturn(true);
assertThat(mClassifier.classifyGesture(BRIGHTNESS_SLIDER, 0.5, 0).isFalse()).isTrue();
}
+
+ @Test
+ public void testPass_QsSwipe() {
+ when(mDataProvider.isVertical()).thenReturn(false);
+
+ when(mDataProvider.isUp()).thenReturn(false); // up and right should cause no effect.
+ when(mDataProvider.isRight()).thenReturn(false);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isFalse();
+
+ when(mDataProvider.isUp()).thenReturn(true);
+ when(mDataProvider.isRight()).thenReturn(false);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isFalse();
+
+ when(mDataProvider.isUp()).thenReturn(false);
+ when(mDataProvider.isRight()).thenReturn(true);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isFalse();
+
+ when(mDataProvider.isUp()).thenReturn(true);
+ when(mDataProvider.isRight()).thenReturn(true);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isFalse();
+ }
+
+ @Test
+ public void testFalse_QsSwipe() {
+ when(mDataProvider.isVertical()).thenReturn(true);
+
+ when(mDataProvider.isUp()).thenReturn(false); // up and right should cause no effect.
+ when(mDataProvider.isRight()).thenReturn(false);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isTrue();
+
+ when(mDataProvider.isUp()).thenReturn(true);
+ when(mDataProvider.isRight()).thenReturn(false);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isTrue();
+
+ when(mDataProvider.isUp()).thenReturn(false);
+ when(mDataProvider.isRight()).thenReturn(true);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isTrue();
+
+ when(mDataProvider.isUp()).thenReturn(true);
+ when(mDataProvider.isRight()).thenReturn(true);
+ assertThat(mClassifier.classifyGesture(QS_SWIPE, 0.5, 0).isFalse()).isTrue();
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/NotificationHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/NotificationHelperTest.java
new file mode 100644
index 000000000000..7cddc3f8e82d
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/NotificationHelperTest.java
@@ -0,0 +1,205 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.systemui.people;
+
+import static android.app.Notification.CATEGORY_MISSED_CALL;
+
+import static com.android.systemui.people.NotificationHelper.getHighestPriorityNotification;
+import static com.android.systemui.people.NotificationHelper.getMessagingStyleMessages;
+import static com.android.systemui.people.NotificationHelper.isMissedCall;
+import static com.android.systemui.people.NotificationHelper.isMissedCallOrHasContent;
+import static com.android.systemui.people.PeopleSpaceUtils.PACKAGE_NAME;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.app.Notification;
+import android.app.Person;
+import android.content.pm.ShortcutInfo;
+import android.net.Uri;
+import android.os.UserHandle;
+import android.service.notification.StatusBarNotification;
+import android.testing.AndroidTestingRunner;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.util.ArrayUtils;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.SbnBuilder;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+import java.util.Set;
+
+@RunWith(AndroidTestingRunner.class)
+@SmallTest
+public class NotificationHelperTest extends SysuiTestCase {
+ private static final String SHORTCUT_ID_1 = "101";
+ private static final String SHORTCUT_ID_2 = "102";
+
+ private static final String NOTIFICATION_TEXT_1 = "notification_text_1";
+ private static final String NOTIFICATION_TEXT_2 = "notification_text_2";
+ private static final String NOTIFICATION_TEXT_3 = "notification_text_3";
+ private static final Uri URI = Uri.parse("fake_uri");
+ private static final Person PERSON = new Person.Builder()
+ .setName("name")
+ .setKey("abc")
+ .setUri(URI.toString())
+ .setBot(false)
+ .build();
+
+ private final Notification mNotification1 = new Notification.Builder(mContext, "test")
+ .setContentTitle("TEST_TITLE")
+ .setContentText("TEST_TEXT")
+ .setShortcutId(SHORTCUT_ID_1)
+ .setStyle(new Notification.MessagingStyle(PERSON)
+ .addMessage(new Notification.MessagingStyle.Message(
+ NOTIFICATION_TEXT_1, 0, PERSON))
+ .addMessage(new Notification.MessagingStyle.Message(
+ NOTIFICATION_TEXT_2, 20, PERSON))
+ .addMessage(new Notification.MessagingStyle.Message(
+ NOTIFICATION_TEXT_3, 10, PERSON))
+ )
+ .build();
+
+ private final Notification mNotification2 = new Notification.Builder(mContext, "test")
+ .setContentTitle("TEST_TITLE")
+ .setContentText("TEST_TEXT")
+ .setShortcutId(SHORTCUT_ID_1)
+ .setStyle(new Notification.MessagingStyle(PERSON)
+ .addMessage(new Notification.MessagingStyle.Message(
+ NOTIFICATION_TEXT_1, 0, PERSON))
+ )
+ .build();
+
+ private final Notification mNoContentNotification = new Notification.Builder(mContext, "test")
+ .setContentTitle("TEST_TITLE")
+ .setContentText("TEST_TEXT")
+ .setShortcutId(SHORTCUT_ID_1)
+ .setStyle(new Notification.MessagingStyle(PERSON))
+ .build();
+
+ private final Notification mMissedCallNotification = new Notification.Builder(mContext, "test")
+ .setContentTitle("TEST_TITLE")
+ .setContentText("TEST_TEXT")
+ .setShortcutId(SHORTCUT_ID_2)
+ .setCategory(CATEGORY_MISSED_CALL)
+ .setStyle(new Notification.MessagingStyle(PERSON))
+ .build();
+
+ private final NotificationEntry mNotificationEntry1 = new NotificationEntryBuilder()
+ .setNotification(mNotification1)
+ .setShortcutInfo(new ShortcutInfo.Builder(mContext, SHORTCUT_ID_1).build())
+ .setUser(UserHandle.of(0))
+ .setPkg(PACKAGE_NAME)
+ .build();
+
+ private final NotificationEntry mNotificationEntry2 = new NotificationEntryBuilder()
+ .setNotification(mNotification2)
+ .setShortcutInfo(new ShortcutInfo.Builder(mContext, SHORTCUT_ID_1).build())
+ .setUser(UserHandle.of(0))
+ .setPkg(PACKAGE_NAME)
+ .build();
+
+
+ private final NotificationEntry mMissedCallNotificationEntry = new NotificationEntryBuilder()
+ .setNotification(mMissedCallNotification)
+ .setShortcutInfo(new ShortcutInfo.Builder(mContext, SHORTCUT_ID_1).build())
+ .setUser(UserHandle.of(0))
+ .setPkg(PACKAGE_NAME)
+ .build();
+
+ private final NotificationEntry mNoContentNotificationEntry = new NotificationEntryBuilder()
+ .setNotification(mNoContentNotification)
+ .setShortcutInfo(new ShortcutInfo.Builder(mContext, SHORTCUT_ID_1).build())
+ .setUser(UserHandle.of(0))
+ .setPkg(PACKAGE_NAME)
+ .build();
+
+ @Test
+ public void testGetMessagingStyleMessagesNoMessage() {
+ Notification notification = new Notification.Builder(mContext, "test")
+ .setContentTitle("TEST_TITLE")
+ .setContentText("TEST_TEXT")
+ .setShortcutId(SHORTCUT_ID_1)
+ .build();
+ StatusBarNotification sbn = new SbnBuilder()
+ .setNotification(notification)
+ .build();
+
+ List<Notification.MessagingStyle.Message> messages =
+ getMessagingStyleMessages(sbn.getNotification());
+
+ assertThat(ArrayUtils.isEmpty(messages)).isTrue();
+ }
+
+ @Test
+ public void testGetMessagingStyleMessages() {
+ StatusBarNotification sbn = new SbnBuilder()
+ .setNotification(mNotification1)
+ .build();
+
+ List<Notification.MessagingStyle.Message> messages =
+ getMessagingStyleMessages(sbn.getNotification());
+
+ assertThat(messages.size()).isEqualTo(3);
+ assertThat(messages.get(0).getText().toString()).isEqualTo(NOTIFICATION_TEXT_2);
+ }
+
+ @Test
+ public void testIsMissedCall_notMissedCall() {
+ assertFalse(isMissedCall(mNotificationEntry1));
+ }
+
+ @Test
+ public void testIsMissedCall_missedCall() {
+ assertTrue(isMissedCall(mMissedCallNotificationEntry));
+ }
+
+ @Test
+ public void testisMissedCallOrHasContent_NoContent() {
+ assertFalse(isMissedCallOrHasContent(mNoContentNotificationEntry));
+ }
+
+ @Test
+ public void testisMissedCallOrHasContent_Hasontent() {
+ assertTrue(isMissedCallOrHasContent(mNotificationEntry1));
+ }
+
+ @Test
+ public void testGetHighestPriorityNotification_missedCallHigherPriority() {
+ Set<NotificationEntry> notifications = Set.of(
+ mNotificationEntry1, mMissedCallNotificationEntry);
+
+ assertThat(getHighestPriorityNotification(notifications))
+ .isEqualTo(mMissedCallNotificationEntry);
+ }
+
+ @Test
+ public void testGetHighestPriorityNotification_moreRecentLastMessage() {
+ Set<NotificationEntry> notifications = Set.of(
+ mNotificationEntry1, mNotificationEntry2);
+
+ assertThat(getHighestPriorityNotification(notifications))
+ .isEqualTo(mNotificationEntry1);
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTest.java
index 24a63e7a2c73..50ab1c73227e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTest.java
@@ -18,12 +18,11 @@ package com.android.systemui.people;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
import android.app.people.ConversationChannel;
-import android.app.people.IPeopleManager;
-import android.content.pm.LauncherApps;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.net.Uri;
@@ -36,8 +35,8 @@ import android.widget.RemoteViews;
import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
import com.android.systemui.shared.system.PeopleProviderUtils;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import junit.framework.Assert;
@@ -69,13 +68,11 @@ public class PeopleProviderTest extends SysuiTestCase {
private Bundle mExtras = new Bundle();
@Mock
- private LauncherApps mLauncherApps;
- @Mock
private PackageManager mPackageManager;
@Mock
- private IPeopleManager mPeopleManager;
+ private PeopleSpaceWidgetManager mPeopleSpaceWidgetManager;
@Mock
- private NotificationEntryManager mNotificationEntryManager;
+ private RemoteViews mRemoteViews;
@Before
public void setUp() throws Exception {
@@ -85,9 +82,7 @@ public class PeopleProviderTest extends SysuiTestCase {
PeopleProviderTestable provider = new PeopleProviderTestable();
provider.initializeForTesting(
mContext, PeopleProviderUtils.PEOPLE_PROVIDER_AUTHORITY);
- provider.setLauncherApps(mLauncherApps);
- provider.setPeopleManager(mPeopleManager);
- provider.setNotificationEntryManager(mNotificationEntryManager);
+ provider.setPeopleSpaceWidgetManager(mPeopleSpaceWidgetManager);
mContext.getContentResolver().addProvider(
PeopleProviderUtils.PEOPLE_PROVIDER_AUTHORITY, provider);
@@ -95,9 +90,9 @@ public class PeopleProviderTest extends SysuiTestCase {
PeopleProviderUtils.GET_PEOPLE_TILE_PREVIEW_PERMISSION,
PackageManager.PERMISSION_GRANTED);
- when(mPeopleManager.getConversation(
- eq(PACKAGE_NAME_A), eq(USER_HANDLE_A.getIdentifier()), eq(SHORTCUT_ID_A)))
- .thenReturn(mConversationChannel);
+ when(mPeopleSpaceWidgetManager.getPreview(
+ eq(SHORTCUT_ID_A), eq(USER_HANDLE_A), eq(PACKAGE_NAME_A), any()))
+ .thenReturn(mRemoteViews);
mExtras.putString(PeopleProviderUtils.EXTRAS_KEY_SHORTCUT_ID, SHORTCUT_ID_A);
mExtras.putString(PeopleProviderUtils.EXTRAS_KEY_PACKAGE_NAME, PACKAGE_NAME_A);
@@ -146,8 +141,8 @@ public class PeopleProviderTest extends SysuiTestCase {
@Test
public void testPermissionGrantedNoConversationForShortcutReturnsNull() throws RemoteException {
- when(mPeopleManager.getConversation(
- eq(PACKAGE_NAME_A), eq(USER_HANDLE_A.getIdentifier()), eq(SHORTCUT_ID_A)))
+ when(mPeopleSpaceWidgetManager.getPreview(
+ eq(SHORTCUT_ID_A), eq(USER_HANDLE_A), eq(PACKAGE_NAME_A), any()))
.thenReturn(null);
try {
Bundle result = mContext.getContentResolver().call(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTestable.java b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTestable.java
index 6834fa54a084..3e6d6746a997 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTestable.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleProviderTestable.java
@@ -16,12 +16,10 @@
package com.android.systemui.people;
-import android.app.people.IPeopleManager;
import android.content.Context;
-import android.content.pm.LauncherApps;
import android.content.pm.ProviderInfo;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.people.widget.PeopleSpaceWidgetManager;
public class PeopleProviderTestable extends PeopleProvider {
@@ -32,15 +30,7 @@ public class PeopleProviderTestable extends PeopleProvider {
attachInfoForTesting(context, info);
}
- void setLauncherApps(LauncherApps launcherApps) {
- mLauncherApps = launcherApps;
- }
-
- void setPeopleManager(IPeopleManager peopleManager) {
- mPeopleManager = peopleManager;
- }
-
- void setNotificationEntryManager(NotificationEntryManager notificationEntryManager) {
- mNotificationEntryManager = notificationEntryManager;
+ void setPeopleSpaceWidgetManager(PeopleSpaceWidgetManager peopleSpaceWidgetManager) {
+ mPeopleSpaceWidgetManager = peopleSpaceWidgetManager;
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java
index 81ca4c898290..c929073d9a09 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java
@@ -51,19 +51,15 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.ContactsContract;
-import android.service.notification.StatusBarNotification;
import android.testing.AndroidTestingRunner;
import android.util.DisplayMetrics;
import androidx.test.filters.SmallTest;
import com.android.internal.appwidget.IAppWidgetService;
-import com.android.internal.util.ArrayUtils;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.people.widget.PeopleTileKey;
import com.android.systemui.statusbar.NotificationListener;
-import com.android.systemui.statusbar.SbnBuilder;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
@@ -228,41 +224,7 @@ public class PeopleSpaceUtilsTest extends SysuiTestCase {
}
@Test
- public void testGetMessagingStyleMessagesNoMessage() {
- Notification notification = new Notification.Builder(mContext, "test")
- .setContentTitle("TEST_TITLE")
- .setContentText("TEST_TEXT")
- .setShortcutId(SHORTCUT_ID_1)
- .build();
- StatusBarNotification sbn = new SbnBuilder()
- .setNotification(notification)
- .build();
-
- List<Notification.MessagingStyle.Message> messages =
- PeopleSpaceUtils.getMessagingStyleMessages(sbn.getNotification());
-
- assertThat(ArrayUtils.isEmpty(messages)).isTrue();
- }
-
- @Test
- public void testGetMessagingStyleMessages() {
- StatusBarNotification sbn = new SbnBuilder()
- .setNotification(mNotification1)
- .build();
-
- List<Notification.MessagingStyle.Message> messages =
- PeopleSpaceUtils.getMessagingStyleMessages(sbn.getNotification());
-
- assertThat(messages.size()).isEqualTo(3);
- assertThat(messages.get(0).getText().toString()).isEqualTo(NOTIFICATION_TEXT_2);
- }
-
- @Test
public void testAugmentTileFromNotification() {
- StatusBarNotification sbn = new SbnBuilder()
- .setNotification(mNotification1)
- .build();
-
PeopleSpaceTile tile =
new PeopleSpaceTile
.Builder(SHORTCUT_ID_1, "userName", ICON, new Intent())
@@ -270,17 +232,13 @@ public class PeopleSpaceUtilsTest extends SysuiTestCase {
.setUserHandle(new UserHandle(0))
.build();
PeopleSpaceTile actual = PeopleSpaceUtils
- .augmentTileFromNotification(mContext, tile, sbn);
+ .augmentTileFromNotification(mContext, tile, mNotificationEntry1, 0);
assertThat(actual.getNotificationContent().toString()).isEqualTo(NOTIFICATION_TEXT_2);
}
@Test
public void testAugmentTileFromNotificationNoContent() {
- StatusBarNotification sbn = new SbnBuilder()
- .setNotification(mNotification3)
- .build();
-
PeopleSpaceTile tile =
new PeopleSpaceTile
.Builder(SHORTCUT_ID_3, "userName", ICON, new Intent())
@@ -288,107 +246,12 @@ public class PeopleSpaceUtilsTest extends SysuiTestCase {
.setUserHandle(new UserHandle(0))
.build();
PeopleSpaceTile actual = PeopleSpaceUtils
- .augmentTileFromNotification(mContext, tile, sbn);
+ .augmentTileFromNotification(mContext, tile, mNotificationEntry3, 0);
assertThat(actual.getNotificationContent()).isEqualTo(null);
}
@Test
- public void testAugmentTileFromVisibleNotifications() {
- PeopleSpaceTile tile =
- new PeopleSpaceTile
- .Builder(SHORTCUT_ID_1, "userName", ICON, new Intent())
- .setPackageName(PACKAGE_NAME)
- .setUserHandle(new UserHandle(0))
- .build();
- PeopleSpaceTile actual = PeopleSpaceUtils
- .augmentTileFromVisibleNotifications(mContext, tile,
- Map.of(new PeopleTileKey(mNotificationEntry1), mNotificationEntry1));
-
- assertThat(actual.getNotificationContent().toString()).isEqualTo(NOTIFICATION_TEXT_2);
- }
-
- @Test
- public void testAugmentTileFromVisibleNotificationsDifferentShortcutId() {
- PeopleSpaceTile tile =
- new PeopleSpaceTile
- .Builder(SHORTCUT_ID_4, "userName", ICON, new Intent())
- .setPackageName(PACKAGE_NAME)
- .setUserHandle(new UserHandle(0))
- .build();
- PeopleSpaceTile actual = PeopleSpaceUtils
- .augmentTileFromVisibleNotifications(mContext, tile,
- Map.of(new PeopleTileKey(mNotificationEntry1), mNotificationEntry1));
-
- assertThat(actual.getNotificationContent()).isEqualTo(null);
- }
-
- @Test
- public void testAugmentTilesFromVisibleNotificationsSingleTile() {
- PeopleSpaceTile tile =
- new PeopleSpaceTile
- .Builder(SHORTCUT_ID_1, "userName", ICON, new Intent())
- .setPackageName(PACKAGE_NAME)
- .setUserHandle(new UserHandle(0))
- .build();
- List<PeopleSpaceTile> actualList = PeopleSpaceUtils
- .augmentTilesFromVisibleNotifications(
- mContext, List.of(tile), mNotificationEntryManager);
-
- assertThat(actualList.size()).isEqualTo(1);
- assertThat(actualList.get(0).getNotificationContent().toString())
- .isEqualTo(NOTIFICATION_TEXT_2);
-
- verify(mNotificationEntryManager, times(1)).getVisibleNotifications();
- }
-
- @Test
- public void testAugmentTilesFromVisibleNotificationsMultipleTiles() {
- PeopleSpaceTile tile1 =
- new PeopleSpaceTile
- .Builder(SHORTCUT_ID_1, "userName", ICON, new Intent())
- .setPackageName(PACKAGE_NAME)
- .setUserHandle(new UserHandle(0))
- .build();
- PeopleSpaceTile tile2 =
- new PeopleSpaceTile
- .Builder(SHORTCUT_ID_2, "userName2", ICON, new Intent())
- .setPackageName(PACKAGE_NAME)
- .setUserHandle(new UserHandle(0))
- .build();
- List<PeopleSpaceTile> actualList = PeopleSpaceUtils
- .augmentTilesFromVisibleNotifications(mContext, List.of(tile1, tile2),
- mNotificationEntryManager);
-
- assertThat(actualList.size()).isEqualTo(2);
- assertThat(actualList.get(0).getNotificationContent().toString())
- .isEqualTo(NOTIFICATION_TEXT_2);
- assertThat(actualList.get(1).getNotificationContent().toString())
- .isEqualTo(NOTIFICATION_TEXT_4);
-
- verify(mNotificationEntryManager, times(1)).getVisibleNotifications();
- }
-
- @Test
- public void testAugmentSingleTileFromVisibleNotificationsSingleTile() {
- PeopleSpaceTile tile =
- new PeopleSpaceTile
- .Builder(SHORTCUT_ID_1, "userName", ICON, new Intent())
- .setPackageName(PACKAGE_NAME)
- .setUserHandle(new UserHandle(0))
- .build();
- PeopleSpaceTile augmentedTile = PeopleSpaceUtils
- .augmentSingleTileFromVisibleNotifications(
- mContext, tile, mNotificationEntryManager);
-
- assertThat(augmentedTile).isNotNull();
- assertThat(augmentedTile.getNotificationContent().toString())
- .isEqualTo(NOTIFICATION_TEXT_2);
-
- verify(mNotificationEntryManager, times(1)).getVisibleNotifications();
- }
-
- @Test
public void testDoNotUpdateSingleConversationAppWidgetWhenNotBirthday() {
int[] widgetIdsArray = {WIDGET_ID_WITH_SHORTCUT};
when(mMockCursor.moveToNext()).thenReturn(true, false);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java
index e9be8d8dad3c..725e5d4523a7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java
@@ -68,6 +68,7 @@ import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Bundle;
+import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.service.notification.ConversationChannelWrapper;
@@ -86,6 +87,7 @@ import com.android.systemui.statusbar.SbnBuilder;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NoManSimulator;
import com.android.systemui.statusbar.notification.collection.NoManSimulator.NotifEvent;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.util.time.FakeSystemClock;
@@ -99,8 +101,10 @@ import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -124,7 +128,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
private static final String SHORTCUT_ID = "101";
private static final String OTHER_SHORTCUT_ID = "102";
private static final String NOTIFICATION_KEY = "0|com.android.systemui.tests|0|null|0";
- private static final String NOTIFICATION_CONTENT = "message text";
+ private static final String NOTIFICATION_CONTENT_1 = "message text 1";
private static final Uri URI = Uri.parse("fake_uri");
private static final Icon ICON = Icon.createWithResource("package", R.drawable.ic_android);
private static final PeopleTileKey KEY = new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A);
@@ -140,7 +144,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
.setPackageName(TEST_PACKAGE_A)
.setUserHandle(new UserHandle(0))
.setNotificationKey(NOTIFICATION_KEY + "1")
- .setNotificationContent(NOTIFICATION_CONTENT)
+ .setNotificationContent(NOTIFICATION_CONTENT_1)
.setNotificationDataUri(URI)
.setContactUri(URI)
.build();
@@ -154,8 +158,8 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
// Same contact uri.
.setContactUri(URI)
.build();
- private final ShortcutInfo mShortcutInfo = new ShortcutInfo.Builder(mContext,
- SHORTCUT_ID).setLongLabel("name").build();
+ private ShortcutInfo mShortcutInfo;
+ private NotificationEntry mNotificationEntry;
private PeopleSpaceWidgetManager mManager;
@@ -215,6 +219,17 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
when(mAppWidgetManager.getAppWidgetOptions(eq(WIDGET_ID_WITHOUT_SHORTCUT)))
.thenReturn(new Bundle());
when(mUserManager.isQuietModeEnabled(any())).thenReturn(false);
+
+ when(mMockContext.getPackageName()).thenReturn(TEST_PACKAGE_A);
+ when(mMockContext.getUserId()).thenReturn(0);
+ mShortcutInfo = new ShortcutInfo.Builder(mMockContext,
+ SHORTCUT_ID).setLongLabel("name").build();
+ mNotificationEntry = new NotificationEntryBuilder()
+ .setSbn(createNotification(
+ SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ false))
+ .setId(1)
+ .setShortcutInfo(mShortcutInfo)
+ .build();
}
@Test
@@ -490,7 +505,8 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
ACTIVITY_GAME).setDescription("Playing a game!").build();
ConversationStatus status2 = new ConversationStatus.Builder(OTHER_SHORTCUT_ID,
ACTIVITY_BIRTHDAY).build();
- ConversationChannel conversationChannel = getConversationWithShortcutId(OTHER_SHORTCUT_ID,
+ ConversationChannel conversationChannel = getConversationWithShortcutId(
+ new PeopleTileKey(OTHER_SHORTCUT_ID, 0, TEST_PACKAGE_A),
Arrays.asList(status1, status2));
mManager.updateWidgetsWithConversationChanged(conversationChannel);
mClock.advanceTime(MIN_LINGER_DURATION);
@@ -508,7 +524,8 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
ConversationStatus status = new ConversationStatus.Builder(SHORTCUT_ID,
ACTIVITY_GAME).setDescription("Playing a game!").build();
- ConversationChannel conversationChannel = getConversationWithShortcutId(SHORTCUT_ID,
+ ConversationChannel conversationChannel = getConversationWithShortcutId(
+ new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A),
Arrays.asList(status));
mManager.updateWidgetsWithConversationChanged(conversationChannel);
mClock.advanceTime(MIN_LINGER_DURATION);
@@ -529,8 +546,8 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
ConversationStatus status = new ConversationStatus.Builder(SHORTCUT_ID,
ACTIVITY_ANNIVERSARY).build();
- ConversationChannel conversationChannel = getConversationWithShortcutId(SHORTCUT_ID,
- Arrays.asList(status));
+ ConversationChannel conversationChannel = getConversationWithShortcutId(
+ new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A), Arrays.asList(status));
mManager.updateWidgetsWithConversationChanged(conversationChannel);
mClock.advanceTime(MIN_LINGER_DURATION);
@@ -550,11 +567,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
public void testUpdateNotificationPostedIfExistingTile() throws Exception {
int[] widgetIdsArray = {WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ false))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -563,7 +584,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
Bundle bundle = mBundleArgumentCaptor.getValue();
PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tile.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
- assertThat(tile.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT);
+ assertThat(tile.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
}
@@ -620,11 +641,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
throws Exception {
int[] widgetIdsArray = {WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ false, /* isMissedCall = */ true))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -645,11 +670,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
throws Exception {
int[] widgetIdsArray = {WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ true))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -659,7 +688,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tile.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
- assertThat(tile.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT);
+ assertThat(tile.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
}
@@ -670,11 +699,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
int[] widgetIdsArray =
{WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_SAME_URI};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ true))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -684,7 +717,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
- NOTIFICATION_CONTENT);
+ NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
verify(mAppWidgetManager, times(1))
@@ -693,7 +726,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
Bundle bundleForSameUriTile = requireNonNull(mBundleArgumentCaptor.getValue());
PeopleSpaceTile tileWithSameUri = bundleForSameUriTile.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithSameUri.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
- assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT);
+ assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
any());
}
@@ -704,12 +737,19 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
int[] widgetIdsArray =
{WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_SAME_URI};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ true))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
+
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of());
NotifEvent notif1b = mNoMan.retractNotif(notif1.sbn.cloneLight(), 0);
mClock.advanceTime(MIN_LINGER_DURATION);
@@ -733,45 +773,11 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
}
@Test
- public void testDoNotRemoveMissedCallIfMatchingUriTileMissingReadContactsPermissionWhenPosted()
- throws Exception {
- when(mPackageManager.checkPermission(any(),
- eq(PERSON_TILE_WITH_SAME_URI.getPackageName()))).thenReturn(
- PERMISSION_HARD_DENIED);
- int[] widgetIdsArray =
- {WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_SAME_URI};
- when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
- .setSbn(createNotification(
- SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ true))
- .setId(1));
- mClock.advanceTime(MIN_LINGER_DURATION);
- // We should only try to remove the notification if the Missed Call was added when posted.
- NotifEvent notif1b = mNoMan.retractNotif(notif1.sbn.cloneLight(), 0);
- mClock.advanceTime(MIN_LINGER_DURATION);
-
- verify(mAppWidgetManager, times(2)).updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
- assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(null);
- assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(null);
- verify(mAppWidgetManager, times(2)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
- any());
- verify(mAppWidgetManager, times(0))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI), any());
- verify(mAppWidgetManager, times(0)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
- any());
- }
-
- @Test
public void testUpdateMissedCallNotificationWithContentPostedIfMatchingUriTileFromSender()
throws Exception {
int[] widgetIdsArray =
{WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_SAME_URI};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
Notification notificationWithPersonOnlyInSender =
createMessagingStyleNotificationWithoutExtras(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */
@@ -782,9 +788,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
.setUid(0)
.setUser(new UserHandle(0))
.build();
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
+ .setRank(1)
+ .setShortcutInfo(mShortcutInfo)
.setSbn(sbn)
- .setId(1));
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -794,7 +806,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
- NOTIFICATION_CONTENT);
+ NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
verify(mAppWidgetManager, times(1))
@@ -803,7 +815,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
Bundle bundleForSameUriTile = requireNonNull(mBundleArgumentCaptor.getValue());
PeopleSpaceTile tileWithSameUri = bundleForSameUriTile.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithSameUri.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
- assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT);
+ assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
any());
}
@@ -814,14 +826,13 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
int[] widgetIdsArray =
{WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_SAME_URI};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
// Notification posted without any Person attached.
Notification notificationWithoutPersonObject =
createMessagingStyleNotificationWithoutExtras(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */
true).setStyle(new Notification.MessagingStyle("sender")
.addMessage(
- new Notification.MessagingStyle.Message(NOTIFICATION_CONTENT, 10,
+ new Notification.MessagingStyle.Message(NOTIFICATION_CONTENT_1, 10,
"sender"))
).build();
StatusBarNotification sbn = new SbnBuilder()
@@ -830,9 +841,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
.setUid(0)
.setUser(new UserHandle(0))
.build();
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(sbn)
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
+
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -842,7 +859,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
- NOTIFICATION_CONTENT);
+ NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
// Do not update since notification doesn't include a Person reference.
@@ -863,11 +880,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
int[] widgetIdsArray =
{WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_DIFFERENT_URI};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ true))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -877,7 +898,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
- NOTIFICATION_CONTENT);
+ NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
// Do not update since missing permission to read contacts.
@@ -897,11 +918,15 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
int[] widgetIdsArray =
{WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT, WIDGET_ID_WITH_SAME_URI};
when(mAppWidgetManager.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
-
- NotifEvent notif1 = mNoMan.postNotif(new NotificationEntryBuilder()
+ NotificationEntryBuilder builder = new NotificationEntryBuilder()
.setSbn(createNotification(
SHORTCUT_ID, /* isMessagingStyle = */ true, /* isMissedCall = */ true))
- .setId(1));
+ .setShortcutInfo(mShortcutInfo)
+ .setId(1);
+ NotificationEntry entry = builder.build();
+ when(mNotificationEntryManager.getVisibleNotifications()).thenReturn(List.of(entry));
+
+ NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
verify(mAppWidgetManager, times(1))
@@ -911,14 +936,18 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
- NOTIFICATION_CONTENT);
+ NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
// Do not update since missing permission to read contacts.
- verify(mAppWidgetManager, times(0))
+ verify(mAppWidgetManager, times(1))
.updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI),
- any());
- verify(mAppWidgetManager, times(0)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
+ mBundleArgumentCaptor.capture());
+ Bundle noNotificationBundle = requireNonNull(mBundleArgumentCaptor.getValue());
+ PeopleSpaceTile tileNoNotification =
+ noNotificationBundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ assertThat(tileNoNotification.getNotificationKey()).isNull();
+ verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
any());
}
@@ -952,7 +981,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
public void testAddThenReconfigureWidgetsUpdatesStorageCacheAndListeners()
throws Exception {
clearStorage();
- mManager.addNewWidget(WIDGET_ID_WITH_SHORTCUT, PERSON_TILE);
+ mManager.addNewWidget(WIDGET_ID_WITH_SHORTCUT, new PeopleTileKey(PERSON_TILE));
// Check storage.
SharedPreferences widgetSp = mContext.getSharedPreferences(
String.valueOf(WIDGET_ID_WITH_SHORTCUT),
@@ -971,7 +1000,8 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
eq(LauncherApps.FLAG_CACHE_PEOPLE_TILE_SHORTCUTS));
// Reconfigure WIDGET_ID_WITH_SHORTCUT from PERSON_TILE to PERSON_TILE_WITH_SAME_URI
- mManager.addNewWidget(WIDGET_ID_WITH_SHORTCUT, PERSON_TILE_WITH_SAME_URI);
+ mManager.addNewWidget(
+ WIDGET_ID_WITH_SHORTCUT, new PeopleTileKey(PERSON_TILE_WITH_SAME_URI));
// Check listener is removed and shortcut is uncached.
verify(mPeopleManager).unregisterConversationListener(any());
@@ -1120,30 +1150,32 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
@Test
public void testGetPeopleTileFromPersistentStorageExistingConversation()
throws Exception {
- when(mIPeopleManager.getConversation(PACKAGE_NAME, 0, SHORTCUT_ID)).thenReturn(
- getConversationWithShortcutId(SHORTCUT_ID));
- PeopleTileKey key = new PeopleTileKey(SHORTCUT_ID, 0, PACKAGE_NAME);
+ ConversationChannel channel = getConversationWithShortcutId(
+ new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A));
+ when(mIPeopleManager.getConversation(TEST_PACKAGE_A, 0, SHORTCUT_ID)).thenReturn(channel);
+ PeopleTileKey key = new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A);
PeopleSpaceTile tile = mManager.getTileFromPersistentStorage(key);
assertThat(tile.getId()).isEqualTo(key.getShortcutId());
}
@Test
- public void testGetPeopleTileFromPersistentStorageNoConversation() {
- PeopleTileKey key = new PeopleTileKey(SHORTCUT_ID, 0, PACKAGE_NAME);
+ public void testGetPeopleTileFromPersistentStorageNoConversation() throws RemoteException {
+ when(mIPeopleManager.getConversation(TEST_PACKAGE_A, 0, SHORTCUT_ID)).thenReturn(null);
+ PeopleTileKey key = new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A);
PeopleSpaceTile tile = mManager.getTileFromPersistentStorage(key);
assertThat(tile).isNull();
}
@Test
public void testRequestPinAppWidgetExistingConversation() throws Exception {
- when(mMockContext.getPackageName()).thenReturn(PACKAGE_NAME);
- when(mMockContext.getUserId()).thenReturn(0);
- when(mIPeopleManager.getConversation(PACKAGE_NAME, 0, SHORTCUT_ID))
- .thenReturn(getConversationWithShortcutId(SHORTCUT_ID));
+ ConversationChannel channel = getConversationWithShortcutId(
+ new PeopleTileKey(SHORTCUT_ID, 0, TEST_PACKAGE_A));
+ when(mIPeopleManager.getConversation(TEST_PACKAGE_A, 0, SHORTCUT_ID))
+ .thenReturn(channel);
when(mAppWidgetManager.requestPinAppWidget(any(), any(), any())).thenReturn(true);
ShortcutInfo info = new ShortcutInfo.Builder(mMockContext, SHORTCUT_ID).build();
- boolean valid = mManager.requestPinAppWidget(info);
+ boolean valid = mManager.requestPinAppWidget(info, new Bundle());
assertThat(valid).isTrue();
verify(mAppWidgetManager, times(1)).requestPinAppWidget(
@@ -1152,17 +1184,66 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
@Test
public void testRequestPinAppWidgetNoConversation() throws Exception {
- when(mMockContext.getPackageName()).thenReturn(PACKAGE_NAME);
- when(mMockContext.getUserId()).thenReturn(0);
- when(mIPeopleManager.getConversation(PACKAGE_NAME, 0, SHORTCUT_ID)).thenReturn(null);
+ when(mIPeopleManager.getConversation(TEST_PACKAGE_A, 0, SHORTCUT_ID)).thenReturn(null);
ShortcutInfo info = new ShortcutInfo.Builder(mMockContext, SHORTCUT_ID).build();
- boolean valid = mManager.requestPinAppWidget(info);
+ boolean valid = mManager.requestPinAppWidget(info, new Bundle());
assertThat(valid).isFalse();
verify(mAppWidgetManager, never()).requestPinAppWidget(any(), any(), any());
}
+ @Test
+ public void testAugmentTileFromNotifications() {
+ PeopleSpaceTile tile =
+ new PeopleSpaceTile
+ .Builder(SHORTCUT_ID, "userName", ICON, new Intent())
+ .setPackageName(TEST_PACKAGE_A)
+ .setUserHandle(new UserHandle(0))
+ .build();
+ PeopleSpaceTile actual = mManager.augmentTileFromNotifications(tile, EMPTY_STRING,
+ Map.of(new PeopleTileKey(mNotificationEntry),
+ new HashSet<>(Collections.singleton(mNotificationEntry))));
+
+ assertThat(actual.getNotificationContent().toString()).isEqualTo(NOTIFICATION_CONTENT_1);
+ }
+
+ @Test
+ public void testAugmentTileFromNotificationsDifferentShortcutId() {
+ PeopleSpaceTile tile =
+ new PeopleSpaceTile
+ .Builder(OTHER_SHORTCUT_ID, "userName", ICON, new Intent())
+ .setPackageName(TEST_PACKAGE_A)
+ .setUserHandle(new UserHandle(0))
+ .build();
+ PeopleSpaceTile actual = mManager
+ .augmentTileFromNotifications(tile, EMPTY_STRING,
+ Map.of(new PeopleTileKey(mNotificationEntry),
+ new HashSet<>(Collections.singleton(mNotificationEntry))));
+
+ assertThat(actual.getNotificationContent()).isEqualTo(null);
+ }
+
+ @Test
+ public void testAugmentTileFromNotificationEntryManager() {
+ PeopleSpaceTile tile =
+ new PeopleSpaceTile
+ .Builder(SHORTCUT_ID, "userName", ICON, new Intent())
+ .setPackageName(TEST_PACKAGE_A)
+ .setUserHandle(new UserHandle(0))
+ .build();
+ when(mNotificationEntryManager.getVisibleNotifications())
+ .thenReturn(List.of(mNotificationEntry));
+
+ PeopleSpaceTile actual =
+ mManager.augmentTileFromNotificationEntryManager(tile);
+
+ assertThat(actual.getNotificationContent().toString()).isEqualTo(NOTIFICATION_CONTENT_1);
+
+ verify(mNotificationEntryManager, times(1))
+ .getVisibleNotifications();
+ }
+
/**
* Adds another widget for {@code PERSON_TILE} with widget ID: {@code
* SECOND_WIDGET_ID_WITH_SHORTCUT}.
@@ -1179,10 +1260,11 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
setStorageForTile(tile.getId(), tile.getPackageName(), widgetId, tile.getContactUri());
Bundle options = new Bundle();
options.putParcelable(OPTIONS_PEOPLE_TILE, tile);
+ ConversationChannel channel = getConversationWithShortcutId(new PeopleTileKey(tile));
when(mAppWidgetManager.getAppWidgetOptions(eq(widgetId)))
.thenReturn(options);
- when(mIPeopleManager.getConversation(tile.getPackageName(), 0, tile.getId())).thenReturn(
- getConversationWithShortcutId(tile.getId()));
+ when(mIPeopleManager.getConversation(tile.getPackageName(), 0, tile.getId()))
+ .thenReturn(channel);
when(mPackageManager.checkPermission(any(), eq(tile.getPackageName()))).thenReturn(
PERMISSION_GRANTED);
}
@@ -1190,17 +1272,19 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
/**
* Returns a single conversation associated with {@code shortcutId}.
*/
- private ConversationChannel getConversationWithShortcutId(String shortcutId) throws Exception {
- return getConversationWithShortcutId(shortcutId, Arrays.asList());
+ private ConversationChannel getConversationWithShortcutId(PeopleTileKey key) throws Exception {
+ return getConversationWithShortcutId(key, Arrays.asList());
}
/**
* Returns a single conversation associated with {@code shortcutId} and {@code statuses}.
*/
- private ConversationChannel getConversationWithShortcutId(String shortcutId,
+ private ConversationChannel getConversationWithShortcutId(PeopleTileKey key,
List<ConversationStatus> statuses) throws Exception {
- ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext, shortcutId).setLongLabel(
- "name").setPerson(PERSON).build();
+ when(mMockContext.getPackageName()).thenReturn(key.getPackageName());
+ when(mMockContext.getUserId()).thenReturn(key.getUserId());
+ ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mMockContext, key.getShortcutId())
+ .setLongLabel("name").setPerson(PERSON).build();
ConversationChannel convo = new ConversationChannel(shortcutInfo, 0, null, null,
0L, false, false, statuses);
return convo;
@@ -1220,7 +1304,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
if (isMessagingStyle) {
builder.setStyle(new Notification.MessagingStyle(PERSON)
.addMessage(
- new Notification.MessagingStyle.Message(NOTIFICATION_CONTENT, 10,
+ new Notification.MessagingStyle.Message(NOTIFICATION_CONTENT_1, 10,
PERSON))
);
}
@@ -1239,7 +1323,7 @@ public class PeopleSpaceWidgetManagerTest extends SysuiTestCase {
if (isMessagingStyle) {
builder.setStyle(new Notification.MessagingStyle(PERSON)
.addMessage(
- new Notification.MessagingStyle.Message(NOTIFICATION_CONTENT, 10,
+ new Notification.MessagingStyle.Message(NOTIFICATION_CONTENT_1, 10,
PERSON))
);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java
index bacc4930815b..53eae8c46d2f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerTest.java
@@ -32,6 +32,7 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.testing.UiEventLoggerFake;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QSTileView;
@@ -94,6 +95,7 @@ public class QSPanelControllerTest extends SysuiTestCase {
QSTileView mQSTileView;
@Mock
PagedTileLayout mPagedTileLayout;
+ FalsingManagerFake mFalsingManager = new FalsingManagerFake();
@Mock
FeatureFlags mFeatureFlags;
@@ -121,7 +123,7 @@ public class QSPanelControllerTest extends SysuiTestCase {
mQSTileHost, mQSCustomizerController, true, mMediaHost,
mQSTileRevealControllerFactory, mDumpManager, mMetricsLogger, mUiEventLogger,
mQSLogger, mBrightnessControllerFactory, mToggleSliderViewControllerFactory,
- mFeatureFlags
+ mFalsingManager, mFeatureFlags
);
mController.init();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
index 12e341a5f135..5d29f520e8a9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
@@ -31,7 +31,6 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
@@ -239,7 +238,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
when(mBuilder.build()).thenReturn(mock(PriorityOnboardingDialogController.class));
- when(mPeopleSpaceWidgetManager.requestPinAppWidget(any())).thenReturn(true);
+ when(mPeopleSpaceWidgetManager.requestPinAppWidget(any(), any())).thenReturn(true);
}
@Test
@@ -1289,7 +1288,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
mNotificationInfo.findViewById(R.id.done).performClick();
// THEN the user is presented with the People Tile pinning request
- verify(mPeopleSpaceWidgetManager, times(1)).requestPinAppWidget(any());
+ verify(mPeopleSpaceWidgetManager, times(1)).requestPinAppWidget(any(), any());
}
@Test
@@ -1325,7 +1324,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
mNotificationInfo.findViewById(R.id.done).performClick();
// THEN the user is not presented with the People Tile pinning request
- verify(mPeopleSpaceWidgetManager, never()).requestPinAppWidget(mShortcutInfo);
+ verify(mPeopleSpaceWidgetManager, never()).requestPinAppWidget(eq(mShortcutInfo), any());
}
@Test
@@ -1364,6 +1363,6 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
mNotificationInfo.findViewById(R.id.done).performClick();
// THEN the user is not presented with the People Tile pinning request
- verify(mPeopleSpaceWidgetManager, never()).requestPinAppWidget(mShortcutInfo);
+ verify(mPeopleSpaceWidgetManager, never()).requestPinAppWidget(eq(mShortcutInfo), any());
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
index 929a7e1543fb..0e3e0cc8ea97 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragmentTest.java
@@ -184,7 +184,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
Mockito.verify(mOngoingCallController).addCallback(ongoingCallListenerCaptor.capture());
OngoingCallListener listener = Objects.requireNonNull(ongoingCallListenerCaptor.getValue());
- when(mOngoingCallController.getHasOngoingCall()).thenReturn(true);
+ when(mOngoingCallController.hasOngoingCall()).thenReturn(true);
listener.onOngoingCallStarted(/* animate= */ false);
assertEquals(View.VISIBLE,
@@ -205,7 +205,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
Mockito.verify(mOngoingCallController).addCallback(ongoingCallListenerCaptor.capture());
OngoingCallListener listener = Objects.requireNonNull(ongoingCallListenerCaptor.getValue());
- when(mOngoingCallController.getHasOngoingCall()).thenReturn(false);
+ when(mOngoingCallController.hasOngoingCall()).thenReturn(false);
listener.onOngoingCallEnded(/* animate= */ false);
assertEquals(View.GONE,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
index d87d1d1b92db..c244290fdacd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
@@ -19,14 +19,16 @@ package com.android.systemui.statusbar.phone.ongoingcall
import android.app.Notification
import android.app.PendingIntent
import android.app.Person
+import android.content.Intent
import android.service.notification.NotificationListenerService.REASON_USER_STOPPED
-import androidx.test.filters.SmallTest
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.view.LayoutInflater
import android.widget.LinearLayout
+import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
+import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.FeatureFlags
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
@@ -43,6 +45,7 @@ import org.mockito.Mock
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
import org.mockito.Mockito.never
+import org.mockito.Mockito.times
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
@@ -55,6 +58,7 @@ class OngoingCallControllerTest : SysuiTestCase() {
private lateinit var notifCollectionListener: NotifCollectionListener
@Mock private lateinit var mockOngoingCallListener: OngoingCallListener
+ @Mock private lateinit var mockActivityStarter: ActivityStarter
private lateinit var chipView: LinearLayout
@@ -71,7 +75,8 @@ class OngoingCallControllerTest : SysuiTestCase() {
`when`(featureFlags.isOngoingCallStatusBarChipEnabled).thenReturn(true)
val notificationCollection = mock(CommonNotifCollection::class.java)
- controller = OngoingCallController(notificationCollection, featureFlags, FakeSystemClock())
+ controller = OngoingCallController(
+ notificationCollection, featureFlags, FakeSystemClock(), mockActivityStarter)
controller.init()
controller.addCallback(mockOngoingCallListener)
controller.setChipView(chipView)
@@ -111,22 +116,24 @@ class OngoingCallControllerTest : SysuiTestCase() {
@Test
fun hasOngoingCall_noOngoingCallNotifSent_returnsFalse() {
- assertThat(controller.hasOngoingCall).isFalse()
+ assertThat(controller.hasOngoingCall()).isFalse()
}
@Test
fun hasOngoingCall_ongoingCallNotifSentAndChipViewSet_returnsTrue() {
notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
- assertThat(controller.hasOngoingCall).isTrue()
+ assertThat(controller.hasOngoingCall()).isTrue()
}
@Test
- fun hasOngoingCall_ongoingCallNotifSentButNoChipView_returnsFalse() {
- controller.setChipView(null)
+ fun hasOngoingCall_ongoingCallNotifSentButInvalidChipView_returnsFalse() {
+ val invalidChipView = LinearLayout(context)
+ controller.setChipView(invalidChipView)
+
notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
- assertThat(controller.hasOngoingCall).isFalse()
+ assertThat(controller.hasOngoingCall()).isFalse()
}
@Test
@@ -136,12 +143,42 @@ class OngoingCallControllerTest : SysuiTestCase() {
notifCollectionListener.onEntryUpdated(ongoingCallNotifEntry)
notifCollectionListener.onEntryRemoved(ongoingCallNotifEntry, REASON_USER_STOPPED)
- assertThat(controller.hasOngoingCall).isFalse()
+ assertThat(controller.hasOngoingCall()).isFalse()
+ }
+
+ /**
+ * This test fakes a theme change during an ongoing call.
+ *
+ * When a theme change happens, [CollapsedStatusBarFragment] and its views get re-created, so
+ * [OngoingCallController.setChipView] gets called with a new view. If there's an active ongoing
+ * call when the theme changes, the new view needs to be updated with the call information.
+ */
+ @Test
+ fun setChipView_whenHasOngoingCallIsTrue_listenerNotifiedWithNewView() {
+ // Start an ongoing call.
+ notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
+
+ lateinit var newChipView: LinearLayout
+ TestableLooper.get(this).runWithLooper {
+ newChipView = LayoutInflater.from(mContext)
+ .inflate(R.layout.ongoing_call_chip, null) as LinearLayout
+ }
+
+ // Change the chip view associated with the controller.
+ controller.setChipView(newChipView)
+
+ // Verify the listener was notified once for the initial call and again when the new view
+ // was set.
+ verify(mockOngoingCallListener, times(2)).onOngoingCallStarted(anyBoolean())
}
private fun createOngoingCallNotifEntry(): NotificationEntry {
val notificationEntryBuilder = NotificationEntryBuilder()
notificationEntryBuilder.modifyNotification(context).style = ongoingCallStyle
+
+ val contentIntent = mock(PendingIntent::class.java)
+ `when`(contentIntent.intent).thenReturn(mock(Intent::class.java))
+ notificationEntryBuilder.modifyNotification(context).setContentIntent(contentIntent)
return notificationEntryBuilder.build()
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
index 40439a2bebb2..f33c9e88c347 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
@@ -129,7 +129,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
protected int mSubId;
private NetworkCapabilities mNetCapabilities;
- private Network mNetwork;
private ConnectivityManager.NetworkCallback mDefaultCallbackInWifiTracker;
private ConnectivityManager.NetworkCallback mDefaultCallbackInNetworkController;
private ConnectivityManager.NetworkCallback mNetworkCallback;
@@ -174,10 +173,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
mMockCm = mock(ConnectivityManager.class);
mMockBd = mock(BroadcastDispatcher.class);
mMockNsm = mock(NetworkScoreManager.class);
- mNetwork = mock(Network.class);
mMockSubDefaults = mock(SubscriptionDefaults.class);
mNetCapabilities = new NetworkCapabilities();
- when(mNetwork.getNetId()).thenReturn(0);
when(mMockTm.isDataCapable()).thenReturn(true);
when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm);
doAnswer(invocation -> {
@@ -326,7 +323,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
new NetworkCapabilities.Builder(mNetCapabilities);
builder.setTransportInfo(info);
setConnectivityCommon(builder, networkType, validated, isConnected);
- mDefaultCallbackInNetworkController.onCapabilitiesChanged(mNetwork, builder.build());
+ mDefaultCallbackInNetworkController.onCapabilitiesChanged(
+ mock(Network.class), builder.build());
}
public void setConnectivityViaCallbackInNetworkController(
@@ -337,7 +335,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
builder.setTransportInfo(wifiInfo);
}
setConnectivityCommon(builder, networkType, validated, isConnected);
- mDefaultCallbackInNetworkController.onCapabilitiesChanged(mNetwork, builder.build());
+ mDefaultCallbackInNetworkController.onCapabilitiesChanged(
+ mock(Network.class), builder.build());
}
public void setConnectivityViaCallbackInWifiTracker(
@@ -351,10 +350,10 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
if (networkType == NetworkCapabilities.TRANSPORT_WIFI) {
if (isConnected) {
final NetworkCapabilities newCap = builder.build();
- mNetworkCallback.onAvailable(mNetwork);
- mNetworkCallback.onCapabilitiesChanged(mNetwork, newCap);
+ mNetworkCallback.onAvailable(mock(Network.class));
+ mNetworkCallback.onCapabilitiesChanged(mock(Network.class), newCap);
} else {
- mNetworkCallback.onLost(mNetwork);
+ mNetworkCallback.onLost(mock(Network.class));
}
}
}
@@ -368,11 +367,11 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
if (networkType == NetworkCapabilities.TRANSPORT_CELLULAR) {
if (isConnected) {
final NetworkCapabilities newCap = builder.build();
- mNetworkCallback.onAvailable(mNetwork);
- mNetworkCallback.onCapabilitiesChanged(mNetwork, newCap);
- mDefaultCallbackInWifiTracker.onCapabilitiesChanged(mNetwork, newCap);
+ mNetworkCallback.onAvailable(mock(Network.class));
+ mNetworkCallback.onCapabilitiesChanged(mock(Network.class), newCap);
+ mDefaultCallbackInWifiTracker.onCapabilitiesChanged(mock(Network.class), newCap);
} else {
- mNetworkCallback.onLost(mNetwork);
+ mNetworkCallback.onLost(mock(Network.class));
}
}
}
@@ -386,7 +385,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
}
setConnectivityCommon(builder, networkType, validated, isConnected);
mDefaultCallbackInWifiTracker.onCapabilitiesChanged(
- mNetwork, builder.build());
+ mock(Network.class), builder.build());
}
private static void setConnectivityCommon(NetworkCapabilities.Builder builder,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java
index 64127b9d1e6e..8ad6271bfc7e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/utils/leaks/FakeStatusBarIconController.java
@@ -66,6 +66,10 @@ public class FakeStatusBarIconController extends BaseLeakChecker<IconManager>
}
@Override
+ public void setCallStrengthIcons(String slot, List<CallIndicatorIconState> states) {
+ }
+
+ @Override
public void setNoCallingIcons(String slot, List<CallIndicatorIconState> states) {
}
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index e251700498ee..d922d2b06c89 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -1589,6 +1589,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
public ParceledListSlice<AppWidgetProviderInfo> getInstalledProvidersForProfile(int categoryFilter,
int profileId, String packageName) {
final int userId = UserHandle.getCallingUserId();
+ final int callingUid = Binder.getCallingUid();
if (DEBUG) {
Slog.i(TAG, "getInstalledProvidersForProfiles() " + userId);
@@ -1601,7 +1602,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
synchronized (mLock) {
if (mSecurityPolicy.isCallerInstantAppLocked()) {
- Slog.w(TAG, "Instant uid " + Binder.getCallingUid()
+ Slog.w(TAG, "Instant uid " + callingUid
+ " cannot access widget providers");
return ParceledListSlice.emptyList();
}
@@ -1614,11 +1615,12 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
for (int i = 0; i < providerCount; i++) {
Provider provider = mProviders.get(i);
AppWidgetProviderInfo info = provider.getInfoLocked(mContext);
+ final String providerPackageName = provider.id.componentName.getPackageName();
// Ignore an invalid provider, one not matching the filter,
// or one that isn't in the given package, if any.
boolean inPackage = packageName == null
- || provider.id.componentName.getPackageName().equals(packageName);
+ || providerPackageName.equals(packageName);
if (provider.zombie || (info.widgetCategory & categoryFilter) == 0 || !inPackage) {
continue;
}
@@ -1627,7 +1629,9 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
final int providerProfileId = info.getProfile().getIdentifier();
if (providerProfileId == profileId
&& mSecurityPolicy.isProviderInCallerOrInProfileAndWhitelListed(
- provider.id.componentName.getPackageName(), providerProfileId)) {
+ providerPackageName, providerProfileId)
+ && !mPackageManagerInternal.filterAppAccess(providerPackageName, callingUid,
+ userId)) {
result.add(cloneIfLocalBinder(info));
}
}
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index f8b770b4ec84..6bf496777ea3 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -1311,7 +1311,9 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
@Override
public void onServiceDied(@NonNull RemoteFillService service) {
Slog.w(TAG, "removing session because service died");
- forceRemoveFromServiceLocked();
+ synchronized (mLock) {
+ forceRemoveFromServiceLocked();
+ }
}
// AutoFillUiCallback
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 5cbcacf4e62c..5dc11c588ef2 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -132,7 +132,6 @@ java_library_static {
],
static_libs: [
- "protolog-lib",
"time_zone_distro",
"time_zone_distro_installer",
"android.hardware.authsecret-V1.0-java",
diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java
index a9eb2c110867..5dd9b0e8cbc6 100644
--- a/services/core/java/android/content/pm/PackageManagerInternal.java
+++ b/services/core/java/android/content/pm/PackageManagerInternal.java
@@ -825,6 +825,12 @@ public abstract class PackageManagerInternal {
String packageName, int userId);
/**
+ * Return the enabled setting for a package component (activity, receiver, service, provider).
+ */
+ public abstract @PackageManager.EnabledState int getComponentEnabledSetting(
+ @NonNull ComponentName componentName, int callingUid, int userId);
+
+ /**
* Extra field name for the token of a request to enable rollback for a
* package.
*/
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index feed2205dc41..c3a5d1f871bb 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -714,9 +714,6 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
Slog.w(TAG, "Callback is null in unregisterAdapter");
return;
}
- if (!checkConnectPermissionForPreflight(mContext)) {
- return;
- }
synchronized (mCallbacks) {
mCallbacks.unregister(callback);
}
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 16e6671fdf65..809ef41b4d38 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -2149,7 +2149,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
PermissionUtils.enforceNetworkStackPermission(mContext);
final ArrayList<NetworkState> result = new ArrayList<>();
- for (NetworkStateSnapshot snapshot : getAllNetworkStateSnapshot()) {
+ for (NetworkStateSnapshot snapshot : getAllNetworkStateSnapshots()) {
// NetworkStateSnapshot doesn't contain NetworkInfo, so need to fetch it from the
// NetworkAgentInfo.
final NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(snapshot.network);
@@ -2164,7 +2164,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
@NonNull
- public List<NetworkStateSnapshot> getAllNetworkStateSnapshot() {
+ public List<NetworkStateSnapshot> getAllNetworkStateSnapshots() {
// This contains IMSI details, so make sure the caller is privileged.
PermissionUtils.enforceNetworkStackPermission(mContext);
@@ -2810,6 +2810,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter writer,
@Nullable String[] args) {
+ if (!checkDumpPermission(mContext, TAG, writer)) return;
+
mPriorityDumper.dump(fd, writer, args);
}
@@ -2827,7 +2829,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void doDump(FileDescriptor fd, PrintWriter writer, String[] args) {
final IndentingPrintWriter pw = new IndentingPrintWriter(writer, " ");
- if (!checkDumpPermission(mContext, TAG, pw)) return;
if (CollectionUtils.contains(args, DIAG_ARG)) {
dumpNetworkDiagnostics(pw);
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 2d486c47d3c8..ee3530a9eac8 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -2861,7 +2861,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId);
intent.putExtra(PHONE_CONSTANTS_SLOT_KEY, phoneId);
intent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, phoneId);
+ // Send the broadcast twice -- once for all apps with READ_PHONE_STATE, then again
+ // for all apps with READ_PRIV but not READ_PHONE_STATE. This ensures that any app holding
+ // either READ_PRIV or READ_PHONE get this broadcast exactly once.
mContext.sendBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.READ_PHONE_STATE);
+ mContext.createContextAsUser(UserHandle.ALL, 0)
+ .sendBroadcastMultiplePermissions(intent,
+ new String[] { Manifest.permission.READ_PRIVILEGED_PHONE_STATE },
+ new String[] { Manifest.permission.READ_PHONE_STATE });
}
private void broadcastSignalStrengthChanged(SignalStrength signalStrength, int phoneId,
@@ -2988,7 +2995,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
getApnTypesStringFromBitmask(pdcs.getApnSetting().getApnTypeBitmask()));
intent.putExtra(PHONE_CONSTANTS_SLOT_KEY, slotIndex);
intent.putExtra(PHONE_CONSTANTS_SUBSCRIPTION_KEY, subId);
+ // Send the broadcast twice -- once for all apps with READ_PHONE_STATE, then again
+ // for all apps with READ_PRIV but not READ_PHONE_STATE. This ensures that any app holding
+ // either READ_PRIV or READ_PHONE get this broadcast exactly once.
mContext.sendBroadcastAsUser(intent, UserHandle.ALL, Manifest.permission.READ_PHONE_STATE);
+ mContext.createContextAsUser(UserHandle.ALL, 0)
+ .sendBroadcastMultiplePermissions(intent,
+ new String[] { Manifest.permission.READ_PRIVILEGED_PHONE_STATE },
+ new String[] { Manifest.permission.READ_PHONE_STATE });
}
/**
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index e3b06d696423..97ad93cc8753 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -6487,7 +6487,7 @@ public class ActivityManagerService extends IActivityManager.Stub
final long identity = Binder.clearCallingIdentity();
try {
// Send broadcast to shell to trigger bugreport using Bugreport API
- mContext.sendBroadcast(triggerShellBugreport);
+ mContext.sendBroadcastAsUser(triggerShellBugreport, UserHandle.SYSTEM);
} finally {
Binder.restoreCallingIdentity(identity);
}
diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
index 4942b110cf3c..859cc441daa1 100644
--- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
+++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
@@ -137,8 +137,8 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync {
@GuardedBy("mWorkerLock")
private PowerStatsInternal mPowerStatsInternal = null;
- // WiFi keeps an accumulated total of stats, unlike Bluetooth.
- // Keep the last WiFi stats so we can compute a delta.
+ // WiFi keeps an accumulated total of stats. Keep the last WiFi stats so we can compute a delta.
+ // (This is unlike Bluetooth, where BatteryStatsImpl is left responsible for taking the delta.)
@GuardedBy("mWorkerLock")
private WifiActivityEnergyInfo mLastWifiInfo =
new WifiActivityEnergyInfo(0, 0, 0, 0, 0, 0);
diff --git a/services/core/java/com/android/server/apphibernation/AppHibernationService.java b/services/core/java/com/android/server/apphibernation/AppHibernationService.java
index fd829fae5759..aa51800fb134 100644
--- a/services/core/java/com/android/server/apphibernation/AppHibernationService.java
+++ b/services/core/java/com/android/server/apphibernation/AppHibernationService.java
@@ -109,7 +109,7 @@ public final class AppHibernationService extends SystemService {
private final boolean mOatArtifactDeletionEnabled;
@VisibleForTesting
- static boolean sIsServiceEnabled;
+ public static boolean sIsServiceEnabled;
/**
* Initializes the system service.
diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java
index 47c7e3902556..e2aa07102ba3 100644
--- a/services/core/java/com/android/server/clipboard/ClipboardService.java
+++ b/services/core/java/com/android/server/clipboard/ClipboardService.java
@@ -952,14 +952,8 @@ public class ClipboardService extends SystemService {
try {
CharSequence callingAppLabel = mPm.getApplicationLabel(
mPm.getApplicationInfoAsUser(callingPackage, 0, userId));
- String message;
- if (isText(clipboard.primaryClip)) {
- message = getContext().getString(
- R.string.pasted_text, callingAppLabel);
- } else {
- message = getContext().getString(
- R.string.pasted_content, callingAppLabel);
- }
+ String message =
+ getContext().getString(R.string.pasted_from_clipboard, callingAppLabel);
Slog.i(TAG, message);
Toast.makeText(
getContext(), UiThread.get().getLooper(), message, Toast.LENGTH_SHORT)
diff --git a/services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java b/services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java
index fb14fbd49fde..c0ab09319a06 100644
--- a/services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java
+++ b/services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java
@@ -502,8 +502,8 @@ final class UpdatableFontDir {
Slog.e(TAG, "Failed to lookup font file that has " + font.getPostScriptName());
return null;
}
- resolvedFonts.add(new FontConfig.Font(info.mFile, null, font.getFontStyle(),
- font.getIndex(), font.getFontVariationSettings(), null));
+ resolvedFonts.add(new FontConfig.Font(info.mFile, null, info.getPostScriptName(),
+ font.getFontStyle(), font.getIndex(), font.getFontVariationSettings(), null));
}
return new FontConfig.FontFamily(resolvedFonts, fontFamily.getName(),
null, FontConfig.FontFamily.VARIANT_DEFAULT);
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java
index 3678b198d6e5..6114094f2dce 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java
@@ -222,7 +222,6 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
super.disableDevice(initiatedByCec, callback);
assertRunOnServiceThread();
mService.unregisterTvInputCallback(mTvInputCallback);
- // TODO(b/129088603): check disableDevice and onStandby behaviors per spec
}
@Override
@@ -847,7 +846,6 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
}
protected void switchToAudioInput() {
- // TODO(b/111396634): switch input according to PROPERTY_SYSTEM_AUDIO_MODE_AUDIO_PORT
}
protected boolean isDirectConnectToTv() {
diff --git a/services/core/java/com/android/server/location/provider/LocationProviderManager.java b/services/core/java/com/android/server/location/provider/LocationProviderManager.java
index 102263b5f3c2..8a2dfa80c224 100644
--- a/services/core/java/com/android/server/location/provider/LocationProviderManager.java
+++ b/services/core/java/com/android/server/location/provider/LocationProviderManager.java
@@ -25,12 +25,12 @@ import static android.location.LocationManager.KEY_LOCATION_CHANGED;
import static android.location.LocationManager.KEY_PROVIDER_ENABLED;
import static android.location.LocationManager.PASSIVE_PROVIDER;
import static android.os.IPowerManager.LOCATION_MODE_NO_CHANGE;
+import static android.os.PowerExemptionManager.REASON_LOCATION_PROVIDER;
+import static android.os.PowerExemptionManager.TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
import static android.os.PowerManager.LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF;
import static android.os.PowerManager.LOCATION_MODE_FOREGROUND_ONLY;
import static android.os.PowerManager.LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF;
import static android.os.PowerManager.LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF;
-import static android.os.PowerWhitelistManager.REASON_LOCATION_PROVIDER;
-import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
import static com.android.server.location.LocationManagerService.D;
import static com.android.server.location.LocationManagerService.TAG;
@@ -148,10 +148,10 @@ public class LocationProviderManager extends
private static final long MAX_HIGH_POWER_INTERVAL_MS = 5 * 60 * 1000;
// max age of a location before it is no longer considered "current"
- private static final long MAX_CURRENT_LOCATION_AGE_MS = 10 * 1000;
+ private static final long MAX_CURRENT_LOCATION_AGE_MS = 30 * 1000;
// max timeout allowed for getting the current location
- private static final long GET_CURRENT_LOCATION_MAX_TIMEOUT_MS = 30 * 1000;
+ private static final long MAX_GET_CURRENT_LOCATION_TIMEOUT_MS = 30 * 1000;
// max jitter allowed for min update interval as a percentage of the interval
private static final float FASTEST_INTERVAL_JITTER_PERCENTAGE = .10f;
@@ -230,7 +230,7 @@ public class LocationProviderManager extends
options.setDontSendToRestrictedApps(true);
// allows apps to start a fg service in response to a location PI
options.setTemporaryAppAllowlist(TEMPORARY_APP_ALLOWLIST_DURATION_MS,
- TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED,
+ TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED,
REASON_LOCATION_PROVIDER,
"");
@@ -1655,9 +1655,9 @@ public class LocationProviderManager extends
public @Nullable ICancellationSignal getCurrentLocation(LocationRequest request,
CallerIdentity identity, int permissionLevel, ILocationCallback callback) {
- if (request.getDurationMillis() > GET_CURRENT_LOCATION_MAX_TIMEOUT_MS) {
+ if (request.getDurationMillis() > MAX_GET_CURRENT_LOCATION_TIMEOUT_MS) {
request = new LocationRequest.Builder(request)
- .setDurationMillis(GET_CURRENT_LOCATION_MAX_TIMEOUT_MS)
+ .setDurationMillis(MAX_GET_CURRENT_LOCATION_TIMEOUT_MS)
.build();
}
diff --git a/services/core/java/com/android/server/locksettings/RebootEscrowManager.java b/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
index c01523a4bc40..90694d0a5f64 100644
--- a/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
+++ b/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
@@ -205,6 +205,7 @@ class RebootEscrowManager {
Slog.i(TAG, "Using server based resume on reboot");
rebootEscrowProvider = new RebootEscrowProviderServerBasedImpl(mContext, mStorage);
} else {
+ Slog.i(TAG, "Using HAL based resume on reboot");
rebootEscrowProvider = new RebootEscrowProviderHalImpl();
}
@@ -239,7 +240,7 @@ class RebootEscrowManager {
return mKeyStoreManager;
}
- public RebootEscrowProviderInterface getRebootEscrowProvider() {
+ public RebootEscrowProviderInterface createRebootEscrowProviderIfNeeded() {
// Initialize for the provider lazily. Because the device_config and service
// implementation apps may change when system server is running.
if (mRebootEscrowProvider == null) {
@@ -249,6 +250,14 @@ class RebootEscrowManager {
return mRebootEscrowProvider;
}
+ public RebootEscrowProviderInterface getRebootEscrowProvider() {
+ return mRebootEscrowProvider;
+ }
+
+ public void clearRebootEscrowProvider() {
+ mRebootEscrowProvider = null;
+ }
+
public int getBootCount() {
return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.BOOT_COUNT,
0);
@@ -308,8 +317,6 @@ class RebootEscrowManager {
mStorage.removeRebootEscrow(user.id);
}
- // Clear the old key in keystore.
- mKeyStoreManager.clearKeyStoreEncryptionKey();
onEscrowRestoreComplete(false, attemptCount);
}
@@ -395,9 +402,6 @@ class RebootEscrowManager {
allUsersUnlocked &= restoreRebootEscrowForUser(user.id, escrowKey, kk);
}
- // Clear the old key in keystore. A new key will be generated by new RoR requests.
- mKeyStoreManager.clearKeyStoreEncryptionKey();
-
if (!allUsersUnlocked && mLoadEscrowDataErrorCode == ERROR_NONE) {
mLoadEscrowDataErrorCode = ERROR_UNLOCK_ALL_USERS;
}
@@ -473,11 +477,17 @@ class RebootEscrowManager {
if (success || (previousBootCount != -1 && bootCountDelta <= BOOT_COUNT_TOLERANCE)) {
reportMetricOnRestoreComplete(success, attemptCount);
}
+
+ // Clear the old key in keystore. A new key will be generated by new RoR requests.
+ mKeyStoreManager.clearKeyStoreEncryptionKey();
+ // Clear the saved reboot escrow provider
+ mInjector.clearRebootEscrowProvider();
clearMetricsStorage();
}
private RebootEscrowKey getAndClearRebootEscrowKey(SecretKey kk) throws IOException {
- RebootEscrowProviderInterface rebootEscrowProvider = mInjector.getRebootEscrowProvider();
+ RebootEscrowProviderInterface rebootEscrowProvider =
+ mInjector.createRebootEscrowProviderIfNeeded();
if (rebootEscrowProvider == null) {
Slog.w(TAG,
"Had reboot escrow data for users, but RebootEscrowProvider is unavailable");
@@ -529,9 +539,8 @@ class RebootEscrowManager {
return;
}
- if (mInjector.getRebootEscrowProvider() == null) {
- Slog.w(TAG,
- "Had reboot escrow data for users, but RebootEscrowProvider is unavailable");
+ if (mInjector.createRebootEscrowProviderIfNeeded() == null) {
+ Slog.w(TAG, "Not storing escrow data, RebootEscrowProvider is unavailable");
return;
}
@@ -586,13 +595,17 @@ class RebootEscrowManager {
mRebootEscrowWanted = false;
setRebootEscrowReady(false);
- RebootEscrowProviderInterface rebootEscrowProvider = mInjector.getRebootEscrowProvider();
+ // We want to clear the internal data inside the provider, so always try to create the
+ // provider.
+ RebootEscrowProviderInterface rebootEscrowProvider =
+ mInjector.createRebootEscrowProviderIfNeeded();
if (rebootEscrowProvider == null) {
Slog.w(TAG, "RebootEscrowProvider is unavailable for clear request");
} else {
rebootEscrowProvider.clearRebootEscrowKey();
}
+ mInjector.clearRebootEscrowProvider();
clearMetricsStorage();
List<UserInfo> users = mUserManager.getUsers();
@@ -610,8 +623,7 @@ class RebootEscrowManager {
RebootEscrowProviderInterface rebootEscrowProvider = mInjector.getRebootEscrowProvider();
if (rebootEscrowProvider == null) {
- Slog.w(TAG,
- "Had reboot escrow data for users, but RebootEscrowProvider is unavailable");
+ Slog.w(TAG, "Not storing escrow key, RebootEscrowProvider is unavailable");
clearRebootEscrowIfNeeded();
return ARM_REBOOT_ERROR_NO_PROVIDER;
}
@@ -677,11 +689,12 @@ class RebootEscrowManager {
}
boolean prepareRebootEscrow() {
- if (mInjector.getRebootEscrowProvider() == null) {
+ clearRebootEscrowIfNeeded();
+ if (mInjector.createRebootEscrowProviderIfNeeded() == null) {
+ Slog.w(TAG, "No reboot escrow provider, skipping resume on reboot preparation.");
return false;
}
- clearRebootEscrowIfNeeded();
mRebootEscrowWanted = true;
mEventLog.addEntry(RebootEscrowEvent.REQUESTED_LSKF);
return true;
@@ -807,6 +820,10 @@ class RebootEscrowManager {
pw.print("mPendingRebootEscrowKey is ");
pw.println(keySet ? "set" : "not set");
+ RebootEscrowProviderInterface provider = mInjector.getRebootEscrowProvider();
+ String providerType = provider == null ? "null" : String.valueOf(provider.getType());
+ pw.print("RebootEscrowProvider type is " + providerType);
+
pw.println();
pw.println("Event log:");
pw.increaseIndent();
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index 05922b3bb070..7e4e29ebc000 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -2016,7 +2016,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
if (LOGV) Slog.v(TAG, "updateNetworkRulesNL()");
Trace.traceBegin(TRACE_TAG_NETWORK, "updateNetworkRulesNL");
- final List<NetworkStateSnapshot> snapshots = mConnManager.getAllNetworkStateSnapshot();
+ final List<NetworkStateSnapshot> snapshots = mConnManager.getAllNetworkStateSnapshots();
// First, generate identities of all connected networks so we can
// quickly compare them against all defined policies below.
diff --git a/services/core/java/com/android/server/net/TEST_MAPPING b/services/core/java/com/android/server/net/TEST_MAPPING
index f70759761304..02095eb70c0e 100644
--- a/services/core/java/com/android/server/net/TEST_MAPPING
+++ b/services/core/java/com/android/server/net/TEST_MAPPING
@@ -1,5 +1,5 @@
{
- "presubmit": [
+ "presubmit-large": [
{
"name": "CtsHostsideNetworkTests",
"file_patterns": ["(/|^)NetworkPolicy[^/]*\\.java"],
@@ -14,7 +14,9 @@
"exclude-annotation": "android.platform.test.annotations.FlakyTest"
}
]
- },
+ }
+ ],
+ "presubmit": [
{
"name": "FrameworksServicesTests",
"file_patterns": ["(/|^)NetworkPolicy[^/]*\\.java"],
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 1e6e5cb97f45..52a5dc1e8982 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -735,19 +735,22 @@ public class NotificationManagerService extends SystemService {
final List<UserInfo> activeUsers = mUm.getUsers();
for (UserInfo userInfo : activeUsers) {
int userId = userInfo.getUserHandle().getIdentifier();
- if (isNASMigrationDone(userId)) {
+ if (isNASMigrationDone(userId) || mUm.isManagedProfile(userId)) {
continue;
}
if (mAssistants.hasUserSet(userId)) {
- mAssistants.loadDefaultsFromConfig(false);
ComponentName defaultFromConfig = mAssistants.getDefaultFromConfig();
List<ComponentName> allowedComponents = mAssistants.getAllowedComponents(userId);
- if (allowedComponents.contains(defaultFromConfig)) {
+ if (allowedComponents.size() == 0) {
+ setNASMigrationDone(userId);
+ mAssistants.clearDefaults();
+ continue;
+ } else if (allowedComponents.contains(defaultFromConfig)) {
setNASMigrationDone(userId);
mAssistants.resetDefaultFromConfig();
continue;
}
- //User selected different NAS or none, need onboarding
+ //User selected different NAS, need onboarding
enqueueNotificationInternal(getContext().getPackageName(),
getContext().getOpPackageName(), Binder.getCallingUid(),
Binder.getCallingPid(), TAG,
@@ -819,9 +822,11 @@ public class NotificationManagerService extends SystemService {
}
@VisibleForTesting
- void setNASMigrationDone(int userId) {
- Settings.Secure.putIntForUser(getContext().getContentResolver(),
- Settings.Secure.NAS_SETTINGS_UPDATED, 1, userId);
+ void setNASMigrationDone(int baseUserId) {
+ for (int profileId : mUm.getProfileIds(baseUserId, false)) {
+ Settings.Secure.putIntForUser(getContext().getContentResolver(),
+ Settings.Secure.NAS_SETTINGS_UPDATED, 1, profileId);
+ }
}
@VisibleForTesting
@@ -5171,12 +5176,7 @@ public class NotificationManagerService extends SystemService {
@Override
public ComponentName getDefaultNotificationAssistant() {
checkCallerIsSystem();
- ArraySet<ComponentName> defaultComponents = mAssistants.getDefaultComponents();
- if (defaultComponents.size() > 1) {
- Slog.w(TAG, "More than one default NotificationAssistant: "
- + defaultComponents.size());
- }
- return CollectionUtils.firstOrNull(defaultComponents);
+ return mAssistants.getDefaultFromConfig();
}
@Override
@@ -9403,6 +9403,9 @@ public class NotificationManagerService extends SystemService {
}
ComponentName getDefaultFromConfig() {
+ if (mDefaultFromConfig == null) {
+ loadDefaultsFromConfig(false);
+ }
return mDefaultFromConfig;
}
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index dd80e167f0b3..edd43af9f5b9 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -1043,22 +1043,24 @@ public class LauncherAppsService extends SystemService {
return false;
}
+ final PackageManagerInternal pmInt =
+ LocalServices.getService(PackageManagerInternal.class);
final int callingUid = injectBinderCallingUid();
+ final int state = pmInt.getComponentEnabledSetting(component, callingUid,
+ user.getIdentifier());
+ switch (state) {
+ case PackageManager.COMPONENT_ENABLED_STATE_DEFAULT:
+ break; // Need to check the manifest's enabled state.
+ case PackageManager.COMPONENT_ENABLED_STATE_ENABLED:
+ return true;
+ case PackageManager.COMPONENT_ENABLED_STATE_DISABLED:
+ case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER:
+ case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED:
+ return false;
+ }
+
final long ident = Binder.clearCallingIdentity();
try {
- final int state = mIPM.getComponentEnabledSetting(component, user.getIdentifier());
- switch (state) {
- case PackageManager.COMPONENT_ENABLED_STATE_DEFAULT:
- break; // Need to check the manifest's enabled state.
- case PackageManager.COMPONENT_ENABLED_STATE_ENABLED:
- return true;
- case PackageManager.COMPONENT_ENABLED_STATE_DISABLED:
- case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER:
- case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED:
- return false;
- }
- final PackageManagerInternal pmInt =
- LocalServices.getService(PackageManagerInternal.class);
ActivityInfo info = pmInt.getActivityInfo(component,
PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 0a484e21b018..27077b6b2a09 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -527,6 +527,14 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
throw new SecurityException("User restriction prevents installing");
}
+ if (params.dataLoaderParams != null
+ && mContext.checkCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2)
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException("You need the "
+ + "com.android.permission.USE_INSTALLER_V2 permission "
+ + "to use a data loader");
+ }
+
// INSTALL_REASON_ROLLBACK allows an app to be rolled back without requiring the ROLLBACK
// capability; ensure if this is set as the install reason the app has one of the necessary
// signature permissions to perform the rollback.
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index e532790589a3..b6a65ddb5ec2 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -3636,12 +3636,14 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
@Override
public DataLoaderParamsParcel getDataLoaderParams() {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2, null);
return params.dataLoaderParams != null ? params.dataLoaderParams.getData() : null;
}
@Override
public void addFile(int location, String name, long lengthBytes, byte[] metadata,
byte[] signature) {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2, null);
if (!isDataLoaderInstallation()) {
throw new IllegalStateException(
"Cannot add files to non-data loader installation session.");
@@ -3674,6 +3676,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
@Override
public void removeFile(int location, String name) {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2, null);
if (!isDataLoaderInstallation()) {
throw new IllegalStateException(
"Cannot add files to non-data loader installation session.");
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 59039baf2764..3c4a304a5462 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1495,6 +1495,9 @@ public class PackageManagerService extends IPackageManager.Stub
// List of packages names to keep cached, even if they are uninstalled for all users
private List<String> mKeepUninstalledPackages;
+ // Cached reference to IDevicePolicyManager.
+ private IDevicePolicyManager mDevicePolicyManager = null;
+
private File mCacheDir;
private Future<?> mPrepareAppDataFuture;
@@ -20807,8 +20810,7 @@ public class PackageManagerService extends IPackageManager.Stub
}
private boolean isPackageDeviceAdmin(String packageName, int userId) {
- IDevicePolicyManager dpm = IDevicePolicyManager.Stub.asInterface(
- ServiceManager.getService(Context.DEVICE_POLICY_SERVICE));
+ final IDevicePolicyManager dpm = getDevicePolicyManager();
try {
if (dpm != null) {
final ComponentName deviceOwnerComponentName = dpm.getDeviceOwnerComponent(
@@ -20840,6 +20842,16 @@ public class PackageManagerService extends IPackageManager.Stub
return false;
}
+ /** Returns the device policy manager interface. */
+ private IDevicePolicyManager getDevicePolicyManager() {
+ if (mDevicePolicyManager == null) {
+ // No need to synchronize; worst-case scenario it will be fetched twice.
+ mDevicePolicyManager = IDevicePolicyManager.Stub.asInterface(
+ ServiceManager.getService(Context.DEVICE_POLICY_SERVICE));
+ }
+ return mDevicePolicyManager;
+ }
+
private boolean shouldKeepUninstalledPackageLPr(String packageName) {
return mKeepUninstalledPackages != null && mKeepUninstalledPackages.contains(packageName);
}
@@ -23616,11 +23628,17 @@ public class PackageManagerService extends IPackageManager.Stub
@Override
public int getComponentEnabledSetting(@NonNull ComponentName component, int userId) {
- if (component == null) return COMPONENT_ENABLED_STATE_DEFAULT;
- if (!mUserManager.exists(userId)) return COMPONENT_ENABLED_STATE_DISABLED;
int callingUid = Binder.getCallingUid();
enforceCrossUserPermission(callingUid, userId, false /*requireFullPermission*/,
false /*checkShell*/, "getComponentEnabled");
+ return getComponentEnabledSettingInternal(component, callingUid, userId);
+ }
+
+ private int getComponentEnabledSettingInternal(ComponentName component, int callingUid,
+ int userId) {
+ if (component == null) return COMPONENT_ENABLED_STATE_DEFAULT;
+ if (!mUserManager.exists(userId)) return COMPONENT_ENABLED_STATE_DISABLED;
+
synchronized (mLock) {
try {
if (shouldFilterApplicationLocked(
@@ -27066,6 +27084,13 @@ public class PackageManagerService extends IPackageManager.Stub
}
@Override
+ public @PackageManager.EnabledState int getComponentEnabledSetting(
+ @NonNull ComponentName componentName, int callingUid, int userId) {
+ return PackageManagerService.this.getComponentEnabledSettingInternal(componentName,
+ callingUid, userId);
+ }
+
+ @Override
public void setEnableRollbackCode(int token, int enableRollbackCode) {
PackageManagerService.this.setEnableRollbackCode(token, enableRollbackCode);
}
diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java
index c6d98e768ce3..464477df281f 100644
--- a/services/core/java/com/android/server/pm/ShortcutPackage.java
+++ b/services/core/java/com/android/server/pm/ShortcutPackage.java
@@ -92,6 +92,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
+import java.util.stream.Collectors;
/**
* Package information used by {@link ShortcutService}.
@@ -721,7 +722,7 @@ class ShortcutPackage extends ShortcutPackageItem {
// If not reset yet, then reset.
if (mLastResetTime < last) {
- if (ShortcutService.DEBUG) {
+ if (ShortcutService.DEBUG || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, String.format("%s: last reset=%d, now=%d, last=%d: resetting",
getPackageName(), mLastResetTime, now, last));
}
@@ -1101,7 +1102,7 @@ class ShortcutPackage extends ShortcutPackageItem {
}
final int manifestShortcutSize = newManifestShortcutList == null ? 0
: newManifestShortcutList.size();
- if (ShortcutService.DEBUG) {
+ if (ShortcutService.DEBUG || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG,
String.format("Package %s has %d manifest shortcut(s), and %d share target(s)",
getPackageName(), manifestShortcutSize, mShareTargets.size()));
@@ -1113,7 +1114,7 @@ class ShortcutPackage extends ShortcutPackageItem {
// disabled.
return false;
}
- if (ShortcutService.DEBUG) {
+ if (ShortcutService.DEBUG || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, String.format("Package %s %s, version %d -> %d", getPackageName(),
(isNewApp ? "added" : "updated"),
getPackageInfo().getVersionCode(), pi.getLongVersionCode()));
@@ -1202,7 +1203,7 @@ class ShortcutPackage extends ShortcutPackageItem {
}
private boolean publishManifestShortcuts(List<ShortcutInfo> newManifestShortcutList) {
- if (ShortcutService.DEBUG) {
+ if (ShortcutService.DEBUG || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, String.format(
"Package %s: publishing manifest shortcuts", getPackageName()));
}
@@ -1879,7 +1880,7 @@ class ShortcutPackage extends ShortcutPackageItem {
final int depth = parser.getDepth();
final String tag = parser.getName();
- if (ShortcutService.DEBUG_LOAD) {
+ if (ShortcutService.DEBUG_LOAD || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, String.format("depth=%d type=%d name=%s", depth, type, tag));
}
if ((depth == 1) && TAG_ROOT.equals(tag)) {
@@ -2015,7 +2016,7 @@ class ShortcutPackage extends ShortcutPackageItem {
}
final int depth = parser.getDepth();
final String tag = parser.getName();
- if (ShortcutService.DEBUG_LOAD) {
+ if (ShortcutService.DEBUG_LOAD || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, String.format(" depth=%d type=%d name=%s",
depth, type, tag));
}
@@ -2099,7 +2100,7 @@ class ShortcutPackage extends ShortcutPackageItem {
}
final int depth = parser.getDepth();
final String tag = parser.getName();
- if (ShortcutService.DEBUG_LOAD) {
+ if (ShortcutService.DEBUG_LOAD || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, String.format(" depth=%d type=%d name=%s",
depth, type, tag));
}
@@ -2302,6 +2303,12 @@ class ShortcutPackage extends ShortcutPackageItem {
// No need to invoke AppSearch when there's nothing to save.
return;
}
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "Saving shortcuts for user=" + mShortcutUser.getUserId()
+ + " pkg=" + getPackageName() + " ids=["
+ + shortcuts.stream().map(ShortcutInfo::getId)
+ .collect(Collectors.joining(",")) + "]");
+ }
awaitInAppSearch("Saving shortcuts", session -> {
final AndroidFuture<Boolean> future = new AndroidFuture<>();
session.put(new PutDocumentsRequest.Builder()
@@ -2374,6 +2381,10 @@ class ShortcutPackage extends ShortcutPackageItem {
shortcutIds.add(id);
}
}
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "Getting shortcuts for user=" + mShortcutUser.getUserId()
+ + " pkg=" + getPackageName() + " ids: [" + String.join(",", ids) + "]");
+ }
return awaitInAppSearch("Getting shortcut by id", session -> {
final AndroidFuture<List<ShortcutInfo>> future = new AndroidFuture<>();
session.getByUri(
@@ -2418,6 +2429,10 @@ class ShortcutPackage extends ShortcutPackageItem {
private void forEachShortcutMutateIf(@NonNull final String query,
@NonNull final Function<ShortcutInfo, Boolean> cb) {
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "Changing shortcuts for user=" + mShortcutUser.getUserId()
+ + " pkg=" + getPackageName());
+ }
final SearchResults res = awaitInAppSearch("Mutating shortcuts", session ->
AndroidFuture.completedFuture(session.search(query, getSearchSpec())));
if (res == null) return;
@@ -2439,6 +2454,10 @@ class ShortcutPackage extends ShortcutPackageItem {
private void forEachShortcutStopWhen(
@NonNull final String query, @NonNull final Function<ShortcutInfo, Boolean> cb) {
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "Iterating shortcuts for user=" + mShortcutUser.getUserId()
+ + " pkg=" + getPackageName());
+ }
final SearchResults res = awaitInAppSearch("Iterating shortcuts", session ->
AndroidFuture.completedFuture(session.search(query, getSearchSpec())));
if (res == null) return;
@@ -2452,6 +2471,10 @@ class ShortcutPackage extends ShortcutPackageItem {
}
private List<ShortcutInfo> getNextPage(@NonNull final SearchResults res) {
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "Get next page for search result for user=" + mShortcutUser.getUserId()
+ + " pkg=" + getPackageName());
+ }
final AndroidFuture<List<ShortcutInfo>> future = new AndroidFuture<>();
final List<ShortcutInfo> ret = new ArrayList<>();
final long callingIdentity = Binder.clearCallingIdentity();
@@ -2529,6 +2552,10 @@ class ShortcutPackage extends ShortcutPackageItem {
@NonNull
private AndroidFuture<AppSearchSession> setupSchema(
@NonNull final AppSearchSession session) {
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "Setup Schema for user=" + mShortcutUser.getUserId()
+ + " pkg=" + getPackageName());
+ }
SetSchemaRequest.Builder schemaBuilder = new SetSchemaRequest.Builder()
.addSchemas(AppSearchPerson.SCHEMA, AppSearchShortcutInfo.SCHEMA)
.setForceOverride(true);
@@ -2569,6 +2596,15 @@ class ShortcutPackage extends ShortcutPackageItem {
}
private void restoreParsedShortcuts(final boolean replace) {
+ if (ShortcutService.DEBUG_REBOOT) {
+ if (replace) {
+ Slog.d(TAG, "Replacing all shortcuts with the ones parsed from xml for user="
+ + mShortcutUser.getUserId() + " pkg=" + getPackageName());
+ } else {
+ Slog.d(TAG, "Restoring pinned shortcuts from xml for user="
+ + mShortcutUser.getUserId() + " pkg=" + getPackageName());
+ }
+ }
if (replace) {
removeShortcuts();
}
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index dcf730d4a0fd..8d03fceacee8 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -164,6 +164,7 @@ public class ShortcutService extends IShortcutService.Stub {
static final boolean DEBUG = false; // STOPSHIP if true
static final boolean DEBUG_LOAD = false; // STOPSHIP if true
static final boolean DEBUG_PROCSTATE = false; // STOPSHIP if true
+ static final boolean DEBUG_REBOOT = true;
@VisibleForTesting
static final long DEFAULT_RESET_INTERVAL_SEC = 24 * 60 * 60; // 1 day
@@ -659,7 +660,7 @@ public class ShortcutService extends IShortcutService.Stub {
/** lifecycle event */
void onBootPhase(int phase) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "onBootPhase: " + phase);
}
switch (phase) {
@@ -674,7 +675,7 @@ public class ShortcutService extends IShortcutService.Stub {
/** lifecycle event */
void handleUnlockUser(int userId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "handleUnlockUser: user=" + userId);
}
synchronized (mUnlockedUsers) {
@@ -699,7 +700,7 @@ public class ShortcutService extends IShortcutService.Stub {
/** lifecycle event */
void handleStopUser(int userId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "handleStopUser: user=" + userId);
}
synchronized (mLock) {
@@ -713,7 +714,7 @@ public class ShortcutService extends IShortcutService.Stub {
@GuardedBy("mLock")
private void unloadUserLocked(int userId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "unloadUserLocked: user=" + userId);
}
// Save all dirty information.
@@ -945,7 +946,7 @@ public class ShortcutService extends IShortcutService.Stub {
@VisibleForTesting
void saveBaseStateLocked() {
final AtomicFile file = getBaseStateFile();
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Saving to " + file.getBaseFile());
}
@@ -978,7 +979,7 @@ public class ShortcutService extends IShortcutService.Stub {
mRawLastResetTime = 0;
final AtomicFile file = getBaseStateFile();
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Loading from " + file.getBaseFile());
}
try (FileInputStream in = file.openRead()) {
@@ -1028,7 +1029,7 @@ public class ShortcutService extends IShortcutService.Stub {
@GuardedBy("mLock")
private void saveUserLocked(@UserIdInt int userId) {
final File path = getUserFile(userId);
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Saving to " + path);
}
@@ -1086,7 +1087,7 @@ public class ShortcutService extends IShortcutService.Stub {
@Nullable
private ShortcutUser loadUserLocked(@UserIdInt int userId) {
final File path = getUserFile(userId);
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Loading from " + path);
}
final AtomicFile file = new AtomicFile(path);
@@ -1095,7 +1096,7 @@ public class ShortcutService extends IShortcutService.Stub {
try {
in = file.openRead();
} catch (FileNotFoundException e) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Not found " + path);
}
return null;
@@ -1132,7 +1133,7 @@ public class ShortcutService extends IShortcutService.Stub {
final int depth = parser.getDepth();
final String tag = parser.getName();
- if (DEBUG_LOAD) {
+ if (DEBUG_LOAD || DEBUG_REBOOT) {
Slog.d(TAG, String.format("depth=%d type=%d name=%s",
depth, type, tag));
}
@@ -1157,7 +1158,7 @@ public class ShortcutService extends IShortcutService.Stub {
private final Runnable mSaveDirtyInfoRunner = this::saveDirtyInfo;
private void scheduleSaveInner(@UserIdInt int userId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Scheduling to save for " + userId);
}
synchronized (mLock) {
@@ -1172,7 +1173,7 @@ public class ShortcutService extends IShortcutService.Stub {
@VisibleForTesting
void saveDirtyInfo() {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "saveDirtyInfo");
}
if (mShutdown.get()) {
@@ -2942,6 +2943,10 @@ public class ShortcutService extends IShortcutService.Stub {
@Nullable String packageName, @Nullable List<String> shortcutIds,
@Nullable List<LocusId> locusIds, @Nullable ComponentName componentName,
int queryFlags, int userId, int callingPid, int callingUid) {
+ if (DEBUG_REBOOT) {
+ Slog.d(TAG, "Getting shortcuts for launcher= " + callingPackage
+ + "user=" + userId + " pkg=" + packageName);
+ }
final ArrayList<ShortcutInfo> ret = new ArrayList<>();
int flags = ShortcutInfo.CLONE_REMOVE_FOR_LAUNCHER;
@@ -3639,7 +3644,7 @@ public class ShortcutService extends IShortcutService.Stub {
*/
@VisibleForTesting
void checkPackageChanges(@UserIdInt int ownerUserId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "checkPackageChanges() ownerUserId=" + ownerUserId);
}
if (injectIsSafeModeEnabled()) {
@@ -3685,6 +3690,9 @@ public class ShortcutService extends IShortcutService.Stub {
@GuardedBy("mLock")
private void rescanUpdatedPackagesLocked(@UserIdInt int userId, long lastScanTime) {
+ if (DEBUG_REBOOT) {
+ Slog.d(TAG, "rescan updated package user=" + userId + " last scanned=" + lastScanTime);
+ }
final ShortcutUser user = getUserShortcutsLocked(userId);
// Note after each OTA, we'll need to rescan all system apps, as their lastUpdateTime
@@ -3708,7 +3716,7 @@ public class ShortcutService extends IShortcutService.Stub {
}
private void handlePackageAdded(String packageName, @UserIdInt int userId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, String.format("handlePackageAdded: %s user=%d", packageName, userId));
}
synchronized (mLock) {
@@ -3720,7 +3728,7 @@ public class ShortcutService extends IShortcutService.Stub {
}
private void handlePackageUpdateFinished(String packageName, @UserIdInt int userId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, String.format("handlePackageUpdateFinished: %s user=%d",
packageName, userId));
}
@@ -3736,7 +3744,7 @@ public class ShortcutService extends IShortcutService.Stub {
}
private void handlePackageRemoved(String packageName, @UserIdInt int packageUserId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, String.format("handlePackageRemoved: %s user=%d", packageName,
packageUserId));
}
@@ -3746,7 +3754,7 @@ public class ShortcutService extends IShortcutService.Stub {
}
private void handlePackageDataCleared(String packageName, int packageUserId) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, String.format("handlePackageDataCleared: %s user=%d", packageName,
packageUserId));
}
@@ -3761,7 +3769,7 @@ public class ShortcutService extends IShortcutService.Stub {
handlePackageRemoved(packageName, packageUserId);
return;
}
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, String.format("handlePackageChanged: %s user=%d", packageName,
packageUserId));
}
@@ -3948,7 +3956,7 @@ public class ShortcutService extends IShortcutService.Stub {
private void forUpdatedPackages(@UserIdInt int userId, long lastScanTime, boolean afterOta,
Consumer<ApplicationInfo> callback) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "forUpdatedPackages for user " + userId + ", lastScanTime=" + lastScanTime
+ " afterOta=" + afterOta);
}
@@ -3960,7 +3968,7 @@ public class ShortcutService extends IShortcutService.Stub {
// Also if it's right after an OTA, always re-scan all apps anyway, since the
// shortcut parser might have changed.
if (afterOta || (pi.lastUpdateTime >= lastScanTime)) {
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Found updated package " + pi.packageName
+ " updateTime=" + pi.lastUpdateTime);
}
@@ -4313,7 +4321,7 @@ public class ShortcutService extends IShortcutService.Stub {
@Override
public void applyRestore(byte[] payload, @UserIdInt int userId) {
enforceSystem();
- if (DEBUG) {
+ if (DEBUG || DEBUG_REBOOT) {
Slog.d(TAG, "Restoring user " + userId);
}
synchronized (mLock) {
diff --git a/services/core/java/com/android/server/pm/ShortcutUser.java b/services/core/java/com/android/server/pm/ShortcutUser.java
index 069944d955ea..e66cb03950cc 100644
--- a/services/core/java/com/android/server/pm/ShortcutUser.java
+++ b/services/core/java/com/android/server/pm/ShortcutUser.java
@@ -328,6 +328,10 @@ class ShortcutUser {
public void rescanPackageIfNeeded(@NonNull String packageName, boolean forceRescan) {
final boolean isNewApp = !mPackages.containsKey(packageName);
+ if (ShortcutService.DEBUG_REBOOT) {
+ Slog.d(TAG, "rescanPackageIfNeeded " + getUserId() + "@" + packageName
+ + ", forceRescan=" + forceRescan + " , isNewApp=" + isNewApp);
+ }
final ShortcutPackage shortcutPackage = getPackageShortcuts(packageName);
@@ -397,7 +401,7 @@ class ShortcutUser {
} else {
// Save each ShortcutPackageItem in a separate Xml file.
final File path = getShortcutPackageItemFile(spi);
- if (ShortcutService.DEBUG) {
+ if (ShortcutService.DEBUG || ShortcutService.DEBUG_REBOOT) {
Slog.d(TAG, "Saving package item " + spi.getPackageName() + " to " + path);
}
diff --git a/services/core/java/com/android/server/policy/DeviceStateProviderImpl.java b/services/core/java/com/android/server/policy/DeviceStateProviderImpl.java
index cd7f6854a37d..6f6bdac61fad 100644
--- a/services/core/java/com/android/server/policy/DeviceStateProviderImpl.java
+++ b/services/core/java/com/android/server/policy/DeviceStateProviderImpl.java
@@ -394,13 +394,13 @@ public final class DeviceStateProviderImpl implements DeviceStateProvider,
throw new IllegalStateException("Have not received sensor event.");
}
- if (latestEvent.values.length != mExpectedValues.size()) {
+ if (latestEvent.values.length < mExpectedValues.size()) {
throw new RuntimeException("Number of supplied numeric range(s) does not "
+ "match the number of values in the latest sensor event for sensor: "
+ mSensor);
}
- for (int i = 0; i < latestEvent.values.length; i++) {
+ for (int i = 0; i < mExpectedValues.size(); i++) {
if (!adheresToRange(latestEvent.values[i], mExpectedValues.get(i))) {
return false;
}
diff --git a/services/core/java/com/android/server/rotationresolver/RemoteRotationResolverService.java b/services/core/java/com/android/server/rotationresolver/RemoteRotationResolverService.java
index 189f47f7f1da..35aff8dc70ce 100644
--- a/services/core/java/com/android/server/rotationresolver/RemoteRotationResolverService.java
+++ b/services/core/java/com/android/server/rotationresolver/RemoteRotationResolverService.java
@@ -21,8 +21,8 @@ import static android.content.Context.BIND_INCLUDE_CAPABILITIES;
import static android.service.rotationresolver.RotationResolverService.ROTATION_RESULT_FAILURE_CANCELLED;
import static android.service.rotationresolver.RotationResolverService.ROTATION_RESULT_FAILURE_TIMED_OUT;
-import static com.android.server.rotationresolver.RotationResolverManagerService.RESOLUTION_FAILURE;
-import static com.android.server.rotationresolver.RotationResolverManagerService.logRotationStats;
+import static com.android.server.rotationresolver.RotationResolverManagerService.errorCodeToProto;
+import static com.android.server.rotationresolver.RotationResolverManagerService.surfaceRotationToProto;
import android.annotation.NonNull;
import android.content.ComponentName;
@@ -173,8 +173,10 @@ class RemoteRotationResolverService extends ServiceConnector.Impl<IRotationResol
request.mCallbackInternal.onSuccess(rotation);
final long timeToCalculate =
SystemClock.elapsedRealtime() - request.mRequestStartTimeMillis;
- logRotationStats(request.mRemoteRequest.getProposedRotation(),
- request.mRemoteRequest.getCurrentRotation(), rotation, timeToCalculate);
+ RotationResolverManagerService.logRotationStatsWithTimeToCalculate(
+ request.mRemoteRequest.getProposedRotation(),
+ request.mRemoteRequest.getCurrentRotation(),
+ surfaceRotationToProto(rotation), timeToCalculate);
Slog.d(TAG, "onSuccess:" + rotation);
Slog.d(TAG, "timeToCalculate:" + timeToCalculate);
}
@@ -192,8 +194,9 @@ class RemoteRotationResolverService extends ServiceConnector.Impl<IRotationResol
request.mCallbackInternal.onFailure(error);
final long timeToCalculate =
SystemClock.elapsedRealtime() - request.mRequestStartTimeMillis;
- logRotationStats(request.mRemoteRequest.getProposedRotation(),
- request.mRemoteRequest.getCurrentRotation(), RESOLUTION_FAILURE,
+ RotationResolverManagerService.logRotationStatsWithTimeToCalculate(
+ request.mRemoteRequest.getProposedRotation(),
+ request.mRemoteRequest.getCurrentRotation(), errorCodeToProto(error),
timeToCalculate);
Slog.d(TAG, "onFailure:" + error);
Slog.d(TAG, "timeToCalculate:" + timeToCalculate);
diff --git a/services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java b/services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java
index a749d18e7d68..19a246ef0ee5 100644
--- a/services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java
+++ b/services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java
@@ -18,6 +18,9 @@ package com.android.server.rotationresolver;
import static android.provider.DeviceConfig.NAMESPACE_ROTATION_RESOLVER;
import static android.service.rotationresolver.RotationResolverService.ROTATION_RESULT_FAILURE_CANCELLED;
+import static android.service.rotationresolver.RotationResolverService.ROTATION_RESULT_FAILURE_NOT_SUPPORTED;
+import static android.service.rotationresolver.RotationResolverService.ROTATION_RESULT_FAILURE_PREEMPTED;
+import static android.service.rotationresolver.RotationResolverService.ROTATION_RESULT_FAILURE_TIMED_OUT;
import static com.android.internal.util.FrameworkStatsLog.AUTO_ROTATE_REPORTED__PROPOSED_ORIENTATION__ROTATION_0;
import static com.android.internal.util.FrameworkStatsLog.AUTO_ROTATE_REPORTED__PROPOSED_ORIENTATION__ROTATION_180;
@@ -37,6 +40,7 @@ import android.os.UserHandle;
import android.provider.DeviceConfig;
import android.rotationresolver.RotationResolverInternal;
import android.service.rotationresolver.RotationResolutionRequest;
+import android.service.rotationresolver.RotationResolverService;
import android.text.TextUtils;
import android.util.IndentingPrintWriter;
import android.util.Slog;
@@ -217,24 +221,37 @@ public class RotationResolverManagerService extends
}
}
- static void logRotationStats(int proposedRotation, int currentRotation,
- int resolvedRotation, long timeToCalculate) {
+ static void logRotationStatsWithTimeToCalculate(int proposedRotation, int currentRotation,
+ int result, long timeToCalculate) {
FrameworkStatsLog.write(FrameworkStatsLog.AUTO_ROTATE_REPORTED,
/* previous_orientation= */ surfaceRotationToProto(currentRotation),
/* proposed_orientation= */ surfaceRotationToProto(proposedRotation),
- /* resolved_orientation= */ surfaceRotationToProto(resolvedRotation),
+ result,
/* process_duration_millis= */ timeToCalculate);
}
static void logRotationStats(int proposedRotation, int currentRotation,
- int resolvedRotation) {
+ int result) {
FrameworkStatsLog.write(FrameworkStatsLog.AUTO_ROTATE_REPORTED,
/* previous_orientation= */ surfaceRotationToProto(currentRotation),
/* proposed_orientation= */ surfaceRotationToProto(proposedRotation),
- /* resolved_orientation= */ surfaceRotationToProto(resolvedRotation));
+ result);
}
- private static int surfaceRotationToProto(@Surface.Rotation int rotationPoseResult) {
+ static int errorCodeToProto(@RotationResolverService.FailureCodes int error) {
+ switch (error) {
+ case ROTATION_RESULT_FAILURE_NOT_SUPPORTED:
+ return RESOLUTION_UNAVAILABLE;
+ case ROTATION_RESULT_FAILURE_TIMED_OUT:
+ case ROTATION_RESULT_FAILURE_PREEMPTED:
+ case ROTATION_RESULT_FAILURE_CANCELLED:
+ return ORIENTATION_UNKNOWN;
+ default:
+ return RESOLUTION_FAILURE;
+ }
+ }
+
+ static int surfaceRotationToProto(@Surface.Rotation int rotationPoseResult) {
switch (rotationPoseResult) {
case Surface.ROTATION_0:
return AUTO_ROTATE_REPORTED__PROPOSED_ORIENTATION__ROTATION_0;
@@ -245,7 +262,8 @@ public class RotationResolverManagerService extends
case Surface.ROTATION_270:
return AUTO_ROTATE_REPORTED__PROPOSED_ORIENTATION__ROTATION_270;
default:
- return ORIENTATION_UNKNOWN;
+ // Should not reach here.
+ return RESOLUTION_FAILURE;
}
}
}
diff --git a/services/core/java/com/android/server/timedetector/EnvironmentImpl.java b/services/core/java/com/android/server/timedetector/EnvironmentImpl.java
index 072cc16f680b..7649958fe6c9 100644
--- a/services/core/java/com/android/server/timedetector/EnvironmentImpl.java
+++ b/services/core/java/com/android/server/timedetector/EnvironmentImpl.java
@@ -82,6 +82,9 @@ final class EnvironmentImpl implements TimeDetectorStrategyImpl.Environment {
handleAutoTimeDetectionChangedOnHandlerThread();
}
});
+ mServiceConfigAccessor.addListener(
+ () -> mHandler.post(
+ EnvironmentImpl.this::handleAutoTimeDetectionChangedOnHandlerThread));
}
/** Internal method for handling the auto time setting being changed. */
diff --git a/services/core/java/com/android/server/timedetector/ServerFlags.java b/services/core/java/com/android/server/timedetector/ServerFlags.java
index d91e9c258548..7145f5ea4a64 100644
--- a/services/core/java/com/android/server/timedetector/ServerFlags.java
+++ b/services/core/java/com/android/server/timedetector/ServerFlags.java
@@ -30,7 +30,9 @@ import com.android.server.timezonedetector.ServiceConfigAccessor;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.time.DateTimeException;
import java.time.Duration;
+import java.time.Instant;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
@@ -62,6 +64,8 @@ public final class ServerFlags {
KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS,
KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE,
KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT,
+ KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE,
+ KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE,
})
@Retention(RetentionPolicy.SOURCE)
@interface DeviceConfigKey {}
@@ -135,6 +139,23 @@ public final class ServerFlags {
public static final String KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT =
"location_time_zone_detection_setting_enabled_default";
+ /**
+ * The key to override the time detector origin priorities configuration. A comma-separated list
+ * of strings that will be passed to {@link TimeDetectorStrategy#stringToOrigin(String)}.
+ * All values must be recognized or the override value will be ignored.
+ */
+ @DeviceConfigKey
+ public static final String KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE =
+ "time_detector_origin_priorities_override";
+
+ /**
+ * The key to override the time detector lower bound configuration. The values is the number of
+ * milliseconds since the beginning of the Unix epoch.
+ */
+ @DeviceConfigKey
+ public static final String KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE =
+ "time_detector_lower_bound_millis_override";
+
@GuardedBy("mListeners")
private final ArrayMap<ConfigurationChangeListener, Set<String>> mListeners = new ArrayMap<>();
@@ -209,6 +230,38 @@ public final class ServerFlags {
}
/**
+ * Returns an optional string array value from {@link DeviceConfig} from the system_time
+ * namespace, returns {@link Optional#empty()} if there is no explicit value set.
+ */
+ @NonNull
+ public Optional<String[]> getOptionalStringArray(@DeviceConfigKey String key) {
+ Optional<String> string = getOptionalString(key);
+ if (!string.isPresent()) {
+ return Optional.empty();
+ }
+ return Optional.of(string.get().split(","));
+ }
+
+ /**
+ * Returns an {@link Instant} from {@link DeviceConfig} from the system_time
+ * namespace, returns the {@code defaultValue} if the value is missing or invalid.
+ */
+ @NonNull
+ public Optional<Instant> getOptionalInstant(@DeviceConfigKey String key) {
+ String value = DeviceConfig.getProperty(NAMESPACE_SYSTEM_TIME, key);
+ if (value == null) {
+ return Optional.empty();
+ }
+
+ try {
+ long millis = Long.parseLong(value);
+ return Optional.of(Instant.ofEpochMilli(millis));
+ } catch (DateTimeException | NumberFormatException e) {
+ return Optional.empty();
+ }
+ }
+
+ /**
* Returns an optional boolean value from {@link DeviceConfig} from the system_time
* namespace, returns {@link Optional#empty()} if there is no explicit value set.
*/
diff --git a/services/core/java/com/android/server/timedetector/ServiceConfigAccessor.java b/services/core/java/com/android/server/timedetector/ServiceConfigAccessor.java
index be4432ab61bf..7f7d01c29710 100644
--- a/services/core/java/com/android/server/timedetector/ServiceConfigAccessor.java
+++ b/services/core/java/com/android/server/timedetector/ServiceConfigAccessor.java
@@ -15,9 +15,10 @@
*/
package com.android.server.timedetector;
+import static com.android.server.timedetector.ServerFlags.KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE;
+import static com.android.server.timedetector.ServerFlags.KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE;
import static com.android.server.timedetector.TimeDetectorStrategy.ORIGIN_NETWORK;
import static com.android.server.timedetector.TimeDetectorStrategy.ORIGIN_TELEPHONY;
-import static com.android.server.timedetector.TimeDetectorStrategy.stringToOrigin;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -28,12 +29,17 @@ import android.util.ArraySet;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.Preconditions;
+import com.android.server.timedetector.TimeDetectorStrategy.Origin;
import com.android.server.timezonedetector.ConfigurationChangeListener;
import java.time.Instant;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
+import java.util.function.Supplier;
/**
* A singleton that provides access to service configuration for time detection. This hides how
@@ -48,7 +54,7 @@ final class ServiceConfigAccessor {
* By default telephony and network only suggestions are accepted and telephony takes
* precedence over network.
*/
- private static final @TimeDetectorStrategy.Origin int[]
+ private static final @Origin int[]
DEFAULT_AUTOMATIC_TIME_ORIGIN_PRIORITIES = { ORIGIN_TELEPHONY, ORIGIN_NETWORK };
/**
@@ -58,8 +64,11 @@ final class ServiceConfigAccessor {
private static final Instant TIME_LOWER_BOUND_DEFAULT = Instant.ofEpochMilli(
Long.max(android.os.Environment.getRootDirectory().lastModified(), Build.TIME));
+ /** Device config keys that affect the {@link TimeDetectorService}. */
private static final Set<String> SERVER_FLAGS_KEYS_TO_WATCH = Collections.unmodifiableSet(
new ArraySet<>(new String[] {
+ KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE,
+ KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE,
}));
private static final Object SLOCK = new Object();
@@ -70,8 +79,9 @@ final class ServiceConfigAccessor {
private static ServiceConfigAccessor sInstance;
@NonNull private final Context mContext;
+ @NonNull private final ConfigOriginPrioritiesSupplier mConfigOriginPrioritiesSupplier;
+ @NonNull private final ServerFlagsOriginPrioritiesSupplier mServerFlagsOriginPrioritiesSupplier;
@NonNull private final ServerFlags mServerFlags;
- @NonNull private final int[] mOriginPriorities;
/**
* If a newly calculated system clock time and the current system clock time differs by this or
@@ -83,7 +93,9 @@ final class ServiceConfigAccessor {
private ServiceConfigAccessor(@NonNull Context context) {
mContext = Objects.requireNonNull(context);
mServerFlags = ServerFlags.getInstance(mContext);
- mOriginPriorities = getOriginPrioritiesInternal();
+ mConfigOriginPrioritiesSupplier = new ConfigOriginPrioritiesSupplier(context);
+ mServerFlagsOriginPrioritiesSupplier =
+ new ServerFlagsOriginPrioritiesSupplier(mServerFlags);
mSystemClockUpdateThresholdMillis =
SystemProperties.getInt("ro.sys.time_detector_update_diff",
SYSTEM_CLOCK_UPDATE_THRESHOLD_MILLIS_DEFAULT);
@@ -111,31 +123,109 @@ final class ServiceConfigAccessor {
}
@NonNull
- int[] getOriginPriorities() {
- return mOriginPriorities;
+ @Origin int[] getOriginPriorities() {
+ int[] serverFlagsValue = mServerFlagsOriginPrioritiesSupplier.get();
+ if (serverFlagsValue != null) {
+ return serverFlagsValue;
+ }
+
+ int[] configValue = mConfigOriginPrioritiesSupplier.get();
+ if (configValue != null) {
+ return configValue;
+ }
+ return DEFAULT_AUTOMATIC_TIME_ORIGIN_PRIORITIES;
}
int systemClockUpdateThresholdMillis() {
return mSystemClockUpdateThresholdMillis;
}
+ @NonNull
Instant autoTimeLowerBound() {
- return TIME_LOWER_BOUND_DEFAULT;
+ return mServerFlags.getOptionalInstant(KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE)
+ .orElse(TIME_LOWER_BOUND_DEFAULT);
}
- private int[] getOriginPrioritiesInternal() {
- String[] originStrings =
- mContext.getResources().getStringArray(R.array.config_autoTimeSourcesPriority);
- if (originStrings.length == 0) {
- return DEFAULT_AUTOMATIC_TIME_ORIGIN_PRIORITIES;
- } else {
- int[] origins = new int[originStrings.length];
- for (int i = 0; i < originStrings.length; i++) {
- int origin = stringToOrigin(originStrings[i]);
- origins[i] = origin;
+ /**
+ * A base supplier of an array of time origin integers in priority order.
+ * It handles memoization of the result to avoid repeated string parsing when nothing has
+ * changed.
+ */
+ private abstract static class BaseOriginPrioritiesSupplier implements Supplier<@Origin int[]> {
+ @GuardedBy("this") @Nullable private String[] mLastPriorityStrings;
+ @GuardedBy("this") @Nullable private int[] mLastPriorityInts;
+
+ /** Returns an array of {@code ORIGIN_*} values, or {@code null}. */
+ @Override
+ @Nullable
+ public @Origin int[] get() {
+ String[] priorityStrings = lookupPriorityStrings();
+ synchronized (this) {
+ if (Arrays.equals(mLastPriorityStrings, priorityStrings)) {
+ return mLastPriorityInts;
+ }
+
+ int[] priorityInts = null;
+ if (priorityStrings != null && priorityStrings.length > 0) {
+ priorityInts = new int[priorityStrings.length];
+ try {
+ for (int i = 0; i < priorityInts.length; i++) {
+ String priorityString = priorityStrings[i];
+ Preconditions.checkArgument(priorityString != null);
+
+ priorityString = priorityString.trim();
+ priorityInts[i] = TimeDetectorStrategy.stringToOrigin(priorityString);
+ }
+ } catch (IllegalArgumentException e) {
+ // If any strings were bad and they were ignored then the semantics of the
+ // whole list could change, so return null.
+ priorityInts = null;
+ }
+ }
+ mLastPriorityStrings = priorityStrings;
+ mLastPriorityInts = priorityInts;
+ return priorityInts;
}
+ }
+
+ @Nullable
+ protected abstract String[] lookupPriorityStrings();
+ }
+
+ /** Supplies origin priorities from config_autoTimeSourcesPriority. */
+ private static class ConfigOriginPrioritiesSupplier extends BaseOriginPrioritiesSupplier {
+
+ @NonNull private final Context mContext;
+
+ private ConfigOriginPrioritiesSupplier(Context context) {
+ mContext = Objects.requireNonNull(context);
+ }
+
+ @Override
+ @Nullable
+ protected String[] lookupPriorityStrings() {
+ return mContext.getResources().getStringArray(R.array.config_autoTimeSourcesPriority);
+ }
+ }
+
+ /**
+ * Supplies origin priorities from device_config (server flags), see
+ * {@link ServerFlags#KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE}.
+ */
+ private static class ServerFlagsOriginPrioritiesSupplier extends BaseOriginPrioritiesSupplier {
+
+ @NonNull private final ServerFlags mServerFlags;
+
+ private ServerFlagsOriginPrioritiesSupplier(ServerFlags serverFlags) {
+ mServerFlags = Objects.requireNonNull(serverFlags);
+ }
- return origins;
+ @Override
+ @Nullable
+ protected String[] lookupPriorityStrings() {
+ Optional<String[]> priorityStrings = mServerFlags.getOptionalStringArray(
+ KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE);
+ return priorityStrings.orElse(null);
}
}
}
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorService.java b/services/core/java/com/android/server/timedetector/TimeDetectorService.java
index 14cab382d405..0f14af4b296b 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorService.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorService.java
@@ -30,6 +30,8 @@ import android.app.timedetector.TelephonyTimeSuggestion;
import android.content.Context;
import android.os.Binder;
import android.os.Handler;
+import android.os.ResultReceiver;
+import android.os.ShellCallback;
import android.util.IndentingPrintWriter;
import com.android.internal.annotations.VisibleForTesting;
@@ -100,6 +102,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
}
@Override
+ @NonNull
public TimeCapabilitiesAndConfig getCapabilitiesAndConfig() {
int userId = mCallerIdentityInjector.getCallingUserId();
return getTimeCapabilitiesAndConfig(userId);
@@ -119,7 +122,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
}
@Override
- public boolean updateConfiguration(TimeConfiguration timeConfiguration) {
+ public boolean updateConfiguration(@NonNull TimeConfiguration timeConfiguration) {
enforceManageTimeDetectorPermission();
// TODO(b/172891783) Add actual logic
return false;
@@ -180,6 +183,13 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
ipw.flush();
}
+ @Override
+ public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
+ String[] args, ShellCallback callback, ResultReceiver resultReceiver) {
+ new TimeDetectorShellCommand(this).exec(
+ this, in, out, err, args, callback, resultReceiver);
+ }
+
private void enforceSuggestTelephonyTimePermission() {
mContext.enforceCallingPermission(
android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE,
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorShellCommand.java b/services/core/java/com/android/server/timedetector/TimeDetectorShellCommand.java
new file mode 100644
index 000000000000..721986bc6e93
--- /dev/null
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorShellCommand.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+package com.android.server.timedetector;
+
+import static android.app.timedetector.TimeDetector.SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED;
+import static android.app.timedetector.TimeDetector.SHELL_COMMAND_SERVICE_NAME;
+import static android.provider.DeviceConfig.NAMESPACE_SYSTEM_TIME;
+
+import static com.android.server.timedetector.ServerFlags.KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE;
+import static com.android.server.timedetector.ServerFlags.KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE;
+
+import android.os.ShellCommand;
+
+import java.io.PrintWriter;
+
+/** Implements the shell command interface for {@link TimeDetectorService}. */
+class TimeDetectorShellCommand extends ShellCommand {
+
+ private final TimeDetectorService mInterface;
+
+ TimeDetectorShellCommand(TimeDetectorService timeDetectorService) {
+ mInterface = timeDetectorService;
+ }
+
+ @Override
+ public int onCommand(String cmd) {
+ if (cmd == null) {
+ return handleDefaultCommands(cmd);
+ }
+
+ switch (cmd) {
+ case SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED:
+ return runIsAutoDetectionEnabled();
+ default: {
+ return handleDefaultCommands(cmd);
+ }
+ }
+ }
+
+ private int runIsAutoDetectionEnabled() {
+ final PrintWriter pw = getOutPrintWriter();
+ boolean enabled = mInterface.getCapabilitiesAndConfig()
+ .getTimeConfiguration()
+ .isAutoDetectionEnabled();
+ pw.println(enabled);
+ return 0;
+ }
+
+ @Override
+ public void onHelp() {
+ final PrintWriter pw = getOutPrintWriter();
+ pw.printf("Time Detector (%s) commands:\n", SHELL_COMMAND_SERVICE_NAME);
+ pw.printf(" help\n");
+ pw.printf(" Print this help text.\n");
+ pw.printf(" %s\n", SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED);
+ pw.printf(" Prints true/false according to the automatic time detection setting.\n");
+ pw.println();
+ pw.printf("This service is also affected by the following device_config flags in the"
+ + " %s namespace:\n", NAMESPACE_SYSTEM_TIME);
+ pw.printf(" %s\n", KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE);
+ pw.printf(" The lower bound used to validate time suggestions when they are received."
+ + "\n");
+ pw.printf(" Specified in milliseconds since the start of the Unix epoch.\n");
+ pw.printf(" %s\n", KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE);
+ pw.printf(" A comma separated list of origins. See TimeDetectorStrategy for details.\n");
+ pw.println();
+ pw.printf("See \"adb shell cmd device_config\" for more information on setting flags.\n");
+ pw.println();
+ }
+}
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java b/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
index be382f0409b1..ff5060e6618e 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
@@ -27,10 +27,13 @@ import android.app.timedetector.TelephonyTimeSuggestion;
import android.os.TimestampedValue;
import android.util.IndentingPrintWriter;
+import com.android.internal.util.Preconditions;
import com.android.server.timezonedetector.Dumpable;
+import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
/**
* The interface for the class that implements the time detection algorithm used by the
@@ -44,9 +47,9 @@ import java.lang.annotation.RetentionPolicy;
*/
public interface TimeDetectorStrategy extends Dumpable {
- @IntDef({ ORIGIN_TELEPHONY, ORIGIN_MANUAL, ORIGIN_NETWORK, ORIGIN_GNSS,
- ORIGIN_EXTERNAL })
+ @IntDef({ ORIGIN_TELEPHONY, ORIGIN_MANUAL, ORIGIN_NETWORK, ORIGIN_GNSS, ORIGIN_EXTERNAL })
@Retention(RetentionPolicy.SOURCE)
+ @Target({ ElementType.TYPE_USE, ElementType.TYPE_PARAMETER })
@interface Origin {}
/** Used when a time value originated from a telephony signal. */
@@ -126,9 +129,11 @@ public interface TimeDetectorStrategy extends Dumpable {
/**
* Converts a human readable config string to one of the {@code ORIGIN_} constants.
- * Throws an {@link IllegalArgumentException} if the value is unrecognized.
+ * Throws an {@link IllegalArgumentException} if the value is unrecognized or {@code null}.
*/
static @Origin int stringToOrigin(String originString) {
+ Preconditions.checkArgument(originString != null);
+
switch (originString) {
case "manual":
return ORIGIN_MANUAL;
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java b/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java
index db8a59e0ab26..357c23222658 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java
@@ -325,9 +325,9 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
ipw.println("mEnvironment.systemClockMillis()=" + mEnvironment.systemClockMillis());
ipw.println("mEnvironment.systemClockUpdateThresholdMillis()="
+ mEnvironment.systemClockUpdateThresholdMillis());
+ Instant autoTimeLowerBound = mEnvironment.autoTimeLowerBound();
ipw.printf("mEnvironment.autoTimeLowerBound()=%s(%s)\n",
- mEnvironment.autoTimeLowerBound(),
- mEnvironment.autoTimeLowerBound().toEpochMilli());
+ autoTimeLowerBound, autoTimeLowerBound.toEpochMilli());
String priorities =
Arrays.stream(mEnvironment.autoOriginPriorities())
.mapToObj(TimeDetectorStrategy::originToString)
diff --git a/services/core/java/com/android/server/timezonedetector/ServiceConfigAccessor.java b/services/core/java/com/android/server/timezonedetector/ServiceConfigAccessor.java
index dddb11b7e249..4a1d9c40a11c 100644
--- a/services/core/java/com/android/server/timezonedetector/ServiceConfigAccessor.java
+++ b/services/core/java/com/android/server/timezonedetector/ServiceConfigAccessor.java
@@ -70,6 +70,10 @@ public final class ServiceConfigAccessor {
*/
public static final @ProviderMode String PROVIDER_MODE_ENABLED = "enabled";
+ /**
+ * Device config keys that affect the {@link TimeZoneDetectorService} service and {@link
+ * com.android.server.timezonedetector.location.LocationTimeZoneManagerService}.
+ */
private static final Set<String> SERVER_FLAGS_KEYS_TO_WATCH = Collections.unmodifiableSet(
new ArraySet<>(new String[] {
ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED,
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
index c20400ae7a4b..457dc4325e62 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
@@ -321,6 +321,13 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub
ipw.flush();
}
+ @Override
+ public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
+ String[] args, ShellCallback callback, ResultReceiver resultReceiver) {
+ new TimeZoneDetectorShellCommand(this).exec(
+ this, in, out, err, args, callback, resultReceiver);
+ }
+
private void enforceManageTimeZoneDetectorPermission() {
mContext.enforceCallingPermission(
android.Manifest.permission.MANAGE_TIME_AND_ZONE_DETECTION,
@@ -346,13 +353,5 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub
android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE,
"suggest manual time and time zone");
}
-
- @Override
- public void onShellCommand(FileDescriptor in, FileDescriptor out,
- FileDescriptor err, String[] args, ShellCallback callback,
- ResultReceiver resultReceiver) {
- new TimeZoneDetectorShellCommand(this).exec(
- this, in, out, err, args, callback, resultReceiver);
- }
}
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java
index 8c529c42fc8a..9899b448ba07 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java
@@ -18,12 +18,19 @@ package com.android.server.timezonedetector;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_IS_GEO_DETECTION_ENABLED;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_IS_GEO_DETECTION_SUPPORTED;
+import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SERVICE_NAME;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SET_AUTO_DETECTION_ENABLED;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SET_GEO_DETECTION_ENABLED;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SUGGEST_GEO_LOCATION_TIME_ZONE;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SUGGEST_MANUAL_TIME_ZONE;
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SUGGEST_TELEPHONY_TIME_ZONE;
+import static android.provider.DeviceConfig.NAMESPACE_SYSTEM_TIME;
+import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED;
+import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT;
+import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE;
+
+import android.app.time.LocationTimeZoneManager;
import android.app.time.TimeZoneConfiguration;
import android.app.timezonedetector.ManualTimeZoneSuggestion;
import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
@@ -155,20 +162,21 @@ class TimeZoneDetectorShellCommand extends ShellCommand {
@Override
public void onHelp() {
final PrintWriter pw = getOutPrintWriter();
- pw.println("Time Zone Detector (time_zone_detector) commands:");
- pw.println(" help");
- pw.println(" Print this help text.");
+ pw.printf("Time Zone Detector (%s) commands:\n", SHELL_COMMAND_SERVICE_NAME);
+ pw.printf(" help\n");
+ pw.printf(" Print this help text.\n");
pw.printf(" %s\n", SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED);
- pw.println(" Prints true/false according to the automatic tz detection setting");
+ pw.printf(" Prints true/false according to the automatic time zone detection setting\n");
pw.printf(" %s true|false\n", SHELL_COMMAND_SET_AUTO_DETECTION_ENABLED);
- pw.println(" Sets the automatic tz detection setting.");
+ pw.printf(" Sets the automatic time zone detection setting.\n");
pw.printf(" %s\n", SHELL_COMMAND_IS_GEO_DETECTION_SUPPORTED);
- pw.println(" Prints true/false according to whether geolocation time zone detection is"
- + " supported on this device");
+ pw.printf(" Prints true/false according to whether geolocation time zone detection is"
+ + " supported on this device.\n");
pw.printf(" %s\n", SHELL_COMMAND_IS_GEO_DETECTION_ENABLED);
- pw.println(" Prints true/false according to the geolocation tz detection setting");
+ pw.printf(" Prints true/false according to the geolocation time zone detection setting."
+ + "\n");
pw.printf(" %s true|false\n", SHELL_COMMAND_SET_GEO_DETECTION_ENABLED);
- pw.println(" Sets the geolocation tz detection setting.");
+ pw.printf(" Sets the geolocation time zone detection enabled setting.\n");
pw.printf(" %s <geolocation suggestion opts>\n",
SHELL_COMMAND_SUGGEST_GEO_LOCATION_TIME_ZONE);
pw.printf(" %s <manual suggestion opts>\n",
@@ -182,5 +190,27 @@ class TimeZoneDetectorShellCommand extends ShellCommand {
pw.println();
TelephonyTimeZoneSuggestion.printCommandLineOpts(pw);
pw.println();
+ pw.printf("This service is also affected by the following device_config flags in the"
+ + " %s namespace:\n", NAMESPACE_SYSTEM_TIME);
+ pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED);
+ pw.printf(" Only observed if the geolocation time zone detection feature is enabled in"
+ + " config.\n");
+ pw.printf(" Set this to false to disable the feature.\n");
+ pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT);
+ pw.printf(" Only used if the device does not have an explicit 'geolocation time zone"
+ + " detection enabled' setting stored [*].\n");
+ pw.printf(" The default is when unset is false.\n");
+ pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE);
+ pw.printf(" Used to override the device's 'geolocation time zone detection enabled'"
+ + " setting [*].\n");
+ pw.println();
+ pw.printf("[*] To be enabled, the user must still have location = on / auto time zone"
+ + " detection = on.\n");
+ pw.println();
+ pw.printf("See \"adb shell cmd device_config\" for more information on setting flags.\n");
+ pw.println();
+ pw.printf("Also see \"adb shell cmd %s help\" for lower-level location time zone"
+ + " commands / settings.\n", LocationTimeZoneManager.SERVICE_NAME);
+ pw.println();
}
}
diff --git a/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java b/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java
index c6df6241bf21..0f0de5004be9 100644
--- a/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java
+++ b/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java
@@ -24,9 +24,6 @@ import static android.app.time.LocationTimeZoneManager.SHELL_COMMAND_START;
import static android.app.time.LocationTimeZoneManager.SHELL_COMMAND_STOP;
import static android.provider.DeviceConfig.NAMESPACE_SYSTEM_TIME;
-import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED;
-import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT;
-import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE;
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS;
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_FUZZ_MILLIS;
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_MILLIS;
@@ -48,6 +45,7 @@ import android.app.time.GeolocationTimeZoneSuggestionProto;
import android.app.time.LocationTimeZoneManagerProto;
import android.app.time.LocationTimeZoneManagerServiceStateProto;
import android.app.time.TimeZoneProviderStateProto;
+import android.app.timezonedetector.TimeZoneDetector;
import android.os.Bundle;
import android.os.ShellCommand;
import android.util.IndentingPrintWriter;
@@ -103,84 +101,68 @@ class LocationTimeZoneManagerShellCommand extends ShellCommand {
public void onHelp() {
final PrintWriter pw = getOutPrintWriter();
pw.printf("Location Time Zone Manager (%s) commands for tests:\n", SERVICE_NAME);
- pw.println(" help");
- pw.println(" Print this help text.");
+ pw.printf(" help\n");
+ pw.printf(" Print this help text.\n");
pw.printf(" %s\n", SHELL_COMMAND_START);
- pw.println(" Starts the location_time_zone_manager, creating time zone providers.");
+ pw.printf(" Starts the service, creating location time zone providers.\n");
pw.printf(" %s\n", SHELL_COMMAND_STOP);
- pw.println(" Stops the location_time_zone_manager, destroying time zone providers.");
+ pw.printf(" Stops the service, destroying location time zone providers.\n");
pw.printf(" %s (true|false)\n", SHELL_COMMAND_RECORD_PROVIDER_STATES);
pw.printf(" Enables / disables provider state recording mode. See also %s. The default"
+ " state is always \"false\".\n", SHELL_COMMAND_DUMP_STATE);
- pw.println(" Note: When enabled, this mode consumes memory and it is only intended for"
- + " testing.");
- pw.println(" It should be disabled after use, or the device can be rebooted to"
- + " reset the mode to disabled.");
- pw.println(" Disabling (or enabling repeatedly) clears any existing stored states.");
+ pw.printf(" Note: When enabled, this mode consumes memory and it is only intended for"
+ + " testing.\n");
+ pw.printf(" It should be disabled after use, or the device can be rebooted to"
+ + " reset the mode to disabled.\n");
+ pw.printf(" Disabling (or enabling repeatedly) clears any existing stored states.\n");
pw.printf(" %s [%s]\n", SHELL_COMMAND_DUMP_STATE, DUMP_STATE_OPTION_PROTO);
- pw.println(" Dumps Location Time Zone Manager state for tests as text or binary proto"
- + " form.");
- pw.println(" See the LocationTimeZoneManagerServiceStateProto definition for details.");
+ pw.printf(" Dumps service state for tests as text or binary proto form.\n");
+ pw.printf(" See the LocationTimeZoneManagerServiceStateProto definition for details.\n");
pw.printf(" %s <provider index> <test command>\n",
SHELL_COMMAND_SEND_PROVIDER_TEST_COMMAND);
- pw.println(" Passes a test command to the named provider.");
+ pw.printf(" Passes a test command to the named provider.\n");
pw.println();
- pw.println("<provider index> = 0 (primary), 1 (secondary)");
+ pw.printf("<provider index> = 0 (primary), 1 (secondary)\n");
pw.println();
pw.printf("%s details:\n", SHELL_COMMAND_SEND_PROVIDER_TEST_COMMAND);
pw.println();
- pw.println("Provider <test command> encoding:");
+ pw.printf("Provider <test command> encoding:\n");
pw.println();
TestCommand.printShellCommandEncodingHelp(pw);
pw.println();
- pw.println("Simulated provider mode can be used to test the system server behavior or to"
- + " reproduce bugs without the complexity of using real providers.");
+ pw.printf("Simulated provider mode can be used to test the system server behavior or to"
+ + " reproduce bugs without the complexity of using real providers.\n");
pw.println();
- pw.println("The test commands for simulated providers are:");
+ pw.printf("The test commands for simulated providers are:\n");
SimulatedLocationTimeZoneProviderProxy.printTestCommandShellHelp(pw);
pw.println();
- pw.println("Test commands cannot currently be passed to real provider implementations.");
+ pw.printf("Test commands cannot currently be passed to real provider implementations.\n");
pw.println();
pw.printf("This service is also affected by the following device_config flags in the"
+ " %s namespace:\n", NAMESPACE_SYSTEM_TIME);
- pw.printf(" %s - [default=true], only observed if the feature is enabled in config,"
- + "set this to false to disable the feature\n",
- KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED);
- pw.printf(" %s - [default=false]. Only used if the device does not have an explicit"
- + " 'location time zone detection enabled' setting configured [*].\n",
- KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT);
- pw.printf(" %s - [default=<unset>]. Used to override the device's 'location time zone"
- + " detection enabled' setting [*]\n",
- KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE);
- pw.printf(" %s - Overrides the mode of the primary provider. Values=%s|%s|%s\n",
- KEY_PRIMARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE,
+ pw.printf(" %s\n", KEY_PRIMARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE);
+ pw.printf(" Overrides the mode of the primary provider. Values=%s|%s|%s\n",
PROVIDER_MODE_DISABLED, PROVIDER_MODE_ENABLED, PROVIDER_MODE_SIMULATED);
- pw.printf(" %s - Overrides the mode of the secondary provider. Values=%s|%s|%s\n",
- KEY_SECONDARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE,
+ pw.printf(" %s\n", KEY_SECONDARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE);
+ pw.printf(" Overrides the mode of the secondary provider. Values=%s|%s|%s\n",
PROVIDER_MODE_DISABLED, PROVIDER_MODE_ENABLED, PROVIDER_MODE_SIMULATED);
- pw.printf(" %s - \n",
- KEY_SECONDARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE);
- pw.printf(" %s - Sets the amount of time the service waits when uncertain before making"
- + " an 'uncertain' suggestion to the time zone detector.\n",
- KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS);
- pw.printf(" %s - Sets the initialization time passed to the location time zone providers"
- + "\n",
- KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_MILLIS);
- pw.printf(" %s - Sets the amount of extra time added to the location time zone providers"
- + " initialization time\n",
- KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_FUZZ_MILLIS);
- pw.println();
- pw.println("[*] The user must still have location = on / auto time zone detection = on");
+ pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS);
+ pw.printf(" Sets the amount of time the service waits when uncertain before making an"
+ + " 'uncertain' suggestion to the time zone detector.\n");
+ pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_MILLIS);
+ pw.printf(" Sets the initialization time passed to the providers.\n");
+ pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_FUZZ_MILLIS);
+ pw.printf(" Sets the amount of extra time added to the providers' initialization time."
+ + "\n");
pw.println();
pw.printf("Typically, use '%s' to stop the service before setting individual"
+ " flags and '%s' after to restart it.\n",
SHELL_COMMAND_STOP, SHELL_COMMAND_START);
pw.println();
- pw.println("Example:");
- pw.printf(" $ adb shell cmd device_config put %s %s %s\n",
- NAMESPACE_SYSTEM_TIME, KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT,
- "true");
- pw.println("See adb shell cmd device_config for more information.");
+ pw.printf("See \"adb shell cmd device_config\" for more information on setting flags.\n");
+ pw.println();
+ pw.printf("Also see \"adb shell cmd %s help\" for higher-level location time zone"
+ + " commands / settings.\n", TimeZoneDetector.SHELL_COMMAND_SERVICE_NAME);
pw.println();
}
diff --git a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java b/services/core/java/com/android/server/vcn/VcnGatewayConnection.java
index 23fb95b4fa40..38f5dd6c3a8d 100644
--- a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java
+++ b/services/core/java/com/android/server/vcn/VcnGatewayConnection.java
@@ -2127,7 +2127,7 @@ public class VcnGatewayConnection extends StateMachine {
(VcnControlPlaneIkeConfig) mConnectionConfig.getControlPlaneConfig();
final IkeSessionParams.Builder builder =
new IkeSessionParams.Builder(controlPlaneConfig.getIkeSessionParams());
- builder.setConfiguredNetwork(network);
+ builder.setNetwork(network);
return builder.build();
}
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index aa9727a28985..131ba12bb3c2 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -1090,6 +1090,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
if (info.configChanges != 0) {
pw.println(prefix + "configChanges=0x" + Integer.toHexString(info.configChanges));
}
+ pw.println(prefix + "neverSandboxDisplayApis=" + info.neverSandboxDisplayApis());
+ pw.println(prefix + "alwaysSandboxDisplayApis=" + info.alwaysSandboxDisplayApis());
}
if (mLastParentBeforePip != null) {
pw.println(prefix + "lastParentTaskIdBeforePip=" + mLastParentBeforePip.mTaskId);
@@ -1926,12 +1928,16 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
}
void scheduleAddStartingWindow() {
- // Note: we really want to do sendMessageAtFrontOfQueue() because we
- // want to process the message ASAP, before any other queued
- // messages.
- if (!mWmService.mAnimationHandler.hasCallbacks(mAddStartingWindow)) {
- ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Enqueueing ADD_STARTING");
- mWmService.mAnimationHandler.postAtFrontOfQueue(mAddStartingWindow);
+ if (StartingSurfaceController.DEBUG_ENABLE_SHELL_DRAWER) {
+ mAddStartingWindow.run();
+ } else {
+ // Note: we really want to do sendMessageAtFrontOfQueue() because we
+ // want to process the message ASAP, before any other queued
+ // messages.
+ if (!mWmService.mAnimationHandler.hasCallbacks(mAddStartingWindow)) {
+ ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Enqueueing ADD_STARTING");
+ mWmService.mAnimationHandler.postAtFrontOfQueue(mAddStartingWindow);
+ }
}
}
@@ -1943,7 +1949,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
final StartingData startingData;
synchronized (mWmService.mGlobalLock) {
// There can only be one adding request, silly caller!
- mWmService.mAnimationHandler.removeCallbacks(this);
+ if (!StartingSurfaceController.DEBUG_ENABLE_SHELL_DRAWER) {
+ mWmService.mAnimationHandler.removeCallbacks(this);
+ }
if (mStartingData == null) {
// Animation has been canceled... do nothing.
@@ -2192,17 +2200,22 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
+ " startingView=%s Callers=%s", this, mStartingWindow, mStartingSurface,
Debug.getCallers(5));
-
- // Use the same thread to remove the window as we used to add it, as otherwise we end up
- // with things in the view hierarchy being called from different threads.
- mWmService.mAnimationHandler.post(() -> {
+ final Runnable removeSurface = () -> {
ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Removing startingView=%s", surface);
try {
surface.remove(prepareAnimation);
} catch (Exception e) {
Slog.w(TAG_WM, "Exception when removing starting window", e);
}
- });
+ };
+
+ if (StartingSurfaceController.DEBUG_ENABLE_SHELL_DRAWER) {
+ removeSurface.run();
+ } else {
+ // Use the same thread to remove the window as we used to add it, as otherwise we end up
+ // with things in the view hierarchy being called from different threads.
+ mWmService.mAnimationHandler.post(removeSurface);
+ }
}
private void removeAppTokenFromDisplay() {
@@ -6888,7 +6901,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
getResolvedOverrideConfiguration().seq = mConfigurationSeq;
// Sandbox max bounds by setting it to the activity bounds, if activity is letterboxed, or
- // has or will have mCompatDisplayInsets for size compat.
+ // has or will have mCompatDisplayInsets for size compat. Also forces an activity to be
+ // sandboxed or not depending upon the configuration settings.
if (providesMaxBounds()) {
mTmpBounds.set(resolvedConfig.windowConfiguration.getBounds());
if (mTmpBounds.isEmpty()) {
@@ -6898,11 +6912,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
}
if (DEBUG_CONFIGURATION) {
ProtoLog.d(WM_DEBUG_CONFIGURATION, "Sandbox max bounds for uid %s to bounds %s. "
+ + "config to never sandbox = %s, "
+ + "config to always sandbox = %s, "
+ "letterboxing from mismatch with parent bounds = %s, "
+ "has mCompatDisplayInsets = %s, "
+ "should create compatDisplayInsets = %s",
getUid(),
mTmpBounds,
+ info.neverSandboxDisplayApis(),
+ info.alwaysSandboxDisplayApis(),
!matchParentBounds(),
mCompatDisplayInsets != null,
shouldCreateCompatDisplayInsets());
@@ -7300,12 +7318,19 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
if (mDisplayContent != null && !mDisplayContent.sandboxDisplayApis()) {
return false;
}
+ // Never apply sandboxing to an app that should be explicitly excluded from the config.
+ if (info != null && info.neverSandboxDisplayApis()) {
+ return false;
+ }
+ // Always apply sandboxing to an app that should be explicitly included from the config.
+ if (info != null && info.alwaysSandboxDisplayApis()) {
+ return true;
+ }
// Max bounds should be sandboxed where an activity is letterboxed (activity bounds will be
// smaller than task bounds).
if (!matchParentBounds()) {
return true;
}
-
// Max bounds should be sandboxed when an activity should have compatDisplayInsets, and it
// will keep the same bounds and screen configuration when it was first launched regardless
// how its parent window changes, so that the sandbox API will provide a consistent result.
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index a0beee4afcb9..b83945e950b6 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -4514,11 +4514,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
.setContentTitle(text)
.setContentText(
mContext.getText(R.string.heavy_weight_notification_detail))
- // TODO(b/175194709) Please replace FLAG_MUTABLE_UNAUDITED below
- // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE.
.setContentIntent(PendingIntent.getActivityAsUser(mContext, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT
- | PendingIntent.FLAG_MUTABLE_UNAUDITED, null,
+ | PendingIntent.FLAG_IMMUTABLE, null,
new UserHandle(userId)))
.build();
try {
diff --git a/services/core/java/com/android/server/wm/DisplayHashController.java b/services/core/java/com/android/server/wm/DisplayHashController.java
index 5a8af457c8ed..af0c3e3f319e 100644
--- a/services/core/java/com/android/server/wm/DisplayHashController.java
+++ b/services/core/java/com/android/server/wm/DisplayHashController.java
@@ -16,8 +16,8 @@
package com.android.server.wm;
-import static android.service.displayhash.DisplayHasherService.EXTRA_VERIFIED_DISPLAY_HASH;
-import static android.service.displayhash.DisplayHasherService.SERVICE_META_DATA;
+import static android.service.displayhash.DisplayHashingService.EXTRA_VERIFIED_DISPLAY_HASH;
+import static android.service.displayhash.DisplayHashingService.SERVICE_META_DATA;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_INVALID_HASH_ALGORITHM;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_TOO_MANY_REQUESTS;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_UNKNOWN;
@@ -52,8 +52,8 @@ import android.os.RemoteCallback;
import android.os.RemoteException;
import android.os.UserHandle;
import android.service.displayhash.DisplayHashParams;
-import android.service.displayhash.DisplayHasherService;
-import android.service.displayhash.IDisplayHasherService;
+import android.service.displayhash.DisplayHashingService;
+import android.service.displayhash.IDisplayHashingService;
import android.util.AttributeSet;
import android.util.Size;
import android.util.Slog;
@@ -79,7 +79,7 @@ import java.util.concurrent.TimeUnit;
import java.util.function.BiConsumer;
/**
- * Handles requests into {@link android.service.displayhash.DisplayHasherService}
+ * Handles requests into {@link DisplayHashingService}
*
* Do not hold the {@link WindowManagerService#mGlobalLock} when calling methods since they are
* blocking calls into another service.
@@ -91,7 +91,7 @@ public class DisplayHashController {
private final Object mServiceConnectionLock = new Object();
@GuardedBy("mServiceConnectionLock")
- private DisplayHasherServiceConnection mServiceConnection;
+ private DisplayHashingServiceConnection mServiceConnection;
private final Context mContext;
@@ -150,7 +150,7 @@ public class DisplayHashController {
private boolean mDisplayHashThrottlingEnabled = true;
private interface Command {
- void run(IDisplayHasherService service) throws RemoteException;
+ void run(IDisplayHashingService service) throws RemoteException;
}
DisplayHashController(Context context) {
@@ -233,7 +233,7 @@ public class DisplayHashController {
(float) size.getHeight() / boundsInWindow.height());
}
- args.setGrayscale(displayHashParams.isGrayscaleBuffer());
+ args.setGrayscale(displayHashParams.isUseGrayscale());
SurfaceControl.ScreenshotHardwareBuffer screenshotHardwareBuffer =
SurfaceControl.captureLayers(args.build());
@@ -405,9 +405,9 @@ public class DisplayHashController {
}
}
- TypedArray sa = res.obtainAttributes(attrs, R.styleable.DisplayHasherService);
+ TypedArray sa = res.obtainAttributes(attrs, R.styleable.DisplayHashingService);
mThrottleDurationMillis = sa.getInt(
- R.styleable.DisplayHasherService_throttleDurationMillis, 0);
+ R.styleable.DisplayHashingService_throttleDurationMillis, 0);
sa.recycle();
mParsedXml = true;
return true;
@@ -424,7 +424,7 @@ public class DisplayHashController {
if (DEBUG) Slog.v(TAG, "creating connection");
// Create the connection
- mServiceConnection = new DisplayHasherServiceConnection();
+ mServiceConnection = new DisplayHashingServiceConnection();
final ComponentName component = getServiceComponentName();
if (DEBUG) Slog.v(TAG, "binding to: " + component);
@@ -455,7 +455,7 @@ public class DisplayHashController {
return null;
}
- final Intent intent = new Intent(DisplayHasherService.SERVICE_INTERFACE);
+ final Intent intent = new Intent(DisplayHashingService.SERVICE_INTERFACE);
intent.setPackage(packageName);
final ResolveInfo resolveInfo = mContext.getPackageManager().resolveService(intent,
PackageManager.GET_SERVICES | PackageManager.GET_META_DATA);
@@ -472,10 +472,10 @@ public class DisplayHashController {
if (serviceInfo == null) return null;
final ComponentName name = new ComponentName(serviceInfo.packageName, serviceInfo.name);
- if (!Manifest.permission.BIND_DISPLAY_HASHER_SERVICE
+ if (!Manifest.permission.BIND_DISPLAY_HASHING_SERVICE
.equals(serviceInfo.permission)) {
Slog.w(TAG, name.flattenToShortString() + " requires permission "
- + Manifest.permission.BIND_DISPLAY_HASHER_SERVICE);
+ + Manifest.permission.BIND_DISPLAY_HASHING_SERVICE);
return null;
}
@@ -488,7 +488,7 @@ public class DisplayHashController {
private Bundle mResult;
private final CountDownLatch mCountDownLatch = new CountDownLatch(1);
- public Bundle run(BiConsumer<IDisplayHasherService, RemoteCallback> func) {
+ public Bundle run(BiConsumer<IDisplayHashingService, RemoteCallback> func) {
connectAndRun(service -> {
RemoteCallback callback = new RemoteCallback(result -> {
mResult = result;
@@ -507,9 +507,9 @@ public class DisplayHashController {
}
}
- private class DisplayHasherServiceConnection implements ServiceConnection {
+ private class DisplayHashingServiceConnection implements ServiceConnection {
@GuardedBy("mServiceConnectionLock")
- private IDisplayHasherService mRemoteService;
+ private IDisplayHashingService mRemoteService;
@GuardedBy("mServiceConnectionLock")
private ArrayList<Command> mQueuedCommands;
@@ -518,7 +518,7 @@ public class DisplayHashController {
public void onServiceConnected(ComponentName name, IBinder service) {
if (DEBUG) Slog.v(TAG, "onServiceConnected(): " + name);
synchronized (mServiceConnectionLock) {
- mRemoteService = IDisplayHasherService.Stub.asInterface(service);
+ mRemoteService = IDisplayHashingService.Stub.asInterface(service);
if (mQueuedCommands != null) {
final int size = mQueuedCommands.size();
if (DEBUG) Slog.d(TAG, "running " + size + " queued commands");
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index 4bb48b0bdbe8..9f9ac3e7a7c4 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -1436,20 +1436,18 @@ class RecentTasks {
/** @return whether the given task can be trimmed even if it is outside the visible range. */
protected boolean isTrimmable(Task task) {
- final Task rootTask = task.getRootTask();
-
- // No stack for task, just trim it
- if (rootTask == null) {
+ // The task was detached, just trim it.
+ if (!task.isAttached()) {
return true;
}
// Ignore tasks from different displays
// TODO (b/115289124): No Recents on non-default displays.
- if (!rootTask.isOnHomeDisplay()) {
+ if (!task.isOnHomeDisplay()) {
return false;
}
- final Task rootHomeTask = rootTask.getDisplayArea().getRootHomeTask();
+ final Task rootHomeTask = task.getDisplayArea().getRootHomeTask();
// Home task does not exist. Don't trim the task.
if (rootHomeTask == null) {
return false;
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index 129a6ce8e1d5..19c2e734a125 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -675,6 +675,8 @@ public class RecentsAnimationController implements DeathRecipient {
}
final SurfaceControl.Transaction t = mDisplayContent.getPendingTransaction();
final WindowContainer parent = navToken.getParent();
+ t.setLayer(navToken.getSurfaceControl(), navToken.getLastLayer());
+
if (animate) {
final NavBarFadeAnimationController navBarFadeAnimationController =
mDisplayContent.getDisplayPolicy().getNavBarFadeAnimationController();
diff --git a/services/core/java/com/android/server/wm/ShellRoot.java b/services/core/java/com/android/server/wm/ShellRoot.java
index 0902948bf559..b56e76d91370 100644
--- a/services/core/java/com/android/server/wm/ShellRoot.java
+++ b/services/core/java/com/android/server/wm/ShellRoot.java
@@ -76,8 +76,11 @@ public class ShellRoot {
throw new IllegalArgumentException(shellRootLayer
+ " is not an acceptable shell root layer.");
}
- mToken = new WindowToken(
- dc.mWmService, client.asBinder(), windowType, true, dc, true, false);
+ mToken = new WindowToken.Builder(dc.mWmService, client.asBinder(), windowType)
+ .setDisplayContent(dc)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .build();
mSurfaceControl = mToken.makeChildSurface(null)
.setContainerLayer()
.setName("Shell Root Leash " + dc.getDisplayId())
diff --git a/services/core/java/com/android/server/wm/StartingSurfaceController.java b/services/core/java/com/android/server/wm/StartingSurfaceController.java
index 603bfd153481..a9b06ca5042b 100644
--- a/services/core/java/com/android/server/wm/StartingSurfaceController.java
+++ b/services/core/java/com/android/server/wm/StartingSurfaceController.java
@@ -61,7 +61,7 @@ public class StartingSurfaceController {
synchronized (mService.mGlobalLock) {
final Task task = activity.getTask();
if (task != null && mService.mAtmService.mTaskOrganizerController.addStartingWindow(
- task, activity.token, theme)) {
+ task, activity.token, theme, null /* taskSnapshot */)) {
return new ShellStartingSurface(task);
}
}
@@ -128,7 +128,7 @@ public class StartingSurfaceController {
}
if (DEBUG_ENABLE_SHELL_DRAWER) {
mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
- activity.token, 0 /* launchTheme */);
+ activity.token, 0 /* launchTheme */, taskSnapshot);
return new ShellStartingSurface(task);
}
}
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java
index 565804fc9c8e..ccc0916cf25b 100644
--- a/services/core/java/com/android/server/wm/TaskOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java
@@ -43,6 +43,7 @@ import android.window.ITaskOrganizer;
import android.window.ITaskOrganizerController;
import android.window.StartingWindowInfo;
import android.window.TaskAppearedInfo;
+import android.window.TaskSnapshot;
import android.window.WindowContainerToken;
import com.android.internal.annotations.VisibleForTesting;
@@ -118,25 +119,25 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
return mTaskOrganizer.asBinder();
}
- void addStartingWindow(Task task, IBinder appToken, int launchTheme) {
+ void addStartingWindow(Task task, IBinder appToken, int launchTheme,
+ TaskSnapshot taskSnapshot) {
final StartingWindowInfo info = task.getStartingWindowInfo();
if (launchTheme != 0) {
info.splashScreenThemeResId = launchTheme;
}
- mDeferTaskOrgCallbacksConsumer.accept(() -> {
- try {
- mTaskOrganizer.addStartingWindow(info, appToken);
- } catch (RemoteException e) {
- Slog.e(TAG, "Exception sending onTaskStart callback", e);
- }
- });
+ info.mTaskSnapshot = taskSnapshot;
+ // make this happen prior than prepare surface
+ try {
+ mTaskOrganizer.addStartingWindow(info, appToken);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Exception sending onTaskStart callback", e);
+ }
}
void removeStartingWindow(Task task, boolean prepareAnimation) {
- mDeferTaskOrgCallbacksConsumer.accept(() -> {
- SurfaceControl firstWindowLeash = null;
- Rect mainFrame = null;
- // TODO enable shift up animation once we fix flicker test
+ SurfaceControl firstWindowLeash = null;
+ Rect mainFrame = null;
+ // TODO enable shift up animation once we fix flicker test
// final boolean playShiftUpAnimation = !task.inMultiWindowMode();
// if (prepareAnimation && playShiftUpAnimation) {
// final ActivityRecord topActivity = task.topActivityWithStartingWindow();
@@ -144,32 +145,29 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
// final WindowState mainWindow =
// topActivity.findMainWindow(false/* includeStartingApp */);
// if (mainWindow != null) {
- // TODO create proper leash instead of the copied SC
+ // TODO create proper leash instead of the copied SC
// firstWindowLeash = new SurfaceControl(mainWindow.getSurfaceControl(),
// "TaskOrganizerController.removeStartingWindow");
// mainFrame = mainWindow.getRelativeFrame();
// }
// }
// }
- try {
- mTaskOrganizer.removeStartingWindow(task.mTaskId, firstWindowLeash, mainFrame,
- /* TODO(183004107) Revert this when jankiness is solved
- prepareAnimation); */ false);
+ try {
+ mTaskOrganizer.removeStartingWindow(task.mTaskId, firstWindowLeash, mainFrame,
+ /* TODO(183004107) Revert this when jankiness is solved
+ prepareAnimation); */ false);
- } catch (RemoteException e) {
- Slog.e(TAG, "Exception sending onStartTaskFinished callback", e);
- }
- });
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Exception sending onStartTaskFinished callback", e);
+ }
}
void copySplashScreenView(Task task) {
- mDeferTaskOrgCallbacksConsumer.accept(() -> {
- try {
- mTaskOrganizer.copySplashScreenView(task.mTaskId);
- } catch (RemoteException e) {
- Slog.e(TAG, "Exception sending copyStartingWindowView callback", e);
- }
- });
+ try {
+ mTaskOrganizer.copySplashScreenView(task.mTaskId);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Exception sending copyStartingWindowView callback", e);
+ }
}
SurfaceControl prepareLeash(Task task, boolean visible, String reason) {
@@ -266,8 +264,9 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
mUid = uid;
}
- void addStartingWindow(Task t, IBinder appToken, int launchTheme) {
- mOrganizer.addStartingWindow(t, appToken, launchTheme);
+ void addStartingWindow(Task t, IBinder appToken, int launchTheme,
+ TaskSnapshot taskSnapshot) {
+ mOrganizer.addStartingWindow(t, appToken, launchTheme, taskSnapshot);
}
void removeStartingWindow(Task t, boolean prepareAnimation) {
@@ -505,14 +504,15 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
return !ArrayUtils.contains(UNSUPPORTED_WINDOWING_MODES, winMode);
}
- boolean addStartingWindow(Task task, IBinder appToken, int launchTheme) {
+ boolean addStartingWindow(Task task, IBinder appToken, int launchTheme,
+ TaskSnapshot taskSnapshot) {
final Task rootTask = task.getRootTask();
if (rootTask == null || rootTask.mTaskOrganizer == null) {
return false;
}
final TaskOrganizerState state =
mTaskOrganizerStates.get(rootTask.mTaskOrganizer.asBinder());
- state.addStartingWindow(task, appToken, launchTheme);
+ state.addStartingWindow(task, appToken, launchTheme, taskSnapshot);
return true;
}
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 191c3a117e85..bea733b0267e 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -1257,7 +1257,14 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
mOrientation = orientation;
final WindowContainer parent = getParent();
if (parent != null) {
- if (getConfiguration().orientation != getRequestedConfigurationOrientation()) {
+ if (getConfiguration().orientation != getRequestedConfigurationOrientation()
+ // Update configuration directly only if the change won't be dispatched from
+ // ancestor. This prevents from computing intermediate configuration when the
+ // parent also needs to be updated from the ancestor. E.g. the app requests
+ // portrait but the task is still in landscape. While updating from display,
+ // the task can be updated to portrait first so the configuration can be
+ // computed in a consistent environment.
+ && (inMultiWindowMode() || !handlesOrientationChangeFromDescendant())) {
// Resolve the requested orientation.
onConfigurationChanged(parent.getConfiguration());
}
diff --git a/services/core/java/com/android/server/wm/WindowContextListenerController.java b/services/core/java/com/android/server/wm/WindowContextListenerController.java
index 5e75996b0012..b417832d3be1 100644
--- a/services/core/java/com/android/server/wm/WindowContextListenerController.java
+++ b/services/core/java/com/android/server/wm/WindowContextListenerController.java
@@ -231,7 +231,7 @@ class WindowContextListenerController {
}
@Override
- public void onRequestedOverrideConfigurationChanged(Configuration overrideConfiguration) {
+ public void onMergedOverrideConfigurationChanged(Configuration mergedOverrideConfig) {
reportConfigToWindowTokenClient();
}
@@ -271,6 +271,21 @@ class WindowContextListenerController {
if (mDeathRecipient == null) {
throw new IllegalStateException("Invalid client token: " + mClientToken);
}
+ final WindowToken windowToken = mContainer.asWindowToken();
+ if (windowToken != null && windowToken.isFromClient()) {
+ // If the WindowContext created WindowToken is removed by
+ // WMS#postWindowRemoveCleanupLocked, the WindowContext should switch back to
+ // listen to previous associated DisplayArea.
+ final DisplayContent dc = windowToken.mWmService.mRoot
+ .getDisplayContent(mLastReportedDisplay);
+ // If we cannot obtain the DisplayContent, the DisplayContent may also be removed.
+ // We should proceed the removal process.
+ if (dc != null) {
+ final DisplayArea da = dc.findAreaForToken(windowToken);
+ updateContainer(da);
+ return;
+ }
+ }
mDeathRecipient.unlinkToDeath();
IWindowToken windowTokenClient = IWindowToken.Stub.asInterface(mClientToken);
try {
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 61fce88414da..2707b4d1d0fe 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -1543,13 +1543,20 @@ public class WindowManagerService extends IWindowManager.Stub
final IBinder binder = attrs.token != null ? attrs.token : windowContextToken;
final Bundle options = mWindowContextListenerController
.getOptions(windowContextToken);
- token = new WindowToken(this, binder, type, false /* persistOnEmpty */,
- displayContent, session.mCanAddInternalSystemWindow,
- isRoundedCornerOverlay, true /* fromClientToken */, options);
+ token = new WindowToken.Builder(this, binder, type)
+ .setDisplayContent(displayContent)
+ .setOwnerCanManageAppTokens(session.mCanAddInternalSystemWindow)
+ .setRoundedCornerOverlay(isRoundedCornerOverlay)
+ .setFromClientToken(true)
+ .setOptions(options)
+ .build();
} else {
final IBinder binder = attrs.token != null ? attrs.token : client.asBinder();
- token = new WindowToken(this, binder, type, false, displayContent,
- session.mCanAddInternalSystemWindow, isRoundedCornerOverlay);
+ token = new WindowToken.Builder(this, binder, type)
+ .setDisplayContent(displayContent)
+ .setOwnerCanManageAppTokens(session.mCanAddInternalSystemWindow)
+ .setRoundedCornerOverlay(isRoundedCornerOverlay)
+ .build();
}
} else if (rootType >= FIRST_APPLICATION_WINDOW
&& rootType <= LAST_APPLICATION_WINDOW) {
@@ -1620,8 +1627,10 @@ public class WindowManagerService extends IWindowManager.Stub
// It is not valid to use an app token with other system types; we will
// instead make a new token for it (as if null had been passed in for the token).
attrs.token = null;
- token = new WindowToken(this, client.asBinder(), type, false /* persistOnEmpty */,
- displayContent, session.mCanAddInternalSystemWindow);
+ token = new WindowToken.Builder(this, client.asBinder(), type)
+ .setDisplayContent(displayContent)
+ .setOwnerCanManageAppTokens(session.mCanAddInternalSystemWindow)
+ .build();
}
final WindowState win = new WindowState(this, session, client, token, parentWindow,
@@ -2647,9 +2656,12 @@ public class WindowManagerService extends IWindowManager.Stub
new WallpaperWindowToken(this, binder, true, dc,
true /* ownerCanManageAppTokens */, options);
} else {
- new WindowToken(this, binder, type, true /* persistOnEmpty */, dc,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, options);
+ new WindowToken.Builder(this, binder, type)
+ .setDisplayContent(dc)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .setOptions(options)
+ .build();
}
}
}
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index ef39560e59fc..fbfa400ba852 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -53,6 +53,7 @@ import android.view.DisplayInfo;
import android.view.InsetsState;
import android.view.SurfaceControl;
import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams.WindowType;
import android.window.WindowContext;
import com.android.internal.protolog.common.ProtoLog;
@@ -70,10 +71,10 @@ import java.util.Comparator;
class WindowToken extends WindowContainer<WindowState> {
private static final String TAG = TAG_WITH_CLASS_NAME ? "WindowToken" : TAG_WM;
- // The actual token.
+ /** The actual token */
final IBinder token;
- // The type of window this token is for, as per WindowManager.LayoutParams.
+ /** The type of window this token is for, as per {@link WindowManager.LayoutParams} */
final int windowType;
/**
@@ -86,8 +87,10 @@ class WindowToken extends WindowContainer<WindowState> {
/** {@code true} if this holds the rounded corner overlay */
final boolean mRoundedCornerOverlay;
- // Set if this token was explicitly added by a client, so should
- // persist (not be removed) when all windows are removed.
+ /**
+ * Set if this token was explicitly added by a client, so should persist (not be removed)
+ * when all windows are removed.
+ */
boolean mPersistOnEmpty;
// For printing.
@@ -198,21 +201,15 @@ class WindowToken extends WindowContainer<WindowState> {
return isFirstChildWindowGreaterThanSecond(newWindow, existingWindow) ? 1 : -1;
};
- WindowToken(WindowManagerService service, IBinder _token, int type, boolean persistOnEmpty,
- DisplayContent dc, boolean ownerCanManageAppTokens) {
- this(service, _token, type, persistOnEmpty, dc, ownerCanManageAppTokens,
- false /* roundedCornerOverlay */);
- }
-
- WindowToken(WindowManagerService service, IBinder _token, int type, boolean persistOnEmpty,
- DisplayContent dc, boolean ownerCanManageAppTokens, boolean roundedCornerOverlay) {
+ protected WindowToken(WindowManagerService service, IBinder _token, int type,
+ boolean persistOnEmpty, DisplayContent dc, boolean ownerCanManageAppTokens) {
this(service, _token, type, persistOnEmpty, dc, ownerCanManageAppTokens,
- roundedCornerOverlay, false /* fromClientToken */, null /* options */);
+ false /* roundedCornerOverlay */, false /* fromClientToken */, null /* options */);
}
- WindowToken(WindowManagerService service, IBinder _token, int type, boolean persistOnEmpty,
- DisplayContent dc, boolean ownerCanManageAppTokens, boolean roundedCornerOverlay,
- boolean fromClientToken, @Nullable Bundle options) {
+ protected WindowToken(WindowManagerService service, IBinder _token, int type,
+ boolean persistOnEmpty, DisplayContent dc, boolean ownerCanManageAppTokens,
+ boolean roundedCornerOverlay, boolean fromClientToken, @Nullable Bundle options) {
super(service);
token = _token;
windowType = type;
@@ -770,7 +767,69 @@ class WindowToken extends WindowContainer<WindowState> {
}
@Override
- @WindowManager.LayoutParams.WindowType int getWindowType() {
+ @WindowType int getWindowType() {
return windowType;
}
+
+ static class Builder {
+ private final WindowManagerService mService;
+ private final IBinder mToken;
+ @WindowType
+ private final int mType;
+
+ private boolean mPersistOnEmpty;
+ private DisplayContent mDisplayContent;
+ private boolean mOwnerCanManageAppTokens;
+ private boolean mRoundedCornerOverlay;
+ private boolean mFromClientToken;
+ @Nullable
+ private Bundle mOptions;
+
+ Builder(WindowManagerService service, IBinder token, int type) {
+ mService = service;
+ mToken = token;
+ mType = type;
+ }
+
+ /** @see WindowToken#mPersistOnEmpty */
+ Builder setPersistOnEmpty(boolean persistOnEmpty) {
+ mPersistOnEmpty = persistOnEmpty;
+ return this;
+ }
+
+ /** Sets the {@link DisplayContent} to be associated. */
+ Builder setDisplayContent(DisplayContent dc) {
+ mDisplayContent = dc;
+ return this;
+ }
+
+ /** @see WindowToken#mOwnerCanManageAppTokens */
+ Builder setOwnerCanManageAppTokens(boolean ownerCanManageAppTokens) {
+ mOwnerCanManageAppTokens = ownerCanManageAppTokens;
+ return this;
+ }
+
+ /** @see WindowToken#mRoundedCornerOverlay */
+ Builder setRoundedCornerOverlay(boolean roundedCornerOverlay) {
+ mRoundedCornerOverlay = roundedCornerOverlay;
+ return this;
+ }
+
+ /** @see WindowToken#mFromClientToken */
+ Builder setFromClientToken(boolean fromClientToken) {
+ mFromClientToken = fromClientToken;
+ return this;
+ }
+
+ /** @see WindowToken#mOptions */
+ Builder setOptions(Bundle options) {
+ mOptions = options;
+ return this;
+ }
+
+ WindowToken build() {
+ return new WindowToken(mService, mToken, mType, mPersistOnEmpty, mDisplayContent,
+ mOwnerCanManageAppTokens, mRoundedCornerOverlay, mFromClientToken, mOptions);
+ }
+ }
}
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index a99679ade958..74fbb428fe02 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -190,7 +190,6 @@ cc_defaults {
shared_libs: [
"libarcbridge",
"libarcbridgeservice",
- "libarctimer",
"libbase",
"libcap",
"libchrome",
diff --git a/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp b/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
index f0210eeb80e8..db5268337f5d 100644
--- a/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
+++ b/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
@@ -171,17 +171,23 @@ static inline int32_t readLEInt32(borrowed_fd fd) {
return result;
}
-static inline std::vector<char> readBytes(borrowed_fd fd) {
- int32_t size = readLEInt32(fd);
- std::vector<char> result(size);
- android::base::ReadFully(fd, result.data(), size);
- return result;
+static inline bool skipBytes(borrowed_fd fd, int* max_size) {
+ int32_t size = std::min(readLEInt32(fd), *max_size);
+ if (size <= 0) {
+ return false;
+ }
+ *max_size -= size;
+ return (TEMP_FAILURE_RETRY(lseek64(fd.get(), size, SEEK_CUR)) >= 0);
}
static inline int32_t skipIdSigHeaders(borrowed_fd fd) {
- readLEInt32(fd); // version
- readBytes(fd); // hashingInfo
- readBytes(fd); // signingInfo
+ // version
+ auto version = readLEInt32(fd);
+ int max_size = INCFS_MAX_SIGNATURE_SIZE - sizeof(version);
+ // hashingInfo and signingInfo
+ if (!skipBytes(fd, &max_size) || !skipBytes(fd, &max_size)) {
+ return -1;
+ }
return readLEInt32(fd); // size of the verity tree
}
@@ -253,8 +259,12 @@ static inline InputDescs openLocalFile(JNIEnv* env, const JniIds& jni, jobject s
unique_fd idsigFd = openLocalFile(env, jni, shellCommand, idsigPath);
if (idsigFd.ok()) {
- auto treeSize = verityTreeSizeForFile(size);
auto actualTreeSize = skipIdSigHeaders(idsigFd);
+ if (actualTreeSize < 0) {
+ ALOGE("Error reading .idsig file: wrong format.");
+ return {};
+ }
+ auto treeSize = verityTreeSizeForFile(size);
if (treeSize != actualTreeSize) {
ALOGE("Verity tree size mismatch: %d vs .idsig: %d.", int(treeSize),
int(actualTreeSize));
diff --git a/services/incremental/Android.bp b/services/incremental/Android.bp
index 5140b9f6db58..0bd737bec460 100644
--- a/services/incremental/Android.bp
+++ b/services/incremental/Android.bp
@@ -77,6 +77,7 @@ cc_defaults {
"libcutils",
"libincfs",
"liblog",
+ "libpermission",
"libz",
],
}
diff --git a/services/incremental/TEST_MAPPING b/services/incremental/TEST_MAPPING
index d93525600a2d..6aa8a939739a 100644
--- a/services/incremental/TEST_MAPPING
+++ b/services/incremental/TEST_MAPPING
@@ -24,7 +24,9 @@
},
{
"name": "CtsIncrementalInstallHostTestCases"
- },
+ }
+ ],
+ "presubmit-large": [
{
"name": "CtsInstalledLoadingProgressHostTests"
}
diff --git a/services/people/java/com/android/server/people/data/DataManager.java b/services/people/java/com/android/server/people/data/DataManager.java
index 9f24d9a5fa87..d913d4e37a5d 100644
--- a/services/people/java/com/android/server/people/data/DataManager.java
+++ b/services/people/java/com/android/server/people/data/DataManager.java
@@ -111,7 +111,8 @@ public class DataManager {
private static final long RECENT_NOTIFICATIONS_MAX_AGE_MS = 10 * DateUtils.DAY_IN_MILLIS;
private static final long QUERY_EVENTS_MAX_AGE_MS = 5L * DateUtils.MINUTE_IN_MILLIS;
private static final long USAGE_STATS_QUERY_INTERVAL_SEC = 120L;
- @VisibleForTesting static final int MAX_CACHED_RECENT_SHORTCUTS = 30;
+ @VisibleForTesting
+ static final int MAX_CACHED_RECENT_SHORTCUTS = 30;
private final Context mContext;
private final Injector mInjector;
@@ -256,14 +257,23 @@ public class DataManager {
@Nullable
private ConversationChannel getConversationChannel(String packageName, int userId,
String shortcutId, ConversationInfo conversationInfo) {
+ ShortcutInfo shortcutInfo = getShortcut(packageName, userId, shortcutId);
+ return getConversationChannel(shortcutInfo, conversationInfo);
+ }
+
+ @Nullable
+ private ConversationChannel getConversationChannel(ShortcutInfo shortcutInfo,
+ ConversationInfo conversationInfo) {
if (conversationInfo == null) {
return null;
}
- ShortcutInfo shortcutInfo = getShortcut(packageName, userId, shortcutId);
if (shortcutInfo == null) {
- Slog.e(TAG, " Shortcut no longer found: " + shortcutId);
+ Slog.e(TAG, " Shortcut no longer found");
return null;
}
+ String packageName = shortcutInfo.getPackage();
+ String shortcutId = shortcutInfo.getId();
+ int userId = shortcutInfo.getUserId();
int uid = mPackageManagerInternal.getPackageUid(packageName, 0, userId);
NotificationChannel parentChannel =
mNotificationManagerInternal.getNotificationChannel(packageName, uid,
@@ -363,7 +373,9 @@ public class DataManager {
}
}
builder.setStatuses(newStatuses);
- cs.addOrUpdate(builder.build());
+ updateConversationStoreThenNotifyListeners(cs, builder.build(),
+ packageData.getPackageName(),
+ packageData.getUserId());
});
});
}
@@ -397,11 +409,7 @@ public class DataManager {
ConversationInfo convToModify = getConversationInfoOrThrow(cs, conversationId);
ConversationInfo.Builder builder = new ConversationInfo.Builder(convToModify);
builder.addOrUpdateStatus(status);
- ConversationInfo modifiedConv = builder.build();
- cs.addOrUpdate(modifiedConv);
- ConversationChannel conversation = getConversationChannel(packageName, userId,
- conversationId, modifiedConv);
- notifyConversationsListeners(Arrays.asList(conversation));
+ updateConversationStoreThenNotifyListeners(cs, builder.build(), packageName, userId);
if (status.getEndTimeMillis() >= 0) {
mStatusExpReceiver.scheduleExpiration(
@@ -416,7 +424,7 @@ public class DataManager {
ConversationInfo convToModify = getConversationInfoOrThrow(cs, conversationId);
ConversationInfo.Builder builder = new ConversationInfo.Builder(convToModify);
builder.clearStatus(statusId);
- cs.addOrUpdate(builder.build());
+ updateConversationStoreThenNotifyListeners(cs, builder.build(), packageName, userId);
}
public void clearStatuses(String packageName, int userId, String conversationId) {
@@ -424,7 +432,7 @@ public class DataManager {
ConversationInfo convToModify = getConversationInfoOrThrow(cs, conversationId);
ConversationInfo.Builder builder = new ConversationInfo.Builder(convToModify);
builder.setStatuses(null);
- cs.addOrUpdate(builder.build());
+ updateConversationStoreThenNotifyListeners(cs, builder.build(), packageName, userId);
}
public @NonNull List<ConversationStatus> getStatuses(String packageName, int userId,
@@ -882,7 +890,8 @@ public class DataManager {
}
}
}
- conversationStore.addOrUpdate(builder.build());
+ updateConversationStoreThenNotifyListeners(conversationStore, builder.build(),
+ shortcutInfo);
}
@VisibleForTesting
@@ -945,6 +954,7 @@ public class DataManager {
conversationSelector.mConversationStore =
packageData.getConversationStore();
conversationSelector.mConversationInfo = ci;
+ conversationSelector.mPackageName = packageData.getPackageName();
}
});
if (conversationSelector.mConversationInfo == null) {
@@ -955,13 +965,16 @@ public class DataManager {
new ConversationInfo.Builder(conversationSelector.mConversationInfo);
builder.setContactStarred(helper.isStarred());
builder.setContactPhoneNumber(helper.getPhoneNumber());
- conversationSelector.mConversationStore.addOrUpdate(builder.build());
+ updateConversationStoreThenNotifyListeners(conversationSelector.mConversationStore,
+ builder.build(),
+ conversationSelector.mPackageName, userId);
mLastUpdatedTimestamp = helper.getLastUpdatedTimestamp();
}
private class ConversationSelector {
private ConversationStore mConversationStore = null;
private ConversationInfo mConversationInfo = null;
+ private String mPackageName = null;
}
}
@@ -1140,6 +1153,7 @@ public class DataManager {
.setLastEventTimestamp(sbn.getPostTime())
.setParentNotificationChannelId(sbn.getNotification().getChannelId())
.build();
+ // Don't update listeners on notifications posted.
packageData.getConversationStore().addOrUpdate(updated);
EventHistoryImpl eventHistory = packageData.getEventStore().getOrCreateEventHistory(
@@ -1215,7 +1229,8 @@ public class DataManager {
builder.setBubbled(false);
break;
}
- conversationStore.addOrUpdate(builder.build());
+ updateConversationStoreThenNotifyListeners(conversationStore, builder.build(), pkg,
+ packageData.getUserId());
}
synchronized boolean hasActiveNotifications(String packageName, String shortcutId) {
@@ -1253,7 +1268,9 @@ public class DataManager {
ConversationInfo updated = new ConversationInfo.Builder(conversationInfo)
.setLastEventTimestamp(event.getTimestamp())
.build();
- packageData.getConversationStore().addOrUpdate(updated);
+ updateConversationStoreThenNotifyListeners(packageData.getConversationStore(),
+ updated,
+ packageData.getPackageName(), packageData.getUserId());
}
}
}
@@ -1266,7 +1283,27 @@ public class DataManager {
}
}
- // TODO(b/178792356): Trigger ConversationsListener on all-related data changes.
+ private void updateConversationStoreThenNotifyListeners(ConversationStore cs,
+ ConversationInfo modifiedConv,
+ String packageName, int userId) {
+ cs.addOrUpdate(modifiedConv);
+ ConversationChannel channel = getConversationChannel(packageName, userId,
+ modifiedConv.getShortcutId(), modifiedConv);
+ if (channel != null) {
+ notifyConversationsListeners(Arrays.asList(channel));
+ }
+ }
+
+ private void updateConversationStoreThenNotifyListeners(ConversationStore cs,
+ ConversationInfo modifiedConv, ShortcutInfo shortcutInfo) {
+ cs.addOrUpdate(modifiedConv);
+ ConversationChannel channel = getConversationChannel(shortcutInfo, modifiedConv);
+ if (channel != null) {
+ notifyConversationsListeners(Arrays.asList(channel));
+ }
+ }
+
+
@VisibleForTesting
void notifyConversationsListeners(
@Nullable final List<ConversationChannel> changedConversations) {
diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java
index 0cd470ae7ec4..ffbcc45107a1 100644
--- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/ConnectivityControllerTest.java
@@ -137,7 +137,7 @@ public class ConnectivityControllerTest {
@Test
public void testUsable() throws Exception {
- final Network net = new Network(101);
+ final Network net = mock(Network.class);
final JobInfo.Builder job = createJob()
.setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1),
DataUnit.MEBIBYTES.toBytes(1))
@@ -148,52 +148,52 @@ public class ConnectivityControllerTest {
// Slow network is too slow
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1)
- .setLinkDownstreamBandwidthKbps(1), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1)
+ .setLinkDownstreamBandwidthKbps(1).build(), mConstants));
// Slow downstream
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1024)
- .setLinkDownstreamBandwidthKbps(1), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1024)
+ .setLinkDownstreamBandwidthKbps(1).build(), mConstants));
// Slow upstream
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1)
- .setLinkDownstreamBandwidthKbps(1024), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1)
+ .setLinkDownstreamBandwidthKbps(1024).build(), mConstants));
// Fast network looks great
assertTrue(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1024)
- .setLinkDownstreamBandwidthKbps(1024), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1024)
+ .setLinkDownstreamBandwidthKbps(1024).build(), mConstants));
// Slow network still good given time
assertTrue(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(130)
- .setLinkDownstreamBandwidthKbps(130), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(130)
+ .setLinkDownstreamBandwidthKbps(130).build(), mConstants));
when(mService.getMaxJobExecutionTimeMs(any())).thenReturn(60_000L);
// Slow network is too slow
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1)
- .setLinkDownstreamBandwidthKbps(1), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1)
+ .setLinkDownstreamBandwidthKbps(1).build(), mConstants));
// Slow downstream
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(137)
- .setLinkDownstreamBandwidthKbps(1), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(137)
+ .setLinkDownstreamBandwidthKbps(1).build(), mConstants));
// Slow upstream
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1)
- .setLinkDownstreamBandwidthKbps(137), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1)
+ .setLinkDownstreamBandwidthKbps(137).build(), mConstants));
// Network good enough
assertTrue(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(137)
- .setLinkDownstreamBandwidthKbps(137), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(137)
+ .setLinkDownstreamBandwidthKbps(137).build(), mConstants));
// Network slightly too slow given reduced time
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(130)
- .setLinkDownstreamBandwidthKbps(130), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(130)
+ .setLinkDownstreamBandwidthKbps(130).build(), mConstants));
}
@Test
public void testInsane() throws Exception {
- final Network net = new Network(101);
+ final Network net = mock(Network.class);
final JobInfo.Builder job = createJob()
.setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1),
DataUnit.MEBIBYTES.toBytes(1))
@@ -205,14 +205,15 @@ public class ConnectivityControllerTest {
// Suspended networks aren't usable.
assertFalse(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().removeCapability(NET_CAPABILITY_NOT_SUSPENDED)
- .setLinkUpstreamBandwidthKbps(1024).setLinkDownstreamBandwidthKbps(1024),
+ createCapabilitiesBuilder().removeCapability(NET_CAPABILITY_NOT_SUSPENDED)
+ .setLinkUpstreamBandwidthKbps(1024).setLinkDownstreamBandwidthKbps(1024)
+ .build(),
mConstants));
// Not suspended networks are usable.
assertTrue(controller.isSatisfied(createJobStatus(job), net,
- createCapabilities().setLinkUpstreamBandwidthKbps(1024)
- .setLinkDownstreamBandwidthKbps(1024), mConstants));
+ createCapabilitiesBuilder().setLinkUpstreamBandwidthKbps(1024)
+ .setLinkDownstreamBandwidthKbps(1024).build(), mConstants));
}
@Test
@@ -229,17 +230,17 @@ public class ConnectivityControllerTest {
// Uncongested network is whenever
{
- final Network net = new Network(101);
- final NetworkCapabilities caps = createCapabilities()
- .addCapability(NET_CAPABILITY_NOT_CONGESTED);
+ final Network net = mock(Network.class);
+ final NetworkCapabilities caps = createCapabilitiesBuilder()
+ .addCapability(NET_CAPABILITY_NOT_CONGESTED).build();
assertTrue(controller.isSatisfied(early, net, caps, mConstants));
assertTrue(controller.isSatisfied(late, net, caps, mConstants));
}
// Congested network is more selective
{
- final Network net = new Network(101);
- final NetworkCapabilities caps = createCapabilities();
+ final Network net = mock(Network.class);
+ final NetworkCapabilities caps = createCapabilitiesBuilder().build();
assertFalse(controller.isSatisfied(early, net, caps, mConstants));
assertTrue(controller.isSatisfied(late, net, caps, mConstants));
}
@@ -263,10 +264,11 @@ public class ConnectivityControllerTest {
// Unmetered network is whenever
{
- final Network net = new Network(101);
- final NetworkCapabilities caps = createCapabilities()
+ final Network net = mock(Network.class);
+ final NetworkCapabilities caps = createCapabilitiesBuilder()
.addCapability(NET_CAPABILITY_NOT_CONGESTED)
- .addCapability(NET_CAPABILITY_NOT_METERED);
+ .addCapability(NET_CAPABILITY_NOT_METERED)
+ .build();
assertTrue(controller.isSatisfied(early, net, caps, mConstants));
assertTrue(controller.isSatisfied(late, net, caps, mConstants));
assertTrue(controller.isSatisfied(earlyPrefetch, net, caps, mConstants));
@@ -275,9 +277,10 @@ public class ConnectivityControllerTest {
// Metered network is only when prefetching and late
{
- final Network net = new Network(101);
- final NetworkCapabilities caps = createCapabilities()
- .addCapability(NET_CAPABILITY_NOT_CONGESTED);
+ final Network net = mock(Network.class);
+ final NetworkCapabilities caps = createCapabilitiesBuilder()
+ .addCapability(NET_CAPABILITY_NOT_CONGESTED)
+ .build();
assertFalse(controller.isSatisfied(early, net, caps, mConstants));
assertFalse(controller.isSatisfied(late, net, caps, mConstants));
assertFalse(controller.isSatisfied(earlyPrefetch, net, caps, mConstants));
@@ -301,11 +304,12 @@ public class ConnectivityControllerTest {
final ConnectivityController controller = new ConnectivityController(mService);
- final Network meteredNet = new Network(101);
- final NetworkCapabilities meteredCaps = createCapabilities();
- final Network unmeteredNet = new Network(202);
- final NetworkCapabilities unmeteredCaps = createCapabilities()
- .addCapability(NET_CAPABILITY_NOT_METERED);
+ final Network meteredNet = mock(Network.class);
+ final NetworkCapabilities meteredCaps = createCapabilitiesBuilder().build();
+ final Network unmeteredNet = mock(Network.class);
+ final NetworkCapabilities unmeteredCaps = createCapabilitiesBuilder()
+ .addCapability(NET_CAPABILITY_NOT_METERED)
+ .build();
final JobStatus red = createJobStatus(createJob()
.setEstimatedNetworkBytes(DataUnit.MEBIBYTES.toBytes(1), 0)
@@ -610,9 +614,9 @@ public class ConnectivityControllerTest {
networked.setStandbyBucket(FREQUENT_INDEX);
unnetworked.setStandbyBucket(FREQUENT_INDEX);
- final Network cellularNet = new Network(101);
+ final Network cellularNet = mock(Network.class);
final NetworkCapabilities cellularCaps =
- createCapabilities().addTransportType(TRANSPORT_CELLULAR);
+ createCapabilitiesBuilder().addTransportType(TRANSPORT_CELLULAR).build();
final ConnectivityController controller = new ConnectivityController(mService);
controller.maybeStartTrackingJobLocked(networked, null);
@@ -660,8 +664,8 @@ public class ConnectivityControllerTest {
}
}
- private static NetworkCapabilities createCapabilities() {
- return new NetworkCapabilities().addCapability(NET_CAPABILITY_INTERNET)
+ private static NetworkCapabilities.Builder createCapabilitiesBuilder() {
+ return new NetworkCapabilities.Builder().addCapability(NET_CAPABILITY_INTERNET)
.addCapability(NET_CAPABILITY_NOT_SUSPENDED)
.addCapability(NET_CAPABILITY_NOT_VCN_MANAGED)
.addCapability(NET_CAPABILITY_VALIDATED);
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt b/services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt
index 411c31c97120..72bc77ebb9ef 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/PackageManagerServiceHibernationTests.kt
@@ -24,6 +24,7 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.testing.TestableLooper.RunWithLooper
import com.android.server.apphibernation.AppHibernationManagerInternal
+import com.android.server.apphibernation.AppHibernationService
import com.android.server.extendedtestutils.wheneverStatic
import com.android.server.testutils.whenever
import org.junit.Assert.assertFalse
@@ -61,6 +62,7 @@ class PackageManagerServiceHibernationTests {
MockitoAnnotations.initMocks(this)
wheneverStatic { DeviceConfig.getBoolean(
NAMESPACE_APP_HIBERNATION, KEY_APP_HIBERNATION_ENABLED, false) }.thenReturn(true)
+ AppHibernationService.sIsServiceEnabled = true
rule.system().stageNominalSystemState()
whenever(rule.mocks().injector.getLocalService(AppHibernationManagerInternal::class.java))
.thenReturn(appHibernationManager)
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
index 49a54ec1354b..aecc7942b266 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
@@ -112,14 +112,13 @@ public class RebootEscrowManagerTests {
private MockableRebootEscrowInjected mInjected;
private RebootEscrowManager mService;
private SecretKey mAesKey;
+ private MockInjector mMockInjector;
public interface MockableRebootEscrowInjected {
int getBootCount();
long getCurrentTimeMillis();
- boolean forceServerBased();
-
void reportMetric(boolean success, int errorCode, int serviceType, int attemptCount,
int escrowDurationInSeconds, int vbmetaDigestStatus, int durationSinceBootComplete);
}
@@ -127,11 +126,12 @@ public class RebootEscrowManagerTests {
static class MockInjector extends RebootEscrowManager.Injector {
private final IRebootEscrow mRebootEscrow;
private final ResumeOnRebootServiceConnection mServiceConnection;
- private final RebootEscrowProviderInterface mRebootEscrowProvider;
+ private final RebootEscrowProviderInterface mDefaultRebootEscrowProvider;
private final UserManager mUserManager;
private final MockableRebootEscrowInjected mInjected;
private final RebootEscrowKeyStoreManager mKeyStoreManager;
- private final boolean mServerBased;
+ private boolean mServerBased;
+ private RebootEscrowProviderInterface mRebootEscrowProviderInUse;
MockInjector(Context context, UserManager userManager,
IRebootEscrow rebootEscrow,
@@ -149,7 +149,7 @@ public class RebootEscrowManagerTests {
return mRebootEscrow;
}
};
- mRebootEscrowProvider = new RebootEscrowProviderHalImpl(halInjector);
+ mDefaultRebootEscrowProvider = new RebootEscrowProviderHalImpl(halInjector);
mUserManager = userManager;
mKeyStoreManager = keyStoreManager;
mInjected = injected;
@@ -166,7 +166,8 @@ public class RebootEscrowManagerTests {
mServerBased = true;
RebootEscrowProviderServerBasedImpl.Injector injector =
new RebootEscrowProviderServerBasedImpl.Injector(serviceConnection);
- mRebootEscrowProvider = new RebootEscrowProviderServerBasedImpl(storage, injector);
+ mDefaultRebootEscrowProvider = new RebootEscrowProviderServerBasedImpl(
+ storage, injector);
mUserManager = userManager;
mKeyStoreManager = keyStoreManager;
mInjected = injected;
@@ -184,15 +185,23 @@ public class RebootEscrowManagerTests {
@Override
public boolean serverBasedResumeOnReboot() {
- if (mInjected.forceServerBased()) {
- return true;
- }
return mServerBased;
}
@Override
+ public RebootEscrowProviderInterface createRebootEscrowProviderIfNeeded() {
+ mRebootEscrowProviderInUse = mDefaultRebootEscrowProvider;
+ return mRebootEscrowProviderInUse;
+ }
+
+ @Override
public RebootEscrowProviderInterface getRebootEscrowProvider() {
- return mRebootEscrowProvider;
+ return mRebootEscrowProviderInUse;
+ }
+
+ @Override
+ public void clearRebootEscrowProvider() {
+ mRebootEscrowProviderInUse = null;
}
@Override
@@ -264,13 +273,15 @@ public class RebootEscrowManagerTests {
when(mCallbacks.isUserSecure(NONSECURE_SECONDARY_USER_ID)).thenReturn(false);
when(mCallbacks.isUserSecure(SECURE_SECONDARY_USER_ID)).thenReturn(true);
mInjected = mock(MockableRebootEscrowInjected.class);
- mService = new RebootEscrowManager(new MockInjector(mContext, mUserManager, mRebootEscrow,
- mKeyStoreManager, mStorage, mInjected), mCallbacks, mStorage);
+ mMockInjector = new MockInjector(mContext, mUserManager, mRebootEscrow,
+ mKeyStoreManager, mStorage, mInjected);
+ mService = new RebootEscrowManager(mMockInjector, mCallbacks, mStorage);
}
private void setServerBasedRebootEscrowProvider() throws Exception {
- mService = new RebootEscrowManager(new MockInjector(mContext, mUserManager,
- mServiceConnection, mKeyStoreManager, mStorage, mInjected), mCallbacks, mStorage);
+ mMockInjector = new MockInjector(mContext, mUserManager, mServiceConnection,
+ mKeyStoreManager, mStorage, mInjected);
+ mService = new RebootEscrowManager(mMockInjector, mCallbacks, mStorage);
}
@Test
@@ -317,6 +328,7 @@ public class RebootEscrowManagerTests {
doThrow(ServiceSpecificException.class).when(mRebootEscrow).storeKey(any());
mService.clearRebootEscrow();
verify(mRebootEscrow).storeKey(eq(new byte[32]));
+ assertNull(mMockInjector.getRebootEscrowProvider());
}
@Test
@@ -785,7 +797,7 @@ public class RebootEscrowManagerTests {
assertNull(
mStorage.getString(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, null, USER_SYSTEM));
// Change the provider to server based, expect the reboot to fail
- when(mInjected.forceServerBased()).thenReturn(true);
+ mMockInjector.mServerBased = true;
assertEquals(ARM_REBOOT_ERROR_PROVIDER_MISMATCH, mService.armRebootEscrowIfNeeded());
assertNull(
mStorage.getString(RebootEscrowManager.REBOOT_ESCROW_ARMED_KEY, null, USER_SYSTEM));
diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
index 352832b34c96..da6c30e1cb0a 100644
--- a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
@@ -1093,7 +1093,7 @@ public class NetworkPolicyManagerServiceTest {
// first, pretend that wifi network comes online. no policy active,
// which means we shouldn't push limit to interface.
snapshots = List.of(buildWifi());
- when(mConnManager.getAllNetworkStateSnapshot()).thenReturn(snapshots);
+ when(mConnManager.getAllNetworkStateSnapshots()).thenReturn(snapshots);
mPolicyListener.expect().onMeteredIfacesChanged(any());
mServiceContext.sendBroadcast(new Intent(CONNECTIVITY_ACTION));
@@ -1101,7 +1101,7 @@ public class NetworkPolicyManagerServiceTest {
// now change cycle to be on 15th, and test in early march, to verify we
// pick cycle day in previous month.
- when(mConnManager.getAllNetworkStateSnapshot()).thenReturn(snapshots);
+ when(mConnManager.getAllNetworkStateSnapshots()).thenReturn(snapshots);
// pretend that 512 bytes total have happened
stats = new NetworkStats(getElapsedRealtime(), 1)
@@ -1362,7 +1362,7 @@ public class NetworkPolicyManagerServiceTest {
.insertEntry(TEST_IFACE, 0L, 0L, 0L, 0L);
{
- when(mConnManager.getAllNetworkStateSnapshot()).thenReturn(snapshots);
+ when(mConnManager.getAllNetworkStateSnapshots()).thenReturn(snapshots);
when(mStatsService.getNetworkTotalBytes(sTemplateWifi, TIME_FEB_15,
currentTimeMillis())).thenReturn(stats.getTotalBytes());
@@ -1485,7 +1485,7 @@ public class NetworkPolicyManagerServiceTest {
}
private PersistableBundle setupUpdateMobilePolicyCycleTests() throws RemoteException {
- when(mConnManager.getAllNetworkStateSnapshot())
+ when(mConnManager.getAllNetworkStateSnapshots())
.thenReturn(new ArrayList<NetworkStateSnapshot>());
setupTelephonySubscriptionManagers(FAKE_SUB_ID, FAKE_SUBSCRIBER_ID);
@@ -1498,7 +1498,7 @@ public class NetworkPolicyManagerServiceTest {
@Test
public void testUpdateMobilePolicyCycleWithNullConfig() throws RemoteException {
- when(mConnManager.getAllNetworkStateSnapshot())
+ when(mConnManager.getAllNetworkStateSnapshots())
.thenReturn(new ArrayList<NetworkStateSnapshot>());
setupTelephonySubscriptionManagers(FAKE_SUB_ID, FAKE_SUBSCRIBER_ID);
@@ -2089,7 +2089,7 @@ public class NetworkPolicyManagerServiceTest {
TEST_NETWORK,
buildNetworkCapabilities(TEST_SUB_ID, roaming),
buildLinkProperties(TEST_IFACE), TEST_IMSI, TYPE_MOBILE));
- when(mConnManager.getAllNetworkStateSnapshot()).thenReturn(snapshots);
+ when(mConnManager.getAllNetworkStateSnapshots()).thenReturn(snapshots);
}
private void expectDefaultCarrierConfig() throws Exception {
diff --git a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
index 7709edbbbb31..6c1e915b53b7 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
@@ -135,24 +135,41 @@ public final class DataManagerTest {
private static final String PARENT_NOTIFICATION_CHANNEL_ID = "test";
private static final long MILLIS_PER_MINUTE = 1000L * 60L;
- @Mock private Context mContext;
- @Mock private ShortcutServiceInternal mShortcutServiceInternal;
- @Mock private UsageStatsManagerInternal mUsageStatsManagerInternal;
- @Mock private PackageManagerInternal mPackageManagerInternal;
- @Mock private NotificationManagerInternal mNotificationManagerInternal;
- @Mock private UserManager mUserManager;
- @Mock private PackageManager mPackageManager;
- @Mock private TelephonyManager mTelephonyManager;
- @Mock private TelecomManager mTelecomManager;
- @Mock private ContentResolver mContentResolver;
- @Mock private JobScheduler mJobScheduler;
- @Mock private StatusBarNotification mStatusBarNotification;
- @Mock private Notification mNotification;
- @Mock private AlarmManager mAlarmManager;
-
- @Captor private ArgumentCaptor<ShortcutChangeCallback> mShortcutChangeCallbackCaptor;
- @Captor private ArgumentCaptor<BroadcastReceiver> mBroadcastReceiverCaptor;
- @Captor private ArgumentCaptor<Integer> mQueryFlagsCaptor;
+ @Mock
+ private Context mContext;
+ @Mock
+ private ShortcutServiceInternal mShortcutServiceInternal;
+ @Mock
+ private UsageStatsManagerInternal mUsageStatsManagerInternal;
+ @Mock
+ private PackageManagerInternal mPackageManagerInternal;
+ @Mock
+ private NotificationManagerInternal mNotificationManagerInternal;
+ @Mock
+ private UserManager mUserManager;
+ @Mock
+ private PackageManager mPackageManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelecomManager mTelecomManager;
+ @Mock
+ private ContentResolver mContentResolver;
+ @Mock
+ private JobScheduler mJobScheduler;
+ @Mock
+ private StatusBarNotification mStatusBarNotification;
+ @Mock
+ private Notification mNotification;
+ @Mock
+ private AlarmManager mAlarmManager;
+
+ @Captor
+ private ArgumentCaptor<ShortcutChangeCallback> mShortcutChangeCallbackCaptor;
+ @Captor
+ private ArgumentCaptor<BroadcastReceiver> mBroadcastReceiverCaptor;
+ @Captor
+ private ArgumentCaptor<Integer> mQueryFlagsCaptor;
private ScheduledExecutorService mExecutorService;
private NotificationChannel mNotificationChannel;
@@ -556,6 +573,7 @@ public final class DataManagerTest {
TEST_SHORTCUT_ID_2,
buildPerson());
mDataManager.addOrUpdateConversationInfo(shortcut2);
+ mLooper.dispatchAll();
ConversationChannel conversationChannel2 = mDataManager.getConversation(TEST_PKG_NAME,
USER_ID_PRIMARY,
TEST_SHORTCUT_ID_2);
@@ -583,6 +601,7 @@ public final class DataManagerTest {
ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
buildPerson());
mDataManager.addOrUpdateConversationInfo(shortcut);
+ mLooper.dispatchAll();
PeopleService.ConversationsListener listener = mock(
PeopleService.ConversationsListener.class);
mDataManager.addConversationsListener(listener);
@@ -631,7 +650,7 @@ public final class DataManagerTest {
public void testGetConversation() {
mDataManager.onUserUnlocked(USER_ID_PRIMARY);
assertThat(mDataManager.getConversation(TEST_PKG_NAME, USER_ID_PRIMARY,
- TEST_SHORTCUT_ID)).isNull();
+ TEST_SHORTCUT_ID)).isNull();
ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
buildPerson());
@@ -781,16 +800,25 @@ public final class DataManagerTest {
@Test
public void testShortcutAddedOrUpdated() {
mDataManager.onUserUnlocked(USER_ID_PRIMARY);
+ PeopleService.ConversationsListener listener = mock(
+ PeopleService.ConversationsListener.class);
+ mDataManager.addConversationsListener(listener);
ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
buildPerson());
mShortcutChangeCallback.onShortcutsAddedOrUpdated(TEST_PKG_NAME,
Collections.singletonList(shortcut), UserHandle.of(USER_ID_PRIMARY));
+ mLooper.dispatchAll();
List<ConversationInfo> conversations = getConversationsInPrimary();
assertEquals(1, conversations.size());
assertEquals(TEST_SHORTCUT_ID, conversations.get(0).getShortcutId());
+ ArgumentCaptor<List<ConversationChannel>> capturedConversation = ArgumentCaptor.forClass(
+ List.class);
+ verify(listener, times(1)).onConversationsUpdate(capturedConversation.capture());
+ ConversationChannel result = Iterables.getOnlyElement(capturedConversation.getValue());
+ assertEquals(result.getShortcutInfo().getId(), TEST_SHORTCUT_ID);
}
@Test
@@ -978,8 +1006,13 @@ public final class DataManagerTest {
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs1);
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs2);
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs3);
+ mLooper.dispatchAll();
+ PeopleService.ConversationsListener listener = mock(
+ PeopleService.ConversationsListener.class);
+ mDataManager.addConversationsListener(listener);
mDataManager.pruneDataForUser(USER_ID_PRIMARY, mCancellationSignal);
+ mLooper.dispatchAll();
assertThat(mDataManager.getStatuses(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID))
.doesNotContain(cs1);
@@ -987,6 +1020,13 @@ public final class DataManagerTest {
.contains(cs2);
assertThat(mDataManager.getStatuses(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID))
.contains(cs3);
+ ArgumentCaptor<List<ConversationChannel>> capturedConversation = ArgumentCaptor.forClass(
+ List.class);
+ verify(listener, times(1)).onConversationsUpdate(capturedConversation.capture());
+ List<ConversationChannel> results = capturedConversation.getValue();
+ ConversationChannel result = Iterables.getOnlyElement(capturedConversation.getValue());
+ // CHeck cs1 has been removed and only cs2 and cs3 remain.
+ assertThat(result.getStatuses()).containsExactly(cs2, cs3);
}
@Test
@@ -1236,13 +1276,23 @@ public final class DataManagerTest {
ConversationStatus cs2 = new ConversationStatus.Builder("id2", ACTIVITY_GAME).build();
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs);
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs2);
+ mLooper.dispatchAll();
+ PeopleService.ConversationsListener listener = mock(
+ PeopleService.ConversationsListener.class);
+ mDataManager.addConversationsListener(listener);
mDataManager.clearStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs2.getId());
+ mLooper.dispatchAll();
assertThat(mDataManager.getStatuses(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID))
.contains(cs);
assertThat(mDataManager.getStatuses(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID))
.doesNotContain(cs2);
+ ArgumentCaptor<List<ConversationChannel>> capturedConversation = ArgumentCaptor.forClass(
+ List.class);
+ verify(listener, times(1)).onConversationsUpdate(capturedConversation.capture());
+ ConversationChannel result = Iterables.getOnlyElement(capturedConversation.getValue());
+ assertThat(result.getStatuses()).containsExactly(cs);
}
@Test
@@ -1257,11 +1307,21 @@ public final class DataManagerTest {
ConversationStatus cs2 = new ConversationStatus.Builder("id2", ACTIVITY_GAME).build();
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs);
mDataManager.addOrUpdateStatus(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID, cs2);
+ mLooper.dispatchAll();
+ PeopleService.ConversationsListener listener = mock(
+ PeopleService.ConversationsListener.class);
+ mDataManager.addConversationsListener(listener);
mDataManager.clearStatuses(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID);
+ mLooper.dispatchAll();
assertThat(mDataManager.getStatuses(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID))
.isEmpty();
+ ArgumentCaptor<List<ConversationChannel>> capturedConversation = ArgumentCaptor.forClass(
+ List.class);
+ verify(listener, times(1)).onConversationsUpdate(capturedConversation.capture());
+ ConversationChannel result = Iterables.getOnlyElement(capturedConversation.getValue());
+ assertThat(result.getStatuses()).isEmpty();
}
@Test
@@ -1403,7 +1463,7 @@ public final class DataManagerTest {
.setLongLived(true)
.setIntent(new Intent("TestIntent"));
if (person != null) {
- builder.setPersons(new Person[] {person});
+ builder.setPersons(new Person[]{person});
}
return builder.build();
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java
index c11ac3a3e3a1..6722fff80d0b 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java
@@ -213,7 +213,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
mAssistants.loadDefaultsFromConfig();
assertEquals(new ArraySet<>(Arrays.asList(oldDefaultComponent)),
mAssistants.getDefaultComponents());
- assertNull(mAssistants.getDefaultFromConfig());
+ assertNull(mAssistants.mDefaultFromConfig);
// Test loadDefaultFromConfig(false) only updates the mDefaultFromConfig
when(mContext.getResources().getString(
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 37d7198ef150..a810acc68b2a 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -5753,11 +5753,12 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
- public void testNASSettingUpgrade_userSetNull_showOnBoarding() throws RemoteException {
+ public void testNASSettingUpgrade_userSetNull_noOnBoarding() throws RemoteException {
ComponentName newDefaultComponent = ComponentName.unflattenFromString("package/Component1");
TestableNotificationManagerService service = spy(mService);
int userId = 11;
setUsers(new int[]{userId});
+ when(mUm.getProfileIds(userId, false)).thenReturn(new int[]{userId});
setNASMigrationDone(false, userId);
when(mAssistants.getDefaultFromConfig())
.thenReturn(newDefaultComponent);
@@ -5766,29 +5767,29 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
when(mAssistants.hasUserSet(userId)).thenReturn(true);
service.migrateDefaultNASShowNotificationIfNecessary();
- assertFalse(service.isNASMigrationDone(userId));
- verify(service, times(1)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(0)).resetDefaultFromConfig();
+ assertTrue(service.isNASMigrationDone(userId));
+ verify(service, times(0)).createNASUpgradeNotification(eq(userId));
+ verify(mAssistants, times(1)).clearDefaults();
+ }
- //Test user clear data before enable/disable from onboarding notification
- ArrayMap<Boolean, ArrayList<ComponentName>> changedListeners =
- generateResetComponentValues();
- when(mListeners.resetComponents(anyString(), anyInt())).thenReturn(changedListeners);
- ArrayMap<Boolean, ArrayList<ComponentName>> changes = new ArrayMap<>();
- changes.put(true, new ArrayList(Arrays.asList(newDefaultComponent)));
- changes.put(false, new ArrayList());
- when(mAssistants.resetComponents(anyString(), anyInt())).thenReturn(changes);
+ @Test
+ public void testNASSettingUpgrade_userSetSameDefault_noOnBoarding() throws RemoteException {
+ ComponentName defaultComponent = ComponentName.unflattenFromString("package/Component1");
+ TestableNotificationManagerService service = spy(mService);
+ int userId = 11;
+ setUsers(new int[]{userId});
+ when(mUm.getProfileIds(userId, false)).thenReturn(new int[]{userId});
+ setNASMigrationDone(false, userId);
+ when(mAssistants.getDefaultFromConfig())
+ .thenReturn(defaultComponent);
+ when(mAssistants.getAllowedComponents(anyInt()))
+ .thenReturn(new ArrayList(Arrays.asList(defaultComponent)));
+ when(mAssistants.hasUserSet(userId)).thenReturn(true);
- //Clear data
- service.getBinderService().clearData("package", userId, false);
- //Test migrate flow again
service.migrateDefaultNASShowNotificationIfNecessary();
-
- //The notification should be still there
- assertFalse(service.isNASMigrationDone(userId));
- verify(service, times(2)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(0)).resetDefaultFromConfig();
- assertEquals(null, service.getApprovedAssistant(userId));
+ assertTrue(service.isNASMigrationDone(userId));
+ verify(service, times(0)).createNASUpgradeNotification(eq(userId));
+ verify(mAssistants, times(1)).resetDefaultFromConfig();
}
@Test
@@ -5842,6 +5843,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
int userId1 = 11;
int userId2 = 12;
setUsers(new int[]{userId1, userId2});
+ when(mUm.getProfileIds(userId1, false)).thenReturn(new int[]{userId1});
+ when(mUm.getProfileIds(userId2, false)).thenReturn(new int[]{userId2});
+
setNASMigrationDone(false, userId1);
setNASMigrationDone(false, userId2);
when(mAssistants.getDefaultComponents())
@@ -5868,6 +5872,43 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
+ public void testNASSettingUpgrade_multiProfile() throws RemoteException {
+ ComponentName oldDefaultComponent = ComponentName.unflattenFromString("package/Component1");
+ ComponentName newDefaultComponent = ComponentName.unflattenFromString("package/Component2");
+ TestableNotificationManagerService service = spy(mService);
+ int userId1 = 11;
+ int userId2 = 12; //work profile
+ setUsers(new int[]{userId1, userId2});
+ when(mUm.isManagedProfile(userId2)).thenReturn(true);
+ when(mUm.getProfileIds(userId1, false)).thenReturn(new int[]{userId1, userId2});
+
+ setNASMigrationDone(false, userId1);
+ setNASMigrationDone(false, userId2);
+ when(mAssistants.getDefaultComponents())
+ .thenReturn(new ArraySet<>(Arrays.asList(oldDefaultComponent)));
+ when(mAssistants.getDefaultFromConfig())
+ .thenReturn(newDefaultComponent);
+ //Both profiles: need onboarding
+ when(mAssistants.getAllowedComponents(userId1))
+ .thenReturn(Arrays.asList(oldDefaultComponent));
+ when(mAssistants.getAllowedComponents(userId2))
+ .thenReturn(Arrays.asList(oldDefaultComponent));
+
+ when(mAssistants.hasUserSet(userId1)).thenReturn(true);
+ when(mAssistants.hasUserSet(userId2)).thenReturn(true);
+
+ service.migrateDefaultNASShowNotificationIfNecessary();
+ assertFalse(service.isNASMigrationDone(userId1));
+ assertFalse(service.isNASMigrationDone(userId2));
+
+ // only user1 get notification
+ verify(service, times(1)).createNASUpgradeNotification(eq(userId1));
+ verify(service, times(0)).createNASUpgradeNotification(eq(userId2));
+ }
+
+
+
+ @Test
public void testNASSettingUpgrade_clearDataAfterMigrationIsDone() throws RemoteException {
ComponentName defaultComponent = ComponentName.unflattenFromString("package/Component");
TestableNotificationManagerService service = spy(mService);
@@ -5898,15 +5939,21 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
- public void testNASUpgradeNotificationDisableBroadcast() {
- int userId = 11;
- setUsers(new int[]{userId});
+ public void testNASUpgradeNotificationDisableBroadcast_multiProfile() {
+ int userId1 = 11;
+ int userId2 = 12;
+ setUsers(new int[]{userId1, userId2});
+ when(mUm.isManagedProfile(userId2)).thenReturn(true);
+ when(mUm.getProfileIds(userId1, false)).thenReturn(new int[]{userId1, userId2});
+
TestableNotificationManagerService service = spy(mService);
- setNASMigrationDone(false, userId);
+ setNASMigrationDone(false, userId1);
+ setNASMigrationDone(false, userId2);
- simulateNASUpgradeBroadcast(ACTION_DISABLE_NAS, userId);
+ simulateNASUpgradeBroadcast(ACTION_DISABLE_NAS, userId1);
- assertTrue(service.isNASMigrationDone(userId));
+ assertTrue(service.isNASMigrationDone(userId1));
+ assertTrue(service.isNASMigrationDone(userId2));
// User disabled the NAS from notification, the default stored in xml should be null
// rather than the new default
verify(mAssistants, times(1)).clearDefaults();
@@ -5914,7 +5961,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
//No more notification after disabled
service.migrateDefaultNASShowNotificationIfNecessary();
- verify(service, times(0)).createNASUpgradeNotification(eq(userId));
+ verify(service, times(0)).createNASUpgradeNotification(anyInt());
}
@Test
@@ -5922,6 +5969,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
int userId1 = 11;
int userId2 = 12;
setUsers(new int[]{userId1, userId2});
+ when(mUm.getProfileIds(userId1, false)).thenReturn(new int[]{userId1});
+
TestableNotificationManagerService service = spy(mService);
setNASMigrationDone(false, userId1);
setNASMigrationDone(false, userId2);
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index 124f6ddc8391..8cede6df491d 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -2358,21 +2358,6 @@ public class ActivityRecordTests extends WindowTestsBase {
}
@Test
- public void testAddRemoveRace() {
- registerTestStartingWindowOrganizer();
- // There was once a race condition between adding and removing starting windows
- final ActivityRecord appToken = new ActivityBuilder(mAtm).setCreateTask(true).build();
- for (int i = 0; i < 1000; i++) {
- appToken.addStartingWindow(mPackageName,
- android.R.style.Theme, null, "Test", 0, 0, 0, 0, null, true, true, false, true,
- false, false);
- appToken.removeStartingWindow();
- waitUntilHandlersIdle();
- assertNoStartingWindow(appToken);
- }
- }
-
- @Test
public void testTransferStartingWindow() {
registerTestStartingWindowOrganizer();
final ActivityRecord activity1 = new ActivityBuilder(mAtm).setCreateTask(true).build();
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
index 7df17fd4b3c6..31d46125fd70 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
@@ -586,10 +586,13 @@ public class DisplayAreaPolicyBuilderTest {
.setTaskDisplayAreas(Lists.newArrayList(mTda2)))
.build(mWms);
- final WindowToken token = new WindowToken(mWms, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, null /* options */);
+ final WindowToken token = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .build();
+
policy.addWindow(token);
// By default, window are always added to the root.
@@ -600,10 +603,13 @@ public class DisplayAreaPolicyBuilderTest {
// When the window has options for target root id, attach it to the target root.
final Bundle options = new Bundle();
options.putInt(KEY_ROOT_DISPLAY_AREA_ID, mGroupRoot2.mFeatureId);
- final WindowToken token2 = new WindowToken(mWms, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, options);
+ final WindowToken token2 = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .setOptions(options)
+ .build();
policy.addWindow(token2);
assertThat(token2.isDescendantOf(mGroupRoot2)).isTrue();
@@ -631,14 +637,18 @@ public class DisplayAreaPolicyBuilderTest {
})
.build(mWms);
- final WindowToken token1 = new WindowToken(mWms, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, null /* options */);
- final WindowToken token2 = new WindowToken(mWms, mock(IBinder.class),
- TYPE_WALLPAPER, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, null /* options */);
+ final WindowToken token1 = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .build();
+ final WindowToken token2 = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_WALLPAPER)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .build();
policy.addWindow(token1);
policy.addWindow(token2);
@@ -682,18 +692,26 @@ public class DisplayAreaPolicyBuilderTest {
options1.putInt("HIERARCHY_ROOT_ID", mGroupRoot1.mFeatureId);
final Bundle options2 = new Bundle();
options2.putInt("HIERARCHY_ROOT_ID", mGroupRoot2.mFeatureId);
- final WindowToken token0 = new WindowToken(mWms, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, null /* options */);
- final WindowToken token1 = new WindowToken(mWms, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, options1);
- final WindowToken token2 = new WindowToken(mWms, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, false /* roundedCornerOverlay */,
- false /* fromClientToken */, options2);
+ final WindowToken token0 = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .build();
+ final WindowToken token1 = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .setOptions(options1)
+ .build();
+ final WindowToken token2 = new WindowToken.Builder(mWms, mock(IBinder.class),
+ TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .setOptions(options2)
+ .build();
policy.addWindow(token0);
policy.addWindow(token1);
@@ -787,9 +805,8 @@ public class DisplayAreaPolicyBuilderTest {
}
private WindowToken tokenOfType(int type) {
- WindowToken token = new WindowToken(mWms, new Binder(), type, false /* persistOnEmpty */,
- mDisplayContent, false /* ownerCanManageAppTokens */);
- return token;
+ return new WindowToken.Builder(mWms, new Binder(), type)
+ .setDisplayContent(mDisplayContent).build();
}
private static void assertMatchLayerOrder(List<DisplayArea<?>> actualOrder,
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java
index d4c956db90a9..d5628fc9de48 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java
@@ -586,8 +586,6 @@ public class DisplayAreaTest extends WindowTestsBase {
}
private WindowToken createWindowToken(int type) {
- return new WindowToken(mWm, new Binder(),
- type, false /* persist */, null /* displayContent */,
- false /* canManageTokens */);
+ return new WindowToken.Builder(mWm, new Binder(), type).build();
}
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java
index e9907c1fd1a5..bdc4b4eae630 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java
@@ -390,8 +390,8 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase {
}
private WindowToken tokenOfType(int type) {
- return new WindowToken(mWm, new Binder(), type, false /* persistOnEmpty */,
- mDisplay, false /* ownerCanManageAppTokens */);
+ return new WindowToken.Builder(mWm, new Binder(), type)
+ .setDisplayContent(mDisplay).build();
}
/** Display with two {@link DisplayAreaGroup}. Each of them take half of the screen. */
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index 5d6a5c0b5167..73404eb6f0fd 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -641,7 +641,6 @@ public class RecentTasksTest extends WindowTestsBase {
@Test
public void testVisibleTasks_excludedFromRecents() {
- mRecentTasks.setOnlyTestVisibleRange();
mRecentTasks.setParameters(-1 /* min */, 4 /* max */, -1 /* ms */);
Task excludedTask1 = createTaskBuilder(".ExcludedTask1")
@@ -650,15 +649,26 @@ public class RecentTasksTest extends WindowTestsBase {
Task excludedTask2 = createTaskBuilder(".ExcludedTask2")
.setFlags(FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
.build();
+ Task detachedExcludedTask = createTaskBuilder(".DetachedExcludedTask")
+ .setFlags(FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
+ .build();
+
+ // Move home to front so other task can satisfy the condition in RecentTasks#isTrimmable.
+ mRootWindowContainer.getDefaultTaskDisplayArea().getRootHomeTask().moveToFront("test");
+ // Avoid Task#autoRemoveFromRecents when removing from parent.
+ detachedExcludedTask.setHasBeenVisible(true);
+ detachedExcludedTask.removeImmediately();
+ assertFalse(detachedExcludedTask.isAttached());
+ mRecentTasks.add(detachedExcludedTask);
mRecentTasks.add(excludedTask1);
mRecentTasks.add(mTasks.get(0));
mRecentTasks.add(mTasks.get(1));
mRecentTasks.add(mTasks.get(2));
mRecentTasks.add(excludedTask2);
- // The last excluded task should be trimmed, while the first-most excluded task should not
- triggerTrimAndAssertTrimmed(excludedTask1);
+ // Except the first-most excluded task, other excluded tasks should be trimmed.
+ triggerTrimAndAssertTrimmed(excludedTask1, detachedExcludedTask);
}
@Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
index 153fd3a68e82..23d57b89cf1c 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
@@ -518,6 +518,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, false);
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
+ verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
final WindowContainer parent = navToken.getParent();
final NavBarFadeAnimationController navBarFadeAnimationController =
@@ -526,6 +527,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, true);
+ verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
verify(transaction).reparent(navToken.getSurfaceControl(), parent.getSurfaceControl());
verify(navBarFadeAnimationController).fadeWindowToken(true);
}
@@ -543,6 +545,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, false);
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
+ verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
final WindowContainer parent = navToken.getParent();
final NavBarFadeAnimationController navBarFadeAnimationController =
@@ -551,6 +554,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
mController.cleanupAnimation(REORDER_MOVE_TO_ORIGINAL_POSITION);
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, true);
+ verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
verify(transaction).reparent(navToken.getSurfaceControl(), parent.getSurfaceControl());
verify(navBarFadeAnimationController, never()).fadeWindowToken(anyBoolean());
}
@@ -579,6 +583,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, false);
verify(transaction).reparent(navToken.getSurfaceControl(), activity.getSurfaceControl());
+ verify(transaction).setLayer(navToken.getSurfaceControl(), Integer.MAX_VALUE);
final WindowContainer parent = navToken.getParent();
final NavBarFadeAnimationController navBarFadeAnimationController =
@@ -591,6 +596,7 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
mController.cleanupAnimation(REORDER_MOVE_TO_TOP);
verify(mController.mStatusBar).setNavigationBarLumaSamplingEnabled(
mDefaultDisplay.mDisplayId, true);
+ verify(transaction).setLayer(navToken.getSurfaceControl(), 0);
verify(mockController).setOnShowRunnable(any());
verify(transaction, times(0)).reparent(navToken.getSurfaceControl(),
parent.getSurfaceControl());
diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
index 95b74430e4ab..45818a2b3bbc 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -60,6 +60,7 @@ import android.app.WindowConfiguration;
import android.compat.testing.PlatformCompatChangeRule;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
+import android.content.pm.ActivityInfo.ScreenOrientation;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.platform.test.annotations.Presubmit;
@@ -67,6 +68,7 @@ import android.view.WindowManager;
import androidx.test.filters.MediumTest;
+import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges;
import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;
import org.junit.Rule;
@@ -662,15 +664,8 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_UNRESIZEABLE)
- .setSupportsSizeChanges(true)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */true,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
assertFalse(activity.shouldCreateCompatDisplayInsets());
}
@@ -682,15 +677,8 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_UNRESIZEABLE)
- .setSupportsSizeChanges(false)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
assertTrue(activity.shouldCreateCompatDisplayInsets());
}
@@ -702,15 +690,8 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_RESIZEABLE)
- .setSupportsSizeChanges(false)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_RESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
assertFalse(activity.shouldCreateCompatDisplayInsets());
}
@@ -723,15 +704,8 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_UNRESIZEABLE)
- .setSupportsSizeChanges(false)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
assertFalse(activity.shouldCreateCompatDisplayInsets());
}
@@ -744,15 +718,8 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_UNRESIZEABLE)
- .setSupportsSizeChanges(false)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
assertFalse(activity.shouldCreateCompatDisplayInsets());
}
@@ -765,15 +732,8 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_RESIZEABLE)
- .setSupportsSizeChanges(true)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */true,
+ RESIZE_MODE_RESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
assertTrue(activity.shouldCreateCompatDisplayInsets());
}
@@ -786,19 +746,111 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
// Create an activity on the same task.
- final ActivityRecord activity = new ActivityBuilder(mAtm)
- .setTask(mTask)
- .setResizeMode(ActivityInfo.RESIZE_MODE_RESIZEABLE)
- .setSupportsSizeChanges(true)
- .setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
- .setComponent(ComponentName.createRelative(mContext,
- SizeCompatTests.class.getName()))
- .setUid(android.os.Process.myUid())
- .build();
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */true,
+ RESIZE_MODE_RESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
assertTrue(activity.shouldCreateCompatDisplayInsets());
}
@Test
+ @EnableCompatChanges({ActivityInfo.NEVER_SANDBOX_DISPLAY_APIS})
+ public void testNeverSandboxDisplayApis_configEnabled_sandboxingNotApplied() {
+ setUpDisplaySizeWithApp(1000, 1200);
+
+ // Make the task root resizable.
+ mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
+
+ // Create an activity with a max aspect ratio on the same task.
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ activity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
+ prepareUnresizable(activity, /* maxAspect=*/ 1.5f, SCREEN_ORIENTATION_LANDSCAPE);
+
+ // Activity max bounds should not be sandboxed, even though it is letterboxed.
+ assertTrue(activity.isLetterboxedForFixedOrientationAndAspectRatio());
+ assertThat(activity.getConfiguration().windowConfiguration.getMaxBounds())
+ .isEqualTo(activity.getDisplayArea().getBounds());
+ }
+
+ @Test
+ @DisableCompatChanges({ActivityInfo.NEVER_SANDBOX_DISPLAY_APIS})
+ public void testNeverSandboxDisplayApis_configDisabled_sandboxingApplied() {
+ setUpDisplaySizeWithApp(1000, 1200);
+
+ // Make the task root resizable.
+ mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
+
+ // Create an activity with a max aspect ratio on the same task.
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ activity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
+ prepareUnresizable(activity, /* maxAspect=*/ 1.5f, SCREEN_ORIENTATION_LANDSCAPE);
+
+ // Activity max bounds should be sandboxed due to letterboxed and the config being disabled.
+ assertActivityMaxBoundsSandboxed(activity);
+ }
+
+ @Test
+ @EnableCompatChanges({ActivityInfo.ALWAYS_SANDBOX_DISPLAY_APIS})
+ public void testAlwaysSandboxDisplayApis_configEnabled_sandboxingApplied_unresizable() {
+ setUpDisplaySizeWithApp(1000, 1200);
+
+ // Make the task root resizable.
+ mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
+
+ // Create an activity with a max aspect ratio on the same task.
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ activity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
+ prepareUnresizable(activity, /* maxAspect=*/ 1.5f, SCREEN_ORIENTATION_LANDSCAPE);
+
+ // Activity max bounds should be sandboxed due to letterboxed and the config being enabled.
+ assertActivityMaxBoundsSandboxed(activity);
+ }
+
+ @Test
+ @DisableCompatChanges({ActivityInfo.ALWAYS_SANDBOX_DISPLAY_APIS})
+ public void testAlwaysSandboxDisplayApis_configDisabled_sandboxingNotApplied() {
+ setUpDisplaySizeWithApp(1000, 1200);
+
+ // Make the task root resizable.
+ mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
+
+ // Create an activity with a max aspect ratio on the same task.
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_UNRESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ activity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
+ prepareUnresizable(activity, /* maxAspect=*/ 1.5f, SCREEN_ORIENTATION_LANDSCAPE);
+
+ // Activity max bounds be sandboxed due to letterbox and the config being disabled.
+ assertActivityMaxBoundsSandboxed(activity);
+ }
+
+ @Test
+ @EnableCompatChanges({ActivityInfo.ALWAYS_SANDBOX_DISPLAY_APIS})
+ public void testAlwaysSandboxDisplayApis_configEnabled_sandboxingApplied_resizableSplit() {
+ setUpDisplaySizeWithApp(1000, 2800);
+ mActivity.info.resizeMode = RESIZE_MODE_RESIZEABLE;
+ final ActivityRecord activity = buildActivityRecord(/* supportsSizeChanges= */false,
+ RESIZE_MODE_RESIZEABLE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ final TestSplitOrganizer organizer =
+ new TestSplitOrganizer(mAtm, activity.getDisplayContent());
+
+ // Activity max bounds should be sandboxed due the config being enabled.
+ assertFalse(activity.inSizeCompatMode());
+ assertActivityMaxBoundsSandboxed(activity);
+
+ // Move activity to split screen which takes half of the screen.
+ mTask.reparent(organizer.mPrimary, POSITION_TOP,
+ false /*moveParents*/, "test");
+ organizer.mPrimary.setBounds(0, 0, 1000, 1400);
+ assertEquals(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, mTask.getWindowingMode());
+ assertEquals(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, activity.getWindowingMode());
+
+ // Resizable activity is sandboxed due to config being enabled.
+ assertActivityMaxBoundsSandboxed(activity);
+ }
+
+ @Test
@EnableCompatChanges({ActivityInfo.OVERRIDE_MIN_ASPECT_RATIO,
ActivityInfo.OVERRIDE_MIN_ASPECT_RATIO_MEDIUM})
public void testOverrideMinAspectRatioMedium() {
@@ -1675,6 +1727,24 @@ public class SizeCompatTests extends WindowTestsBase {
displayPolicy.layoutWindowLw(statusBar, null, displayContent.mDisplayFrames);
}
+ /**
+ * Returns an ActivityRecord instance with the specified attributes on the same task. By
+ * constructing the ActivityRecord, forces {@link ActivityInfo} to be loaded with the compat
+ * config settings.
+ */
+ private ActivityRecord buildActivityRecord(boolean supportsSizeChanges, int resizeMode,
+ @ScreenOrientation int screenOrientation) {
+ return new ActivityBuilder(mAtm)
+ .setTask(mTask)
+ .setResizeMode(resizeMode)
+ .setSupportsSizeChanges(supportsSizeChanges)
+ .setScreenOrientation(screenOrientation)
+ .setComponent(ComponentName.createRelative(mContext,
+ SizeCompatTests.class.getName()))
+ .setUid(android.os.Process.myUid())
+ .build();
+ }
+
static void prepareUnresizable(ActivityRecord activity, int screenOrientation) {
prepareUnresizable(activity, -1 /* maxAspect */, screenOrientation);
}
@@ -1743,9 +1813,17 @@ public class SizeCompatTests extends WindowTestsBase {
* bounds are sandboxed.
*/
private void assertActivityMaxBoundsSandboxed() {
+ assertActivityMaxBoundsSandboxed(mActivity);
+ }
+
+ /**
+ * Asserts activity-level letterbox or size compat mode size compat mode on the specified
+ * activity, so activity max bounds are sandboxed.
+ */
+ private void assertActivityMaxBoundsSandboxed(ActivityRecord activity) {
// Activity max bounds are sandboxed due to size compat mode.
- assertThat(mActivity.getConfiguration().windowConfiguration.getMaxBounds())
- .isEqualTo(mActivity.getWindowConfiguration().getBounds());
+ assertThat(activity.getConfiguration().windowConfiguration.getMaxBounds())
+ .isEqualTo(activity.getWindowConfiguration().getBounds());
}
static Configuration rotateDisplay(DisplayContent display, int rotation) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
index 6919c4cf6a7c..00f3d8b874f7 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
@@ -16,6 +16,7 @@
package com.android.server.wm;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
@@ -634,6 +635,22 @@ public class WindowContainerTests extends WindowTestsBase {
}
@Test
+ public void testSetOrientation() {
+ final TestWindowContainer root = spy(new TestWindowContainerBuilder(mWm).build());
+ final TestWindowContainer child = spy(root.addChildWindow());
+ doReturn(true).when(root).handlesOrientationChangeFromDescendant();
+ child.getWindowConfiguration().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+ child.setOrientation(SCREEN_ORIENTATION_PORTRAIT);
+ // The ancestor should decide whether to dispatch the configuration change.
+ verify(child, never()).onConfigurationChanged(any());
+
+ doReturn(false).when(root).handlesOrientationChangeFromDescendant();
+ child.setOrientation(SCREEN_ORIENTATION_LANDSCAPE);
+ // The ancestor doesn't handle the request so the descendant applies the change directly.
+ verify(child).onConfigurationChanged(any());
+ }
+
+ @Test
public void testCompareTo() {
final TestWindowContainerBuilder builder = new TestWindowContainerBuilder(mWm);
final TestWindowContainer root = builder.setLayer(0).build();
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowContextListenerControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowContextListenerControllerTests.java
index 73b9173ba143..5d0fe170885a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowContextListenerControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContextListenerControllerTests.java
@@ -17,8 +17,11 @@
package com.android.server.wm;
import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -162,6 +165,26 @@ public class WindowContextListenerControllerTests extends WindowTestsBase {
false /* callerCanManagerAppTokens */, ANOTHER_UID);
}
+ @Test
+ public void testWindowContextCreatedWindowTokenRemoved_SwitchToListenToDA() {
+ WindowToken windowContextCreatedToken = new WindowToken.Builder(mWm, mClientToken,
+ TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY)
+ .setDisplayContent(mDefaultDisplay)
+ .setFromClientToken(true)
+ .build();
+ final DisplayArea da = windowContextCreatedToken.getDisplayArea();
+
+ mController.registerWindowContainerListener(mClientToken, windowContextCreatedToken,
+ TEST_UID, TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, null /* options */);
+
+ assertThat(mController.getContainer(mClientToken)).isEqualTo(windowContextCreatedToken);
+
+ // Remove WindowToken
+ windowContextCreatedToken.removeImmediately();
+
+ assertThat(mController.getContainer(mClientToken)).isEqualTo(da);
+ }
+
private class TestWindowTokenClient extends IWindowToken.Stub {
private Configuration mConfiguration;
private int mDisplayId;
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
index ed5f1d8c9fc5..d048f1842aa3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
@@ -184,49 +184,28 @@ public class WindowTokenTests extends WindowTestsBase {
}
/**
- * Test that {@link WindowToken} constructor parameters is set with expectation.
- */
- @Test
- public void testWindowTokenConstructorValidity() {
- WindowToken token = new WindowToken(mDisplayContent.mWmService, mock(IBinder.class),
- TYPE_TOAST, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */);
- assertFalse(token.mRoundedCornerOverlay);
- assertFalse(token.isFromClient());
-
- token = new WindowToken(mDisplayContent.mWmService, mock(IBinder.class), TYPE_TOAST,
- true /* persistOnEmpty */, mDisplayContent, true /* ownerCanManageAppTokens */,
- true /* roundedCornerOverlay */);
- assertTrue(token.mRoundedCornerOverlay);
- assertFalse(token.isFromClient());
-
- token = new WindowToken(mDisplayContent.mWmService, mock(IBinder.class), TYPE_TOAST,
- true /* persistOnEmpty */, mDisplayContent, true /* ownerCanManageAppTokens */,
- true /* roundedCornerOverlay */, true /* fromClientToken */, null /* options */);
- assertTrue(token.mRoundedCornerOverlay);
- assertTrue(token.isFromClient());
- }
-
- /**
* Test that {@link android.view.SurfaceControl} should not be created for the
* {@link WindowToken} which was created for {@link WindowContext} initially, the
* surface should be create after addWindow for this token.
*/
@Test
public void testSurfaceCreatedForWindowToken() {
- final WindowToken fromClientToken = new WindowToken(mDisplayContent.mWmService,
- mock(IBinder.class), TYPE_APPLICATION_OVERLAY, true /* persistOnEmpty */,
- mDisplayContent, true /* ownerCanManageAppTokens */,
- true /* roundedCornerOverlay */, true /* fromClientToken */, null /* options */);
+ final WindowToken fromClientToken = new WindowToken.Builder(mDisplayContent.mWmService,
+ mock(IBinder.class), TYPE_APPLICATION_OVERLAY)
+ .setDisplayContent(mDisplayContent)
+ .setFromClientToken(true)
+ .build();
+
assertNull(fromClientToken.mSurfaceControl);
createWindow(null, TYPE_APPLICATION_OVERLAY, fromClientToken, "window");
assertNotNull(fromClientToken.mSurfaceControl);
- final WindowToken nonClientToken = new WindowToken(mDisplayContent.mWmService,
- mock(IBinder.class), TYPE_TOAST, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, true /* roundedCornerOverlay */,
- false /* fromClientToken */, null /* options */);
+ final WindowToken nonClientToken = new WindowToken.Builder(mDisplayContent.mWmService,
+ mock(IBinder.class), TYPE_APPLICATION_OVERLAY)
+ .setDisplayContent(mDisplayContent)
+ .setFromClientToken(false)
+ .build();
assertNotNull(nonClientToken.mSurfaceControl);
}
@@ -237,18 +216,23 @@ public class WindowTokenTests extends WindowTestsBase {
.mSelectRootForWindowFunc;
spyOn(selectFunc);
- final WindowToken token1 = new WindowToken(mDisplayContent.mWmService, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, true /* roundedCornerOverlay */,
- false /* fromClientToken */, null /* options */);
+ final WindowToken token1 = new WindowToken.Builder(mDisplayContent.mWmService,
+ mock(IBinder.class), TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .build();
verify(selectFunc).apply(token1.windowType, null);
final Bundle options = new Bundle();
- final WindowToken token2 = new WindowToken(mDisplayContent.mWmService, mock(IBinder.class),
- TYPE_STATUS_BAR, true /* persistOnEmpty */, mDisplayContent,
- true /* ownerCanManageAppTokens */, true /* roundedCornerOverlay */,
- false /* fromClientToken */, options /* options */);
+ final WindowToken token2 = new WindowToken.Builder(mDisplayContent.mWmService,
+ mock(IBinder.class), TYPE_STATUS_BAR)
+ .setDisplayContent(mDisplayContent)
+ .setPersistOnEmpty(true)
+ .setOwnerCanManageAppTokens(true)
+ .setOptions(options)
+ .build();
verify(selectFunc).apply(token2.windowType, options);
}
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java
index 6f701f7e3a36..d6ed98f2c3d4 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java
@@ -24,6 +24,7 @@ import static android.service.voice.HotwordDetectionService.KEY_INITIALIZATION_S
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.ComponentName;
+import android.content.ContentCaptureOptions;
import android.content.Context;
import android.content.Intent;
import android.hardware.soundtrigger.IRecognitionStatusCallback;
@@ -34,10 +35,12 @@ import android.media.AudioManager;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
+import android.os.IBinder;
import android.os.IRemoteCallback;
import android.os.ParcelFileDescriptor;
import android.os.PersistableBundle;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.os.SharedMemory;
import android.service.voice.HotwordDetectedResult;
import android.service.voice.HotwordDetectionService;
@@ -47,6 +50,7 @@ import android.service.voice.IHotwordDetectionService;
import android.service.voice.IMicrophoneHotwordDetectionVoiceInteractionCallback;
import android.util.Pair;
import android.util.Slog;
+import android.view.contentcapture.IContentCaptureManager;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IHotwordRecognitionStatusCallback;
@@ -135,6 +139,7 @@ final class HotwordDetectionConnection {
return;
}
updateStateWithCallbackLocked(options, sharedMemory, callback);
+ updateContentCaptureManager();
}
private void updateStateWithCallbackLocked(PersistableBundle options,
@@ -193,6 +198,15 @@ final class HotwordDetectionConnection {
});
}
+ private void updateContentCaptureManager() {
+ IBinder b = ServiceManager
+ .getService(Context.CONTENT_CAPTURE_MANAGER_SERVICE);
+ IContentCaptureManager binderService = IContentCaptureManager.Stub.asInterface(b);
+ mRemoteHotwordDetectionService.post(
+ service -> service.updateContentCaptureManager(binderService,
+ new ContentCaptureOptions(null)));
+ }
+
private boolean isBound() {
synchronized (mLock) {
return mBound;
@@ -270,6 +284,114 @@ final class HotwordDetectionConnection {
}
}
+ void triggerHardwareRecognitionEventForTestLocked(
+ SoundTrigger.KeyphraseRecognitionEvent event,
+ IHotwordRecognitionStatusCallback callback) {
+ if (DEBUG) {
+ Slog.d(TAG, "triggerHardwareRecognitionEventForTestLocked");
+ }
+ detectFromDspSourceForTest(event, callback);
+ }
+
+ private void detectFromDspSourceForTest(SoundTrigger.KeyphraseRecognitionEvent recognitionEvent,
+ IHotwordRecognitionStatusCallback externalCallback) {
+ if (DEBUG) {
+ Slog.d(TAG, "detectFromDspSourceForTest");
+ }
+
+ AudioRecord record = createFakeAudioRecord();
+ if (record == null) {
+ Slog.d(TAG, "Failed to create fake audio record");
+ return;
+ }
+
+ Pair<ParcelFileDescriptor, ParcelFileDescriptor> clientPipe = createPipe();
+ if (clientPipe == null) {
+ Slog.d(TAG, "Failed to create pipe");
+ return;
+ }
+ ParcelFileDescriptor audioSink = clientPipe.second;
+ ParcelFileDescriptor clientRead = clientPipe.first;
+
+ record.startRecording();
+
+ mAudioCopyExecutor.execute(() -> {
+ try (OutputStream fos =
+ new ParcelFileDescriptor.AutoCloseOutputStream(audioSink)) {
+
+ int remainToRead = 10240;
+ byte[] buffer = new byte[1024];
+ while (remainToRead > 0) {
+ int bytesRead = record.read(buffer, 0, 1024);
+ if (DEBUG) {
+ Slog.d(TAG, "bytesRead = " + bytesRead);
+ }
+ if (bytesRead <= 0) {
+ break;
+ }
+ if (bytesRead > 8) {
+ System.arraycopy(new byte[] {'h', 'o', 't', 'w', 'o', 'r', 'd', '!'}, 0,
+ buffer, 0, 8);
+ }
+
+ fos.write(buffer, 0, bytesRead);
+ remainToRead -= bytesRead;
+ }
+ } catch (IOException e) {
+ Slog.w(TAG, "Failed supplying audio data to validator", e);
+ }
+ });
+
+ Runnable cancellingJob = () -> {
+ Slog.d(TAG, "Timeout for getting callback from HotwordDetectionService");
+ record.stop();
+ record.release();
+ bestEffortClose(audioSink);
+ bestEffortClose(clientRead);
+ };
+
+ ScheduledFuture<?> cancelingFuture =
+ mScheduledExecutorService.schedule(
+ cancellingJob, VALIDATION_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+
+ IDspHotwordDetectionCallback internalCallback = new IDspHotwordDetectionCallback.Stub() {
+ @Override
+ public void onDetected(HotwordDetectedResult result) throws RemoteException {
+ if (DEBUG) {
+ Slog.d(TAG, "onDetected");
+ }
+ cancelingFuture.cancel(true);
+ record.stop();
+ record.release();
+ bestEffortClose(audioSink);
+ bestEffortClose(clientRead);
+
+ externalCallback.onKeyphraseDetected(recognitionEvent);
+ }
+
+ @Override
+ public void onRejected(HotwordRejectedResult result) throws RemoteException {
+ if (DEBUG) {
+ Slog.d(TAG, "onRejected");
+ }
+ cancelingFuture.cancel(true);
+ record.stop();
+ record.release();
+ bestEffortClose(audioSink);
+ bestEffortClose(clientRead);
+
+ externalCallback.onRejected(result);
+ }
+ };
+
+ mRemoteHotwordDetectionService.run(
+ service -> service.detectFromDspSource(
+ clientRead,
+ recognitionEvent.getCaptureFormat(),
+ VALIDATION_TIMEOUT_MILLIS,
+ internalCallback));
+ }
+
private void detectFromDspSource(SoundTrigger.KeyphraseRecognitionEvent recognitionEvent,
IHotwordRecognitionStatusCallback externalCallback) {
if (DEBUG) {
@@ -456,6 +578,37 @@ final class HotwordDetectionConnection {
}
}
+ @Nullable
+ private AudioRecord createFakeAudioRecord() {
+ if (DEBUG) {
+ Slog.i(TAG, "#createFakeAudioRecord");
+ }
+ try {
+ AudioRecord audioRecord = new AudioRecord.Builder()
+ .setAudioFormat(new AudioFormat.Builder()
+ .setSampleRate(32000)
+ .setEncoding(AudioFormat.ENCODING_PCM_16BIT)
+ .setChannelMask(AudioFormat.CHANNEL_IN_MONO).build())
+ .setAudioAttributes(new AudioAttributes.Builder()
+ .setInternalCapturePreset(MediaRecorder.AudioSource.HOTWORD).build())
+ .setBufferSizeInBytes(
+ AudioRecord.getMinBufferSize(32000,
+ AudioFormat.CHANNEL_IN_MONO,
+ AudioFormat.ENCODING_PCM_16BIT) * 2)
+ .build();
+
+ if (audioRecord.getState() != AudioRecord.STATE_INITIALIZED) {
+ Slog.w(TAG, "Failed to initialize AudioRecord");
+ audioRecord.release();
+ return null;
+ }
+ return audioRecord;
+ } catch (IllegalArgumentException e) {
+ Slog.e(TAG, "Failed to create AudioRecord", e);
+ }
+ return null;
+ }
+
/**
* Returns the number of bytes required to store {@code bufferLengthSeconds} of audio sampled at
* {@code sampleRate} Hz, using the format returned by DSP audio capture.
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index 9aded899aaae..92cfe4980388 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -1130,6 +1130,29 @@ public class VoiceInteractionManagerService extends SystemService {
}
}
+ @Override
+ public void triggerHardwareRecognitionEventForTest(
+ SoundTrigger.KeyphraseRecognitionEvent event,
+ IHotwordRecognitionStatusCallback callback)
+ throws RemoteException {
+ enforceCallingPermission(Manifest.permission.RECORD_AUDIO);
+ enforceCallingPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD);
+ synchronized (this) {
+ enforceIsCurrentVoiceInteractionService();
+
+ if (mImpl == null) {
+ Slog.w(TAG, "triggerHardwareRecognitionEventForTest without running"
+ + " voice interaction service");
+ return;
+ }
+ final long caller = Binder.clearCallingIdentity();
+ try {
+ mImpl.triggerHardwareRecognitionEventForTestLocked(event, callback);
+ } finally {
+ Binder.restoreCallingIdentity(caller);
+ }
+ }
+ }
//----------------- Model management APIs --------------------------------//
@Override
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
index 6922ccc03d0b..055284157457 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
@@ -40,6 +40,7 @@ import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.hardware.soundtrigger.IRecognitionStatusCallback;
+import android.hardware.soundtrigger.SoundTrigger;
import android.media.AudioFormat;
import android.os.Bundle;
import android.os.Handler;
@@ -493,6 +494,20 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
mHotwordDetectionConnection.stopListening();
}
+ public void triggerHardwareRecognitionEventForTestLocked(
+ SoundTrigger.KeyphraseRecognitionEvent event,
+ IHotwordRecognitionStatusCallback callback) {
+ if (DEBUG) {
+ Slog.d(TAG, "triggerHardwareRecognitionEventForTestLocked");
+ }
+ if (mHotwordDetectionConnection == null) {
+ Slog.w(TAG, "triggerHardwareRecognitionEventForTestLocked() called but connection"
+ + " isn't established");
+ return;
+ }
+ mHotwordDetectionConnection.triggerHardwareRecognitionEventForTestLocked(event, callback);
+ }
+
public IRecognitionStatusCallback createSoundTriggerCallbackLocked(
IHotwordRecognitionStatusCallback callback) {
if (DEBUG) {
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 48867895bd5c..1953af4adee5 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -1011,6 +1011,7 @@ public class TelecomManager {
* Enable READ_PHONE_STATE protection on APIs querying and notifying call state, such as
* {@code TelecomManager#getCallState}, {@link TelephonyManager#getCallStateForSubscription()},
* and {@link android.telephony.TelephonyCallback.CallStateListener}.
+ * @hide
*/
@ChangeId
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.S)
diff --git a/telephony/java/android/telephony/AccessNetworkConstants.java b/telephony/java/android/telephony/AccessNetworkConstants.java
index 96e715ee0495..1d7a4761dec6 100644
--- a/telephony/java/android/telephony/AccessNetworkConstants.java
+++ b/telephony/java/android/telephony/AccessNetworkConstants.java
@@ -62,6 +62,7 @@ public final class AccessNetworkConstants {
switch (transportType) {
case TRANSPORT_TYPE_WWAN: return "WWAN";
case TRANSPORT_TYPE_WLAN: return "WLAN";
+ case TRANSPORT_TYPE_INVALID: return "INVALID";
default: return Integer.toString(transportType);
}
}
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index b91497245dd1..8b9fc0fbf5b2 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -4216,7 +4216,6 @@ public class CarrierConfigManager {
* it will override the framework default.
* @hide
*/
- @SystemApi
public static final String KEY_PUBLISH_SERVICE_DESC_FEATURE_TAG_MAP_OVERRIDE_STRING_ARRAY =
KEY_PREFIX + "publish_service_desc_feature_tag_map_override_string_array";
diff --git a/telephony/java/android/telephony/CellSignalStrengthNr.java b/telephony/java/android/telephony/CellSignalStrengthNr.java
index bde62fb2977c..ac01afa51729 100644
--- a/telephony/java/android/telephony/CellSignalStrengthNr.java
+++ b/telephony/java/android/telephony/CellSignalStrengthNr.java
@@ -134,7 +134,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
*
* Range [0, 15] for each CQI.
*/
- private List<Integer> mCsiCqiReport;;
+ private List<Integer> mCsiCqiReport;
private int mSsRsrp;
private int mSsRsrq;
private int mSsSinr;
@@ -172,13 +172,13 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
* @hide
*/
public CellSignalStrengthNr(int csiRsrp, int csiRsrq, int csiSinr, int csiCqiTableIndex,
- List<Integer> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr) {
+ List<Byte> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr) {
mCsiRsrp = inRangeOrUnavailable(csiRsrp, -140, -44);
mCsiRsrq = inRangeOrUnavailable(csiRsrq, -20, -3);
mCsiSinr = inRangeOrUnavailable(csiSinr, -23, 23);
mCsiCqiTableIndex = inRangeOrUnavailable(csiCqiTableIndex, 1, 3);
- mCsiCqiReport = csiCqiReport.stream()
- .map(cqi -> new Integer(inRangeOrUnavailable(cqi.intValue(), 1, 3)))
+ mCsiCqiReport = csiCqiReport.stream()
+ .map(cqi -> new Integer(inRangeOrUnavailable(Byte.toUnsignedInt(cqi), 1, 3)))
.collect(Collectors.toList());
mSsRsrp = inRangeOrUnavailable(ssRsrp, -140, -44);
mSsRsrq = inRangeOrUnavailable(ssRsrq, -43, 20);
diff --git a/telephony/java/android/telephony/DataFailCause.java b/telephony/java/android/telephony/DataFailCause.java
index 0539897de33a..4d5b6ace39ab 100644
--- a/telephony/java/android/telephony/DataFailCause.java
+++ b/telephony/java/android/telephony/DataFailCause.java
@@ -1440,6 +1440,8 @@ public final class DataFailCause {
sFailCauseMap.put(IPV6_PREFIX_UNAVAILABLE, "IPV6_PREFIX_UNAVAILABLE");
sFailCauseMap.put(HANDOFF_PREFERENCE_CHANGED, "HANDOFF_PREFERENCE_CHANGED");
sFailCauseMap.put(SLICE_REJECTED, "SLICE_REJECTED");
+ sFailCauseMap.put(MATCH_ALL_RULE_NOT_ALLOWED, "MATCH_ALL_RULE_NOT_ALLOWED");
+ sFailCauseMap.put(ALL_MATCHING_RULES_FAILED, "ALL_MATCHING_RULES_FAILED");
sFailCauseMap.put(IWLAN_PDN_CONNECTION_REJECTION, "IWLAN_PDN_CONNECTION_REJECTION");
sFailCauseMap.put(IWLAN_MAX_CONNECTION_REACHED, "IWLAN_MAX_CONNECTION_REACHED");
sFailCauseMap.put(IWLAN_SEMANTIC_ERROR_IN_THE_TFT_OPERATION,
@@ -1598,6 +1600,8 @@ public final class DataFailCause {
add(UNACCEPTABLE_NETWORK_PARAMETER);
add(SIGNAL_LOST);
add(DUPLICATE_CID);
+ add(MATCH_ALL_RULE_NOT_ALLOWED);
+ add(ALL_MATCHING_RULES_FAILED);
}
};
}
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index d8ac08298530..2616ec8cc04f 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -2785,7 +2785,8 @@ public class SubscriptionManager {
* @param subId the subscriber this override applies to.
* @param overrideUnmetered set if the billing relationship should be
* considered unmetered.
- * @param networkTypes the network types this override applies to.
+ * @param networkTypes the network types this override applies to. If no
+ * network types are specified, override values will be ignored.
* {@see TelephonyManager#getAllNetworkTypes()}
* @param timeoutMillis the timeout after which the requested override will
* be automatically cleared, or {@code 0} to leave in the
@@ -2849,7 +2850,8 @@ public class SubscriptionManager {
* @param subId the subscriber this override applies to.
* @param overrideCongested set if the subscription should be considered
* congested.
- * @param networkTypes the network types this override applies to.
+ * @param networkTypes the network types this override applies to. If no
+ * network types are specified, override values will be ignored.
* {@see TelephonyManager#getAllNetworkTypes()}
* @param timeoutMillis the timeout after which the requested override will
* be automatically cleared, or {@code 0} to leave in the
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index c8e5e56031bc..8475cabd90cc 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -64,7 +64,6 @@ import android.os.ParcelFileDescriptor;
import android.os.ParcelUuid;
import android.os.Parcelable;
import android.os.PersistableBundle;
-import android.os.Process;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.SystemProperties;
@@ -90,7 +89,7 @@ import android.telephony.CallForwardingInfo.CallForwardingReason;
import android.telephony.VisualVoicemailService.VisualVoicemailTask;
import android.telephony.data.ApnSetting;
import android.telephony.data.ApnSetting.MvnoType;
-import android.telephony.data.SlicingConfig;
+import android.telephony.data.NetworkSlicingConfig;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
import android.telephony.gba.UaSecurityProtocolIdentifier;
@@ -428,10 +427,6 @@ public class TelephonyManager {
return null;
}
- private boolean isSystemProcess() {
- return Process.myUid() == Process.SYSTEM_UID;
- }
-
/**
* Post a runnable to the BackgroundThread.
*
@@ -4205,19 +4200,12 @@ public class TelephonyManager {
try {
IPhoneSubInfo info = getSubscriberInfoService();
if (info == null) {
- Rlog.e(TAG, "IMSI error: Subscriber Info is null");
- if (!isSystemProcess()) {
- throw new RuntimeException("IMSI error: Subscriber Info is null");
- }
- return;
+ throw new RuntimeException("IMSI error: Subscriber Info is null");
}
int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId());
info.resetCarrierKeysForImsiEncryption(subId, mContext.getOpPackageName());
} catch (RemoteException ex) {
- Rlog.e(TAG, "getCarrierInfoForImsiEncryption RemoteException" + ex);
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#getCarrierInfoForImsiEncryption RemoteException" + ex);
}
}
@@ -5612,17 +5600,11 @@ public class TelephonyManager {
try {
final ITelephony telephony = getITelephony();
if (telephony == null) {
- if (!isSystemProcess()) {
- throw new RuntimeException("Telephony service unavailable");
- }
return;
}
telephony.sendDialerSpecialCode(mContext.getOpPackageName(), inputCode);
} catch (RemoteException ex) {
- // This could happen if binder process crashes.
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#sendDialerSpecialCode RemoteException" + ex);
}
}
@@ -9941,9 +9923,7 @@ public class TelephonyManager {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#getMobileProvisioningUrl RemoteException" + ex);
}
return null;
}
@@ -10095,14 +10075,15 @@ public class TelephonyManager {
/**
* Sets the roaming mode for CDMA phone to the given mode {@code mode}. If the phone is not
- * CDMA capable, this method does nothing.
+ * CDMA capable, this method throws an IllegalStateException.
*
* <p>If this object has been created with {@link #createForSubscriptionId}, applies to the
* given subId. Otherwise, applies to {@link SubscriptionManager#getDefaultSubscriptionId()}
*
* @param mode CDMA roaming mode.
* @throws SecurityException if the caller does not have the permission.
- * @throws IllegalStateException if the Telephony process or radio is not currently available.
+ * @throws IllegalStateException if the Telephony process or radio is not currently available,
+ * the device is not CDMA capable, or the request fails.
*
* @see #CDMA_ROAMING_MODE_RADIO_DEFAULT
* @see #CDMA_ROAMING_MODE_HOME
@@ -10118,7 +10099,9 @@ public class TelephonyManager {
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setCdmaRoamingMode(@CdmaRoamingMode int mode) {
- if (getPhoneType() != PHONE_TYPE_CDMA) return;
+ if (getPhoneType() != PHONE_TYPE_CDMA) {
+ throw new IllegalStateException("Phone does not support CDMA.");
+ }
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
@@ -10200,11 +10183,12 @@ public class TelephonyManager {
/**
* Sets the subscription mode for CDMA phone to the given mode {@code mode}. If the phone is not
- * CDMA capable, this method does nothing.
+ * CDMA capable, this method throws an IllegalStateException.
*
* @param mode CDMA subscription mode.
* @throws SecurityException if the caller does not have the permission.
- * @throws IllegalStateException if the Telephony process is not currently available.
+ * @throws IllegalStateException if the Telephony process or radio is not currently available,
+ * the device is not CDMA capable, or the request fails.
*
* @see #CDMA_SUBSCRIPTION_UNKNOWN
* @see #CDMA_SUBSCRIPTION_RUIM_SIM
@@ -10219,7 +10203,9 @@ public class TelephonyManager {
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setCdmaSubscriptionMode(@CdmaSubscription int mode) {
- if (getPhoneType() != PHONE_TYPE_CDMA) return;
+ if (getPhoneType() != PHONE_TYPE_CDMA) {
+ throw new IllegalStateException("Phone does not support CDMA.");
+ }
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
@@ -13927,9 +13913,7 @@ public class TelephonyManager {
return service.isDataEnabledForApn(apnType, getSubId(), pkgForDebug);
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#isDataEnabledForApn RemoteException" + ex);
}
return false;
}
@@ -13949,9 +13933,7 @@ public class TelephonyManager {
return service.isApnMetered(apnType, getSubId());
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#isApnMetered RemoteException" + ex);
}
return true;
}
@@ -14011,9 +13993,7 @@ public class TelephonyManager {
service.setSystemSelectionChannels(specifiers, getSubId(), aidlConsumer);
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#setSystemSelectionChannels RemoteException" + ex);
}
}
@@ -14041,9 +14021,7 @@ public class TelephonyManager {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#getSystemSelectionChannels RemoteException" + ex);
}
return new ArrayList<>();
}
@@ -14072,9 +14050,7 @@ public class TelephonyManager {
return service.isMvnoMatched(getSubId(), mvnoType, mvnoMatchData);
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#matchesCurrentSimOperator RemoteException" + ex);
}
return false;
}
@@ -14475,10 +14451,7 @@ public class TelephonyManager {
service.setMobileDataPolicyEnabled(getSubId(), policy, enabled);
}
} catch (RemoteException ex) {
- // This could happen if binder process crashes.
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#setMobileDataPolicyEnabled RemoteException" + ex);
}
}
@@ -14498,10 +14471,7 @@ public class TelephonyManager {
return service.isMobileDataPolicyEnabled(getSubId(), policy);
}
} catch (RemoteException ex) {
- // This could happen if binder process crashes.
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#isMobileDataPolicyEnabled RemoteException" + ex);
}
return false;
}
@@ -15005,9 +14975,7 @@ public class TelephonyManager {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#getEquivalentHomePlmns RemoteException" + ex);
}
return Collections.emptyList();
@@ -15065,13 +15033,20 @@ public class TelephonyManager {
public static final String CAPABILITY_SLICING_CONFIG_SUPPORTED =
"CAPABILITY_SLICING_CONFIG_SUPPORTED";
- /** @hide */
+ /**
+ * A list of the radio interface capability values with public valid constants.
+ *
+ * Here is a related list for the systemapi-only valid constants:
+ * CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE
+ * CAPABILITY_ALLOWED_NETWORK_TYPES_USED
+ * CAPABILITY_NR_DUAL_CONNECTIVITY_CONFIGURATION_AVAILABLE
+ * CAPABILITY_THERMAL_MITIGATION_DATA_THROTTLING
+ *
+ * @hide
+ * TODO(b/185508047): Doc generation for mixed public/systemapi StringDefs formats badly.
+ */
@Retention(RetentionPolicy.SOURCE)
@StringDef(prefix = "CAPABILITY_", value = {
- CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE,
- CAPABILITY_ALLOWED_NETWORK_TYPES_USED,
- CAPABILITY_NR_DUAL_CONNECTIVITY_CONFIGURATION_AVAILABLE,
- CAPABILITY_THERMAL_MITIGATION_DATA_THROTTLING,
CAPABILITY_SLICING_CONFIG_SUPPORTED,
})
public @interface RadioInterfaceCapability {}
@@ -15083,10 +15058,7 @@ public class TelephonyManager {
*
* @param capability the name of the capability to check for
* @return the availability of the capability
- *
- * @hide
*/
- @SystemApi
public boolean isRadioInterfaceCapabilitySupported(
@NonNull @RadioInterfaceCapability String capability) {
try {
@@ -15099,9 +15071,7 @@ public class TelephonyManager {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
+ Rlog.e(TAG, "Telephony#isRadioInterfaceCapabilitySupported RemoteException" + ex);
}
return false;
}
@@ -15670,7 +15640,7 @@ public class TelephonyManager {
* Exception that may be supplied to the callback in {@link #getNetworkSlicingConfiguration} if
* something goes awry.
*/
- public static class SlicingException extends Exception {
+ public static class NetworkSlicingException extends Exception {
/**
* Getting the current slicing configuration successfully. Used internally only.
* @hide
@@ -15679,11 +15649,13 @@ public class TelephonyManager {
/**
* The system timed out waiting for a response from the Radio.
+ * @hide
*/
public static final int ERROR_TIMEOUT = 1;
/**
* The modem returned a failure.
+ * @hide
*/
public static final int ERROR_MODEM_ERROR = 2;
@@ -15693,20 +15665,44 @@ public class TelephonyManager {
ERROR_MODEM_ERROR,
})
@Retention(RetentionPolicy.SOURCE)
- public @interface SlicingError {}
+ public @interface NetworkSlicingError {}
private final int mErrorCode;
- public SlicingException(@SlicingError int errorCode) {
+ /** @hide */
+ public NetworkSlicingException(@NetworkSlicingError int errorCode) {
mErrorCode = errorCode;
}
- /**
- * Fetches the error code associated with this exception.
- * @return An error code.
- */
- public @SlicingError int getErrorCode() {
- return mErrorCode;
+ @Override
+ public String toString() {
+ switch (mErrorCode) {
+ case ERROR_TIMEOUT: return "ERROR_TIMEOUT";
+ case ERROR_MODEM_ERROR: return "ERROR_MODEM_ERROR";
+ default: return "UNDEFINED";
+ }
+ }
+ }
+
+ /**
+ * Exception that is supplied to the callback in {@link #getNetworkSlicingConfiguration} if the
+ * system timed out waiting for a response from the Radio.
+ */
+ public class TimeoutException extends NetworkSlicingException {
+ /** @hide */
+ public TimeoutException(int errorCode) {
+ super(errorCode);
+ }
+ }
+
+ /**
+ * Exception that is supplied to the callback in {@link #getNetworkSlicingConfiguration} if the
+ * modem returned a failure.
+ */
+ public class ModemErrorException extends NetworkSlicingException {
+ /** @hide */
+ public ModemErrorException(int errorCode) {
+ super(errorCode);
}
}
@@ -15737,7 +15733,7 @@ public class TelephonyManager {
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public void getNetworkSlicingConfiguration(
@NonNull @CallbackExecutor Executor executor,
- @NonNull OutcomeReceiver<SlicingConfig, SlicingException> callback) {
+ @NonNull OutcomeReceiver<NetworkSlicingConfig, NetworkSlicingException> callback) {
Objects.requireNonNull(executor);
Objects.requireNonNull(callback);
@@ -15749,12 +15745,17 @@ public class TelephonyManager {
telephony.getSlicingConfig(new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle result) {
- if (resultCode != SlicingException.SUCCESS) {
+ if (resultCode == NetworkSlicingException.ERROR_TIMEOUT) {
executor.execute(() -> callback.onError(
- new SlicingException(resultCode)));
+ new TimeoutException(resultCode)));
+ return;
+ } else if (resultCode == NetworkSlicingException.ERROR_MODEM_ERROR) {
+ executor.execute(() -> callback.onError(
+ new ModemErrorException(resultCode)));
return;
}
- SlicingConfig slicingConfig =
+
+ NetworkSlicingConfig slicingConfig =
result.getParcelable(KEY_SLICING_CONFIG_HANDLE);
executor.execute(() -> callback.onResult(slicingConfig));
}
diff --git a/telephony/java/android/telephony/data/SlicingConfig.aidl b/telephony/java/android/telephony/data/NetworkSlicingConfig.aidl
index ad93d8cafeba..cd4a8f1e45be 100644
--- a/telephony/java/android/telephony/data/SlicingConfig.aidl
+++ b/telephony/java/android/telephony/data/NetworkSlicingConfig.aidl
@@ -16,4 +16,4 @@
package android.telephony.data;
-parcelable SlicingConfig;
+parcelable NetworkSlicingConfig;
diff --git a/telephony/java/android/telephony/data/SlicingConfig.java b/telephony/java/android/telephony/data/NetworkSlicingConfig.java
index 990e4d218930..dec787f40ff2 100644
--- a/telephony/java/android/telephony/data/SlicingConfig.java
+++ b/telephony/java/android/telephony/data/NetworkSlicingConfig.java
@@ -28,22 +28,22 @@ import java.util.Objects;
/**
* Represents a slicing configuration
*/
-public final class SlicingConfig implements Parcelable {
+public final class NetworkSlicingConfig implements Parcelable {
private final List<UrspRule> mUrspRules;
private final List<NetworkSliceInfo> mSliceInfo;
- public SlicingConfig() {
+ public NetworkSlicingConfig() {
mUrspRules = new ArrayList<UrspRule>();
mSliceInfo = new ArrayList<NetworkSliceInfo>();
}
/** @hide */
- public SlicingConfig(android.hardware.radio.V1_6.SlicingConfig sc) {
+ public NetworkSlicingConfig(android.hardware.radio.V1_6.SlicingConfig sc) {
this(sc.urspRules, sc.sliceInfo);
}
/** @hide */
- public SlicingConfig(List<android.hardware.radio.V1_6.UrspRule> urspRules,
+ public NetworkSlicingConfig(List<android.hardware.radio.V1_6.UrspRule> urspRules,
List<android.hardware.radio.V1_6.SliceInfo> sliceInfo) {
mUrspRules = new ArrayList<UrspRule>();
for (android.hardware.radio.V1_6.UrspRule ur : urspRules) {
@@ -69,7 +69,7 @@ public final class SlicingConfig implements Parcelable {
}
/** @hide */
- public SlicingConfig(Parcel p) {
+ public NetworkSlicingConfig(Parcel p) {
mUrspRules = p.createTypedArrayList(UrspRule.CREATOR);
mSliceInfo = p.createTypedArrayList(NetworkSliceInfo.CREATOR);
}
@@ -96,16 +96,16 @@ public final class SlicingConfig implements Parcelable {
dest.writeTypedList(mSliceInfo, flags);
}
- public static final @NonNull Parcelable.Creator<SlicingConfig> CREATOR =
- new Parcelable.Creator<SlicingConfig>() {
+ public static final @NonNull Parcelable.Creator<NetworkSlicingConfig> CREATOR =
+ new Parcelable.Creator<NetworkSlicingConfig>() {
@Override
- public SlicingConfig createFromParcel(Parcel source) {
- return new SlicingConfig(source);
+ public NetworkSlicingConfig createFromParcel(Parcel source) {
+ return new NetworkSlicingConfig(source);
}
@Override
- public SlicingConfig[] newArray(int size) {
- return new SlicingConfig[size];
+ public NetworkSlicingConfig[] newArray(int size) {
+ return new NetworkSlicingConfig[size];
}
};
@@ -118,7 +118,7 @@ public final class SlicingConfig implements Parcelable {
public boolean equals(@Nullable Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- SlicingConfig that = (SlicingConfig) o;
+ NetworkSlicingConfig that = (NetworkSlicingConfig) o;
return mUrspRules.size() == that.mUrspRules.size()
&& mUrspRules.containsAll(that.mUrspRules)
&& mSliceInfo.size() == that.mSliceInfo.size()
diff --git a/telephony/java/android/telephony/data/QosBearerFilter.java b/telephony/java/android/telephony/data/QosBearerFilter.java
index 6c1c653f13d0..5642549d7313 100644
--- a/telephony/java/android/telephony/data/QosBearerFilter.java
+++ b/telephony/java/android/telephony/data/QosBearerFilter.java
@@ -31,7 +31,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-
/**
* Class that stores QOS filter parameters as defined in
* 3gpp 24.008 10.5.6.12 and 3gpp 24.501 9.11.4.13.
diff --git a/telephony/java/android/telephony/data/TrafficDescriptor.java b/telephony/java/android/telephony/data/TrafficDescriptor.java
index d813bc58fe6f..f400a5e39704 100644
--- a/telephony/java/android/telephony/data/TrafficDescriptor.java
+++ b/telephony/java/android/telephony/data/TrafficDescriptor.java
@@ -21,6 +21,7 @@ import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
+import java.util.Arrays;
import java.util.Objects;
/**
@@ -31,11 +32,11 @@ import java.util.Objects;
*/
public final class TrafficDescriptor implements Parcelable {
private final String mDnn;
- private final String mOsAppId;
+ private final byte[] mOsAppId;
private TrafficDescriptor(@NonNull Parcel in) {
mDnn = in.readString();
- mOsAppId = in.readString();
+ mOsAppId = in.createByteArray();
}
/**
@@ -45,14 +46,15 @@ public final class TrafficDescriptor implements Parcelable {
*
* @hide
*/
- public TrafficDescriptor(String dnn, String osAppId) {
+ public TrafficDescriptor(String dnn, byte[] osAppId) {
mDnn = dnn;
mOsAppId = osAppId;
}
/**
* DNN stands for Data Network Name and represents an APN as defined in 3GPP TS 23.003.
- * @return the DNN of this traffic descriptor.
+ * @return the DNN of this traffic descriptor if one is included by the network, null
+ * otherwise.
*/
public @Nullable String getDataNetworkName() {
return mDnn;
@@ -60,10 +62,11 @@ public final class TrafficDescriptor implements Parcelable {
/**
* OsAppId is the app id as defined in 3GPP TS 24.526 Section 5.2, and it identifies a traffic
- * category.
- * @return the OS App ID of this traffic descriptor.
+ * category. It includes the OS Id component of the field as defined in the specs.
+ * @return the OS App ID of this traffic descriptor if one is included by the network, null
+ * otherwise.
*/
- public @Nullable String getOsAppId() {
+ public @Nullable byte[] getOsAppId() {
return mOsAppId;
}
@@ -80,7 +83,7 @@ public final class TrafficDescriptor implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeString(mDnn);
- dest.writeString(mOsAppId);
+ dest.writeByteArray(mOsAppId);
}
public static final @NonNull Parcelable.Creator<TrafficDescriptor> CREATOR =
@@ -101,7 +104,7 @@ public final class TrafficDescriptor implements Parcelable {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TrafficDescriptor that = (TrafficDescriptor) o;
- return Objects.equals(mDnn, that.mDnn) && Objects.equals(mOsAppId, that.mOsAppId);
+ return Objects.equals(mDnn, that.mDnn) && Arrays.equals(mOsAppId, that.mOsAppId);
}
@Override
@@ -121,10 +124,12 @@ public final class TrafficDescriptor implements Parcelable {
* .setDnn("")
* .build();
* </code></pre>
+ *
+ * @hide
*/
public static final class Builder {
private String mDnn = null;
- private String mOsAppId = null;
+ private byte[] mOsAppId = null;
/**
* Default constructor for Builder.
@@ -144,12 +149,12 @@ public final class TrafficDescriptor implements Parcelable {
}
/**
- * Set the OS App ID.
+ * Set the OS App ID (including OS Id as defind in the specs).
*
* @return The same instance of the builder.
*/
@NonNull
- public Builder setOsAppId(@NonNull String osAppId) {
+ public Builder setOsAppId(@NonNull byte[] osAppId) {
this.mOsAppId = osAppId;
return this;
}
diff --git a/telephony/java/android/telephony/data/UrspRule.java b/telephony/java/android/telephony/data/UrspRule.java
index e2c47fd86b4b..fbe199975b00 100644
--- a/telephony/java/android/telephony/data/UrspRule.java
+++ b/telephony/java/android/telephony/data/UrspRule.java
@@ -84,8 +84,8 @@ public final class UrspRule implements Parcelable {
android.hardware.radio.V1_6.TrafficDescriptor td) {
String dnn = td.dnn.getDiscriminator() == OptionalDnn.hidl_discriminator.noinit
? null : td.dnn.value();
- String osAppId = td.osAppId.getDiscriminator() == OptionalOsAppId.hidl_discriminator.noinit
- ? null : new String(arrayListToPrimitiveArray(td.osAppId.value().osAppId));
+ byte[] osAppId = td.osAppId.getDiscriminator() == OptionalOsAppId.hidl_discriminator.noinit
+ ? null : arrayListToPrimitiveArray(td.osAppId.value().osAppId);
TrafficDescriptor.Builder builder = new TrafficDescriptor.Builder();
if (dnn != null) {
builder.setDataNetworkName(dnn);
diff --git a/telephony/java/android/telephony/ims/SipDelegateImsConfiguration.java b/telephony/java/android/telephony/ims/SipDelegateImsConfiguration.java
index 8762b6a712f2..0d63f7bba741 100644
--- a/telephony/java/android/telephony/ims/SipDelegateImsConfiguration.java
+++ b/telephony/java/android/telephony/ims/SipDelegateImsConfiguration.java
@@ -501,6 +501,10 @@ public final class SipDelegateImsConfiguration implements Parcelable {
* {@link SipMessage} was using the latest configuration during creation and not a stale
* configuration due to race conditions between the configuration being updated and the RCS
* application not receiving the updated configuration before generating a new message.
+ * <p>
+ * The version number should be a positive number that starts at 0 and increments sequentially
+ * as new {@link SipDelegateImsConfiguration} instances are created to update the IMS
+ * configuration state.
*
* @return the version number associated with this {@link SipDelegateImsConfiguration}.
*/
diff --git a/tests/net/TEST_MAPPING b/tests/net/TEST_MAPPING
index d659688700d3..502f885ceb78 100644
--- a/tests/net/TEST_MAPPING
+++ b/tests/net/TEST_MAPPING
@@ -28,7 +28,7 @@
],
"imports": [
{
- "path": "cts/tests/tests/net"
+ "path": "packages/modules/Connectivity"
}
]
} \ No newline at end of file
diff --git a/tests/net/common/java/ParseExceptionTest.kt b/tests/net/common/java/ParseExceptionTest.kt
new file mode 100644
index 000000000000..b702d61a9fe1
--- /dev/null
+++ b/tests/net/common/java/ParseExceptionTest.kt
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+
+import android.net.ParseException
+import android.os.Build
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.testutils.DevSdkIgnoreRule
+import junit.framework.Assert.assertEquals
+import junit.framework.Assert.assertNull
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class ParseExceptionTest {
+ @get:Rule
+ val ignoreRule = DevSdkIgnoreRule(ignoreClassUpTo = Build.VERSION_CODES.R)
+
+ @Test
+ fun testConstructor_WithCause() {
+ val testMessage = "Test message"
+ val base = Exception("Test")
+ val exception = ParseException(testMessage, base)
+
+ assertEquals(testMessage, exception.response)
+ assertEquals(base, exception.cause)
+ }
+
+ @Test
+ fun testConstructor_NoCause() {
+ val testMessage = "Test message"
+ val exception = ParseException(testMessage)
+
+ assertEquals(testMessage, exception.response)
+ assertNull(exception.cause)
+ }
+} \ No newline at end of file
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index b71be596d9c5..7ebed3967520 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -1791,7 +1791,7 @@ public class ConnectivityServiceTest {
assertNull(mCm.getActiveNetworkForUid(Process.myUid()));
// Test getAllNetworks()
assertEmpty(mCm.getAllNetworks());
- assertEmpty(mCm.getAllNetworkStateSnapshot());
+ assertEmpty(mCm.getAllNetworkStateSnapshots());
}
/**
@@ -12016,7 +12016,7 @@ public class ConnectivityServiceTest {
}
@Test
- public void testGetAllNetworkStateSnapshot() throws Exception {
+ public void testGetAllNetworkStateSnapshots() throws Exception {
verifyNoNetwork();
// Setup test cellular network with specified LinkProperties and NetworkCapabilities,
@@ -12040,7 +12040,7 @@ public class ConnectivityServiceTest {
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp, cellNcTemplate);
mCellNetworkAgent.connect(true);
cellCb.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
- List<NetworkStateSnapshot> snapshots = mCm.getAllNetworkStateSnapshot();
+ List<NetworkStateSnapshot> snapshots = mCm.getAllNetworkStateSnapshots();
assertLength(1, snapshots);
// Compose the expected cellular snapshot for verification.
@@ -12062,7 +12062,7 @@ public class ConnectivityServiceTest {
mWiFiNetworkAgent.getNetwork(), wifiNc, new LinkProperties(), null,
ConnectivityManager.TYPE_WIFI);
- snapshots = mCm.getAllNetworkStateSnapshot();
+ snapshots = mCm.getAllNetworkStateSnapshots();
assertLength(2, snapshots);
assertContainsAll(snapshots, cellSnapshot, wifiSnapshot);
@@ -12071,20 +12071,20 @@ public class ConnectivityServiceTest {
// temporary shortage of connectivity of a connected network.
mCellNetworkAgent.suspend();
waitForIdle();
- snapshots = mCm.getAllNetworkStateSnapshot();
+ snapshots = mCm.getAllNetworkStateSnapshots();
assertLength(1, snapshots);
assertEquals(wifiSnapshot, snapshots.get(0));
// Disconnect wifi, verify the snapshots contain nothing.
mWiFiNetworkAgent.disconnect();
waitForIdle();
- snapshots = mCm.getAllNetworkStateSnapshot();
+ snapshots = mCm.getAllNetworkStateSnapshots();
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
assertLength(0, snapshots);
mCellNetworkAgent.resume();
waitForIdle();
- snapshots = mCm.getAllNetworkStateSnapshot();
+ snapshots = mCm.getAllNetworkStateSnapshots();
assertLength(1, snapshots);
assertEquals(cellSnapshot, snapshots.get(0));
diff --git a/tests/vcn/java/android/net/vcn/VcnControlPlaneIkeConfigTest.java b/tests/vcn/java/android/net/vcn/VcnControlPlaneIkeConfigTest.java
index 2333718d0cab..43b80e4c1bbf 100644
--- a/tests/vcn/java/android/net/vcn/VcnControlPlaneIkeConfigTest.java
+++ b/tests/vcn/java/android/net/vcn/VcnControlPlaneIkeConfigTest.java
@@ -22,12 +22,7 @@ import static android.net.ipsec.ike.SaProposal.PSEUDORANDOM_FUNCTION_AES128_XCBC
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.Network;
import android.net.ipsec.ike.ChildSaProposal;
import android.net.ipsec.ike.IkeFqdnIdentification;
import android.net.ipsec.ike.IkeSaProposal;
@@ -56,20 +51,13 @@ public class VcnControlPlaneIkeConfigTest {
.addPseudorandomFunction(PSEUDORANDOM_FUNCTION_AES128_XCBC)
.build();
- Context mockContext = mock(Context.class);
- ConnectivityManager mockConnectManager = mock(ConnectivityManager.class);
- doReturn(mockConnectManager)
- .when(mockContext)
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- doReturn(mock(Network.class)).when(mockConnectManager).getActiveNetwork();
-
final String serverHostname = "192.0.2.100";
final String testLocalId = "test.client.com";
final String testRemoteId = "test.server.com";
final byte[] psk = "psk".getBytes();
IKE_PARAMS =
- new IkeSessionParams.Builder(mockContext)
+ new IkeSessionParams.Builder()
.setServerHostname(serverHostname)
.addSaProposal(ikeProposal)
.setLocalIdentification(new IkeFqdnIdentification(testLocalId))
diff --git a/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectingStateTest.java b/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectingStateTest.java
index bfe8c73d6389..acc8bf98e95b 100644
--- a/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectingStateTest.java
+++ b/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectingStateTest.java
@@ -58,8 +58,7 @@ public class VcnGatewayConnectionConnectingStateTest extends VcnGatewayConnectio
ArgumentCaptor.forClass(IkeSessionParams.class);
verify(mDeps).newIkeSession(any(), paramsCaptor.capture(), any(), any(), any());
assertEquals(
- TEST_UNDERLYING_NETWORK_RECORD_1.network,
- paramsCaptor.getValue().getConfiguredNetwork());
+ TEST_UNDERLYING_NETWORK_RECORD_1.network, paramsCaptor.getValue().getNetwork());
}
@Test
diff --git a/tools/fonts/fontchain_linter.py b/tools/fonts/fontchain_linter.py
index f0b759547a93..1d308df00ef7 100755
--- a/tools/fonts/fontchain_linter.py
+++ b/tools/fonts/fontchain_linter.py
@@ -4,6 +4,7 @@ import collections
import copy
import glob
from os import path
+import re
import sys
from xml.etree import ElementTree
@@ -199,8 +200,9 @@ def check_hyphens(hyphens_dir):
class FontRecord(object):
- def __init__(self, name, scripts, variant, weight, style, fallback_for, font):
+ def __init__(self, name, psName, scripts, variant, weight, style, fallback_for, font):
self.name = name
+ self.psName = psName
self.scripts = scripts
self.variant = variant
self.weight = weight
@@ -236,6 +238,7 @@ def parse_fonts_xml(fonts_xml_path):
assert variant in {None, 'elegant', 'compact'}, (
'Unexpected value for variant: %s' % variant)
+ trim_re = re.compile(r"^[ \n\r\t]*(.+)[ \n\r\t]*$")
for family in families:
name = family.get('name')
variant = family.get('variant')
@@ -251,6 +254,10 @@ def parse_fonts_xml(fonts_xml_path):
assert child.tag == 'font', (
'Unknown tag <%s>' % child.tag)
font_file = child.text.rstrip()
+
+ m = trim_re.match(font_file)
+ font_file = m.group(1)
+
weight = int(child.get('weight'))
assert weight % 100 == 0, (
'Font weight "%d" is not a multiple of 100.' % weight)
@@ -270,11 +277,12 @@ def parse_fonts_xml(fonts_xml_path):
if index:
index = int(index)
- if not path.exists(path.join(_fonts_dir, font_file)):
+ if not path.exists(path.join(_fonts_dir, m.group(1))):
continue # Missing font is a valid case. Just ignore the missing font files.
record = FontRecord(
name,
+ child.get('postScriptName'),
frozenset(scripts),
variant,
weight,
@@ -664,6 +672,37 @@ def check_cjk_punctuation():
break
assert_font_supports_none_of_chars(record.font, cjk_punctuation, name)
+def getPostScriptName(font):
+ font_file, index = font
+ font_path = path.join(_fonts_dir, font_file)
+ if index is not None:
+ # Use the first font file in the collection for resolving post script name.
+ ttf = ttLib.TTFont(font_path, fontNumber=0)
+ else:
+ ttf = ttLib.TTFont(font_path)
+
+ nameTable = ttf['name']
+ for name in nameTable.names:
+ if (name.nameID == 6 and name.platformID == 3 and name.platEncID == 1
+ and name.langID == 0x0409):
+ return str(name)
+
+def check_canonical_name():
+ for record in _all_fonts:
+ file_name, index = record.font
+
+ psName = getPostScriptName(record.font)
+ if record.psName:
+ # If fonts element has postScriptName attribute, it should match with the PostScript
+ # name in the name table.
+ assert psName == record.psName, ('postScriptName attribute %s should match with %s' % (
+ record.psName, psName))
+ else:
+ # If fonts element doesn't have postScriptName attribute, the file name should match
+ # with the PostScript name in the name table.
+ assert psName == file_name[:-4], ('file name %s should match with %s' % (
+ file_name, psName))
+
def main():
global _fonts_dir
@@ -682,6 +721,8 @@ def main():
check_cjk_punctuation()
+ check_canonical_name()
+
check_emoji = sys.argv[2]
if check_emoji == 'true':
ucd_path = sys.argv[3]