Merge "Changes to 'Alarms & reminders' permission setting" into sc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0a40c89..65a6f04 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -542,12 +542,12 @@
         <activity android:name=".network.telephony.ToggleSubscriptionDialogActivity"
                   android:exported="false"
                   android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
-                  android:theme="@style/Theme.AlertDialog" />
+                  android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
 
         <activity android:name=".network.telephony.DeleteEuiccSubscriptionDialogActivity"
                   android:exported="false"
                   android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
-                  android:theme="@style/Theme.AlertDialog" />
+                  android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
 
         <activity
             android:name="Settings$TetherSettingsActivity"
@@ -713,7 +713,8 @@
         <activity
             android:name="Settings$ManageAssistActivity"
             android:exported="true"
-            android:label="@string/assist_and_voice_input_title">
+            android:label="@string/assist_and_voice_input_title"
+            android:theme="@style/Theme.SubSettings">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.VOICE_INPUT_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -3785,14 +3786,14 @@
             android:exported="false"
             android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
             android:launchMode="singleInstance"
-            android:theme="@style/Theme.AlertDialog" />
+            android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
 
         <activity
             android:name=".sim.DsdsDialogActivity"
             android:exported="false"
             android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
             android:launchMode="singleInstance"
-            android:theme="@style/Theme.AlertDialog" />
+            android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
 
         <service android:name=".sim.SimNotificationService"
                  android:permission="android.permission.BIND_JOB_SERVICE" />
diff --git a/res/drawable/accessibility_color_inversion_banner.gif b/res/drawable/accessibility_color_inversion_banner.gif
deleted file mode 100644
index dc7c8ac..0000000
--- a/res/drawable/accessibility_color_inversion_banner.gif
+++ /dev/null
Binary files differ
diff --git a/res/drawable/accessibility_magnification_banner.gif b/res/drawable/accessibility_magnification_banner.gif
deleted file mode 100644
index f9b7e36..0000000
--- a/res/drawable/accessibility_magnification_banner.gif
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_no_internet_airplane.xml b/res/drawable/ic_no_internet_airplane.xml
deleted file mode 100644
index 3b22811..0000000
--- a/res/drawable/ic_no_internet_airplane.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-    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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10c0.34,0 0.68,-0.02 1.01,-0.05V20h-1v-0.04c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96H13v-2H9.66c-0.09,-0.66 -0.16,-1.32 -0.16,-2s0.07,-1.35 0.16,-2H21.8C20.87,5.44 16.83,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56C16.43,5.07 17.96,6.35 18.92,8zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82C10.52,6.57 11.17,5.24 12,4.04zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2s0.06,1.34 0.14,2H4.26zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56C7.57,18.93 6.04,17.66 5.08,16zM8.03,8H5.08c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8z"
-        android:fillAlpha="0.3"/>
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M22,19.3v-0.9l-3.37,-2.25v-2.47C18.63,13.3 18.35,13 18,13s-0.63,0.3 -0.63,0.68v2.47L14,18.4v0.9l3.37,-1.12v2.48l-0.84,0.68V22L18,21.55L19.47,22v-0.67l-0.84,-0.68v-2.48L22,19.3z"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_no_internet_unavailable.xml b/res/drawable/ic_no_internet_unavailable.xml
new file mode 100644
index 0000000..049034a
--- /dev/null
+++ b/res/drawable/ic_no_internet_unavailable.xml
@@ -0,0 +1,28 @@
+<!--
+    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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M2,12C2,6.48 6.47,2 11.99,2C17.52,2 22,6.48 22,12c0,0.34 -0.02,0.67 -0.05,1h-2.02c0.04,-0.33 0.07,-0.66 0.07,-1c0,-0.69 -0.1,-1.36 -0.26,-2h-3.38c0.08,0.66 0.14,1.32 0.14,2c0,0.34 -0.01,0.67 -0.04,1h-2.01c0.03,-0.33 0.05,-0.66 0.05,-1c0,-0.68 -0.07,-1.35 -0.16,-2H9.66c-0.09,0.65 -0.16,1.32 -0.16,2s0.07,1.34 0.16,2H13v2h-2.91c0.43,1.43 1.08,2.76 1.91,3.96V20h1v1.95C12.67,21.98 12.33,22 11.99,22C6.47,22 2,17.52 2,12zM15.97,8h2.95c-0.96,-1.65 -2.49,-2.93 -4.33,-3.56C15.19,5.55 15.65,6.75 15.97,8zM13.91,8C13.48,6.57 12.83,5.24 12,4.04c-0.83,1.2 -1.48,2.53 -1.91,3.96H13.91zM4,12c0,0.69 0.1,1.36 0.26,2h3.38c-0.08,-0.66 -0.14,-1.32 -0.14,-2s0.06,-1.34 0.14,-2H4.26C4.1,10.64 4,11.31 4,12zM8.03,16H5.08c0.96,1.66 2.49,2.93 4.33,3.56C8.81,18.45 8.35,17.25 8.03,16zM5.08,8h2.95c0.32,-1.25 0.78,-2.45 1.38,-3.56C7.57,5.07 6.04,6.34 5.08,8z"
+        android:fillAlpha="0.3"/>
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M22,16.41L20.59,15l-2.09,2.09L16.41,15L15,16.41l2.09,2.09L15,20.59L16.41,22l2.09,-2.08L20.59,22L22,20.59l-2.08,-2.09L22,16.41z"/>
+</vector>
diff --git a/res/layout/manage_apps_filter_spinner.xml b/res/layout/manage_apps_filter_spinner.xml
new file mode 100644
index 0000000..8283bb8
--- /dev/null
+++ b/res/layout/manage_apps_filter_spinner.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     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.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@android:color/transparent">
+
+    <com.android.settingslib.widget.settingsspinner.SettingsSpinner
+        android:id="@+id/filter_spinner"
+        android:layout_height="wrap_content"
+        android:layout_width="wrap_content"
+        android:layout_marginStart="24dp"
+        android:layout_marginTop="16dp"
+        android:layout_marginBottom="8dp"
+        android:theme="@style/Widget.PopupWindow.Settings"/>
+</FrameLayout>
diff --git a/res/layout/preference_animated_image.xml b/res/layout/preference_animated_image.xml
index 0ab8adf..64cfc98 100644
--- a/res/layout/preference_animated_image.xml
+++ b/res/layout/preference_animated_image.xml
@@ -15,30 +15,31 @@
   limitations under the License.
   -->
 
-<FrameLayout
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:clipToPadding="false"
+    android:layout_height="@dimen/settingslib_illustration_height"
+    android:gravity="center"
+    android:padding="@dimen/settingslib_illustration_padding"
+    android:orientation="vertical"
     android:importantForAccessibility="noHideDescendants">
 
     <ImageView
         android:id="@+id/animated_img"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
+        android:maxWidth="@dimen/settingslib_illustration_width"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:background="@drawable/protection_background"
         android:scaleType="fitCenter"
-        android:focusable="false"
-        android:clickable="false"
         android:adjustViewBounds="true"/>
 
     <com.airbnb.lottie.LottieAnimationView
         android:id="@+id/lottie_view"
-        android:layout_width="412dp"
-        android:layout_height="300dp"
-        android:layout_gravity="center"
+        android:maxWidth="@dimen/settingslib_illustration_width"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
         android:background="@drawable/protection_background"
         android:scaleType="fitCenter"
         android:adjustViewBounds="true"
         android:clipToOutline="true"/>
-</FrameLayout>
\ No newline at end of file
+</LinearLayout>
\ No newline at end of file
diff --git a/res/raw/accessibility_color_inversion_banner.json b/res/raw/accessibility_color_inversion_banner.json
new file mode 100644
index 0000000..6cdeef9
--- /dev/null
+++ b/res/raw/accessibility_color_inversion_banner.json
@@ -0,0 +1,2888 @@
+{
+  "v": "5.6.5",
+  "fr": 54.2070007324219,
+  "ip": 0,
+  "op": 134.000001810551,
+  "w": 412,
+  "h": 300,
+  "nm": "Color_Inversion",
+  "ddd": 0,
+  "assets": [
+    {
+      "id": "comp_0",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".grey300",
+          "cl": "grey300",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          64.12,
+                          114.112
+                        ],
+                        [
+                          54.611,
+                          123.622
+                        ],
+                        [
+                          -54.747,
+                          123.622
+                        ],
+                        [
+                          -64.256,
+                          114.112
+                        ],
+                        [
+                          -64.256,
+                          -114.112
+                        ],
+                        [
+                          -54.747,
+                          -123.622
+                        ],
+                        [
+                          54.611,
+                          -123.622
+                        ],
+                        [
+                          64.12,
+                          -114.112
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ind": 1,
+                  "ty": "sh",
+                  "ix": 2,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          68.875,
+                          -52.302
+                        ],
+                        [
+                          68.875,
+                          -61.811
+                        ],
+                        [
+                          66.498,
+                          -64.188
+                        ],
+                        [
+                          66.498,
+                          -114.112
+                        ],
+                        [
+                          54.611,
+                          -126
+                        ],
+                        [
+                          -54.747,
+                          -126
+                        ],
+                        [
+                          -66.634,
+                          -114.112
+                        ],
+                        [
+                          -66.634,
+                          114.112
+                        ],
+                        [
+                          -54.747,
+                          126
+                        ],
+                        [
+                          54.611,
+                          126
+                        ],
+                        [
+                          66.498,
+                          114.112
+                        ],
+                        [
+                          66.498,
+                          -2.378
+                        ],
+                        [
+                          68.875,
+                          -4.755
+                        ],
+                        [
+                          68.875,
+                          -28.528
+                        ],
+                        [
+                          66.498,
+                          -30.906
+                        ],
+                        [
+                          66.498,
+                          -49.924
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 2",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.854901969433,
+                      0.86274510622,
+                      0.878431379795,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 548.394157409668,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    },
+    {
+      "id": "comp_1",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".black",
+          "cl": "black",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          64.12,
+                          114.112
+                        ],
+                        [
+                          54.611,
+                          123.622
+                        ],
+                        [
+                          -54.747,
+                          123.622
+                        ],
+                        [
+                          -64.256,
+                          114.112
+                        ],
+                        [
+                          -64.256,
+                          -114.112
+                        ],
+                        [
+                          -54.747,
+                          -123.622
+                        ],
+                        [
+                          54.611,
+                          -123.622
+                        ],
+                        [
+                          64.12,
+                          -114.112
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0,
+                      0,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 1",
+              "np": 2,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 548.394157409668,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    },
+    {
+      "id": "comp_2",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".white",
+          "cl": "white",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          64.12,
+                          114.112
+                        ],
+                        [
+                          54.611,
+                          123.622
+                        ],
+                        [
+                          -54.747,
+                          123.622
+                        ],
+                        [
+                          -64.256,
+                          114.112
+                        ],
+                        [
+                          -64.256,
+                          -114.112
+                        ],
+                        [
+                          -54.747,
+                          -123.622
+                        ],
+                        [
+                          54.611,
+                          -123.622
+                        ],
+                        [
+                          64.12,
+                          -114.112
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      1,
+                      1,
+                      1,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 1",
+              "np": 2,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 841.111961364746,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    }
+  ],
+  "layers": [
+    {
+      "ddd": 0,
+      "ind": 1,
+      "ty": 4,
+      "nm": ".blue600",
+      "cl": "blue600",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 1,
+          "k": [
+            {
+              "i": {
+                "x": [
+                  0.833
+                ],
+                "y": [
+                  0.833
+                ]
+              },
+              "o": {
+                "x": [
+                  0.167
+                ],
+                "y": [
+                  0.167
+                ]
+              },
+              "t": 47,
+              "s": [
+                100
+              ]
+            },
+            {
+              "t": 65.0000008782523,
+              "s": [
+                0
+              ]
+            }
+          ],
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            242.369,
+            247.869,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            36.869,
+            96.869,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "d": 1,
+              "ty": "el",
+              "s": {
+                "a": 0,
+                "k": [
+                  24.738,
+                  24.738
+                ],
+                "ix": 2
+              },
+              "p": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 3
+              },
+              "nm": "Ellipse Path 1",
+              "mn": "ADBE Vector Shape - Ellipse",
+              "hd": false
+            },
+            {
+              "ty": "st",
+              "c": {
+                "a": 0,
+                "k": [
+                  1,
+                  1,
+                  1,
+                  1
+                ],
+                "ix": 3
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 4
+              },
+              "w": {
+                "a": 0,
+                "k": 7,
+                "ix": 5
+              },
+              "lc": 1,
+              "lj": 1,
+              "ml": 4,
+              "bm": 0,
+              "nm": "Stroke 1",
+              "mn": "ADBE Vector Graphic - Stroke",
+              "hd": true
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.101960784314,
+                  0.450980392157,
+                  0.909803921569,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  36.869,
+                  96.869
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Ellipse 1",
+          "np": 3,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 134.000001810551,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 2,
+      "ty": 4,
+      "nm": ".blue400",
+      "cl": "blue400",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            242.369,
+            247.869,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            36.869,
+            96.869,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "d": 1,
+              "ty": "el",
+              "s": {
+                "a": 0,
+                "k": [
+                  24.738,
+                  24.738
+                ],
+                "ix": 2
+              },
+              "p": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 3
+              },
+              "nm": "Ellipse Path 1",
+              "mn": "ADBE Vector Shape - Ellipse",
+              "hd": false
+            },
+            {
+              "ty": "st",
+              "c": {
+                "a": 0,
+                "k": [
+                  1,
+                  1,
+                  1,
+                  1
+                ],
+                "ix": 3
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 4
+              },
+              "w": {
+                "a": 0,
+                "k": 7,
+                "ix": 5
+              },
+              "lc": 1,
+              "lj": 1,
+              "ml": 4,
+              "bm": 0,
+              "nm": "Stroke 1",
+              "mn": "ADBE Vector Graphic - Stroke",
+              "hd": true
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.4,
+                  0.61568627451,
+                  0.964705882353,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  36.869,
+                  96.869
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Ellipse 1",
+          "np": 3,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 134.000001810551,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 3,
+      "ty": 4,
+      "nm": ".grey700",
+      "cl": "grey700",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 70,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            193.017,
+            167.386,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            11.892,
+            -66.614,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ]
+                  ],
+                  "v": [
+                    [
+                      37.875,
+                      21.802
+                    ],
+                    [
+                      37.875,
+                      53.448
+                    ],
+                    [
+                      33.875,
+                      57.448
+                    ],
+                    [
+                      -33.943,
+                      57.448
+                    ],
+                    [
+                      -37.943,
+                      53.448
+                    ],
+                    [
+                      -37.943,
+                      21.802
+                    ],
+                    [
+                      -33.943,
+                      17.802
+                    ],
+                    [
+                      33.875,
+                      17.802
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "st",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.909803981407,
+                  0.917646998985,
+                  0.929412004059,
+                  1
+                ],
+                "ix": 3
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 4
+              },
+              "w": {
+                "a": 0,
+                "k": 7,
+                "ix": 5
+              },
+              "lc": 1,
+              "lj": 1,
+              "ml": 4,
+              "bm": 0,
+              "nm": "Stroke 1",
+              "mn": "ADBE Vector Graphic - Stroke",
+              "hd": true
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.372549019608,
+                  0.388235294118,
+                  0.407843137255,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  11.909,
+                  -88.677
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Rectangle 2",
+          "np": 3,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        },
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ]
+                  ],
+                  "v": [
+                    [
+                      37.909,
+                      -9.323
+                    ],
+                    [
+                      37.909,
+                      9.323
+                    ],
+                    [
+                      33.909,
+                      13.323
+                    ],
+                    [
+                      -33.909,
+                      13.323
+                    ],
+                    [
+                      -37.909,
+                      9.323
+                    ],
+                    [
+                      -37.909,
+                      -9.323
+                    ],
+                    [
+                      -33.909,
+                      -13.323
+                    ],
+                    [
+                      33.909,
+                      -13.323
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "st",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.909803981407,
+                  0.917646998985,
+                  0.929412004059,
+                  1
+                ],
+                "ix": 3
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 4
+              },
+              "w": {
+                "a": 0,
+                "k": 7,
+                "ix": 5
+              },
+              "lc": 1,
+              "lj": 1,
+              "ml": 4,
+              "bm": 0,
+              "nm": "Stroke 1",
+              "mn": "ADBE Vector Graphic - Stroke",
+              "hd": true
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.372549019608,
+                  0.388235294118,
+                  0.407843137255,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  11.909,
+                  -88.677
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Rectangle 1",
+          "np": 3,
+          "cix": 2,
+          "bm": 0,
+          "ix": 2,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 134.000001810551,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 4,
+      "ty": 4,
+      "nm": ".grey600",
+      "cl": "grey600",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 40,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            218.517,
+            83.886,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            11.892,
+            -66.614,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ]
+                  ],
+                  "v": [
+                    [
+                      37.875,
+                      21.802
+                    ],
+                    [
+                      37.875,
+                      53.448
+                    ],
+                    [
+                      33.875,
+                      57.448
+                    ],
+                    [
+                      -33.943,
+                      57.448
+                    ],
+                    [
+                      -37.943,
+                      53.448
+                    ],
+                    [
+                      -37.943,
+                      21.802
+                    ],
+                    [
+                      -33.943,
+                      17.802
+                    ],
+                    [
+                      33.875,
+                      17.802
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "st",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.909803981407,
+                  0.917646998985,
+                  0.929412004059,
+                  1
+                ],
+                "ix": 3
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 4
+              },
+              "w": {
+                "a": 0,
+                "k": 7,
+                "ix": 5
+              },
+              "lc": 1,
+              "lj": 1,
+              "ml": 4,
+              "bm": 0,
+              "nm": "Stroke 1",
+              "mn": "ADBE Vector Graphic - Stroke",
+              "hd": true
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.501960784314,
+                  0.525490196078,
+                  0.545098039216,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  11.909,
+                  -88.677
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Rectangle 2",
+          "np": 3,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        },
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -2.209,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -2.209
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      2.209,
+                      0
+                    ]
+                  ],
+                  "v": [
+                    [
+                      37.909,
+                      -9.323
+                    ],
+                    [
+                      37.909,
+                      9.323
+                    ],
+                    [
+                      33.909,
+                      13.323
+                    ],
+                    [
+                      -33.909,
+                      13.323
+                    ],
+                    [
+                      -37.909,
+                      9.323
+                    ],
+                    [
+                      -37.909,
+                      -9.323
+                    ],
+                    [
+                      -33.909,
+                      -13.323
+                    ],
+                    [
+                      33.909,
+                      -13.323
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "st",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.909803981407,
+                  0.917646998985,
+                  0.929412004059,
+                  1
+                ],
+                "ix": 3
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 4
+              },
+              "w": {
+                "a": 0,
+                "k": 7,
+                "ix": 5
+              },
+              "lc": 1,
+              "lj": 1,
+              "ml": 4,
+              "bm": 0,
+              "nm": "Stroke 1",
+              "mn": "ADBE Vector Graphic - Stroke",
+              "hd": true
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0.501960784314,
+                  0.525490196078,
+                  0.545098039216,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  11.909,
+                  -88.677
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Rectangle 1",
+          "np": 3,
+          "cix": 2,
+          "bm": 0,
+          "ix": 2,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 134.000001810551,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 5,
+      "ty": 0,
+      "nm": "Phone",
+      "refId": "comp_0",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 542.070007324219,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 6,
+      "ty": 0,
+      "nm": "ScreenBlack",
+      "refId": "comp_1",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 1,
+          "k": [
+            {
+              "i": {
+                "x": [
+                  0.833
+                ],
+                "y": [
+                  0.833
+                ]
+              },
+              "o": {
+                "x": [
+                  0.167
+                ],
+                "y": [
+                  0.167
+                ]
+              },
+              "t": 47,
+              "s": [
+                0
+              ]
+            },
+            {
+              "t": 65.0000008782523,
+              "s": [
+                100
+              ]
+            }
+          ],
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 542.070007324219,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 7,
+      "ty": 0,
+      "nm": "Screen",
+      "refId": "comp_2",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 813.105010986328,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 8,
+      "ty": 4,
+      "nm": ".white",
+      "cl": "white",
+      "hd": true,
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            0,
+            0,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      15.4,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      15.4
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -15.4,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -15.4
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -15.4,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -15.4
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      15.4,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      15.4
+                    ]
+                  ],
+                  "v": [
+                    [
+                      178,
+                      150
+                    ],
+                    [
+                      -178,
+                      150
+                    ],
+                    [
+                      -206,
+                      122
+                    ],
+                    [
+                      -206,
+                      -122
+                    ],
+                    [
+                      -178,
+                      -150
+                    ],
+                    [
+                      178,
+                      -150
+                    ],
+                    [
+                      206,
+                      -122
+                    ],
+                    [
+                      206,
+                      122
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  1,
+                  1,
+                  1,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Group 1",
+          "np": 2,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 1626.21002197266,
+      "st": 0,
+      "bm": 0
+    }
+  ],
+  "markers": []
+}
\ No newline at end of file
diff --git a/res/raw/accessibility_magnification_banner.json b/res/raw/accessibility_magnification_banner.json
new file mode 100644
index 0000000..23cd154
--- /dev/null
+++ b/res/raw/accessibility_magnification_banner.json
@@ -0,0 +1,5729 @@
+{
+  "v": "5.6.5",
+  "fr": 60,
+  "ip": 0,
+  "op": 540,
+  "w": 412,
+  "h": 300,
+  "nm": "Magnification",
+  "ddd": 0,
+  "assets": [
+    {
+      "id": "comp_0",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 3,
+          "nm": "MoveA+Dots",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 0,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": 0.351,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 170,
+                  "s": [
+                    206,
+                    150,
+                    0
+                  ],
+                  "to": [
+                    4.167,
+                    -0.833,
+                    0
+                  ],
+                  "ti": [
+                    -4.167,
+                    0.833,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.333,
+                    "y": 0.333
+                  },
+                  "t": 207,
+                  "s": [
+                    231,
+                    145,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.423,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.488,
+                    "y": 0
+                  },
+                  "t": 214,
+                  "s": [
+                    231,
+                    145,
+                    0
+                  ],
+                  "to": [
+                    -0.833,
+                    5,
+                    0
+                  ],
+                  "ti": [
+                    0.833,
+                    -5,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.333,
+                    "y": 0.333
+                  },
+                  "t": 247,
+                  "s": [
+                    226,
+                    175,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.735,
+                    "y": 0.034
+                  },
+                  "t": 438,
+                  "s": [
+                    226,
+                    175,
+                    0
+                  ],
+                  "to": [
+                    -3.333,
+                    -4.167,
+                    0
+                  ],
+                  "ti": [
+                    3.333,
+                    4.167,
+                    0
+                  ]
+                },
+                {
+                  "t": 478,
+                  "s": [
+                    206,
+                    150,
+                    0
+                  ]
+                }
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "ip": 0,
+          "op": 540,
+          "st": 0,
+          "bm": 0
+        },
+        {
+          "ddd": 0,
+          "ind": 2,
+          "ty": 4,
+          "nm": ".yellow600",
+          "cl": "yellow600",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 146,
+                  "s": [
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 155,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 270,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 279,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 325,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 334,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 465,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "t": 472,
+                  "s": [
+                    0
+                  ]
+                }
+              ],
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 298,
+                  "s": [
+                    226,
+                    175,
+                    0
+                  ],
+                  "to": [
+                    -0.5,
+                    -1.667,
+                    0
+                  ],
+                  "ti": [
+                    0.5,
+                    1.667,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 305,
+                  "s": [
+                    223,
+                    165,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.257,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.333,
+                    "y": 0
+                  },
+                  "t": 352,
+                  "s": [
+                    223,
+                    165,
+                    0
+                  ],
+                  "to": [
+                    1.667,
+                    -1.667,
+                    0
+                  ],
+                  "ti": [
+                    -1.667,
+                    1.667,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 393,
+                  "s": [
+                    233,
+                    155,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.568,
+                    "y": 0.036
+                  },
+                  "t": 438,
+                  "s": [
+                    233,
+                    155,
+                    0
+                  ],
+                  "to": [
+                    -3.833,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    3.833,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "t": 478,
+                  "s": [
+                    210,
+                    155,
+                    0
+                  ]
+                }
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "d": 1,
+                  "ty": "el",
+                  "s": {
+                    "a": 1,
+                    "k": [
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 146,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 163,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 270,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 279,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 325,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 334,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 445,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "t": 474,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      }
+                    ],
+                    "ix": 2
+                  },
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 3
+                  },
+                  "nm": "Ellipse Path 1",
+                  "mn": "ADBE Vector Shape - Ellipse",
+                  "hd": false
+                },
+                {
+                  "ty": "st",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.4,
+                      0.615685975318,
+                      0.96470600203,
+                      1
+                    ],
+                    "ix": 3
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 4
+                  },
+                  "w": {
+                    "a": 0,
+                    "k": 7,
+                    "ix": 5
+                  },
+                  "lc": 1,
+                  "lj": 1,
+                  "ml": 4,
+                  "bm": 0,
+                  "nm": "Stroke 1",
+                  "mn": "ADBE Vector Graphic - Stroke",
+                  "hd": true
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.976470588235,
+                      0.670588235294,
+                      0,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Ellipse 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 438,
+          "op": 540,
+          "st": 0,
+          "bm": 0
+        },
+        {
+          "ddd": 0,
+          "ind": 3,
+          "ty": 4,
+          "nm": ".yellow600",
+          "cl": "yellow600",
+          "parent": 1,
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 146,
+                  "s": [
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 155,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 270,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 279,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 325,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "t": 334,
+                  "s": [
+                    85
+                  ]
+                }
+              ],
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 298,
+                  "s": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "to": [
+                    -0.5,
+                    -1.667,
+                    0
+                  ],
+                  "ti": [
+                    0.5,
+                    1.667,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 305,
+                  "s": [
+                    -3,
+                    -10,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.257,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.333,
+                    "y": 0
+                  },
+                  "t": 352,
+                  "s": [
+                    -3,
+                    -10,
+                    0
+                  ],
+                  "to": [
+                    1.667,
+                    -1.667,
+                    0
+                  ],
+                  "ti": [
+                    -1.667,
+                    1.667,
+                    0
+                  ]
+                },
+                {
+                  "t": 393,
+                  "s": [
+                    7,
+                    -20,
+                    0
+                  ]
+                }
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "d": 1,
+                  "ty": "el",
+                  "s": {
+                    "a": 1,
+                    "k": [
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 146,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 163,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 270,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 279,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 325,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "t": 334,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      }
+                    ],
+                    "ix": 2
+                  },
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 3
+                  },
+                  "nm": "Ellipse Path 1",
+                  "mn": "ADBE Vector Shape - Ellipse",
+                  "hd": false
+                },
+                {
+                  "ty": "st",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.4,
+                      0.615685975318,
+                      0.96470600203,
+                      1
+                    ],
+                    "ix": 3
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 4
+                  },
+                  "w": {
+                    "a": 0,
+                    "k": 7,
+                    "ix": 5
+                  },
+                  "lc": 1,
+                  "lj": 1,
+                  "ml": 4,
+                  "bm": 0,
+                  "nm": "Stroke 1",
+                  "mn": "ADBE Vector Graphic - Stroke",
+                  "hd": true
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.976470588235,
+                      0.670588235294,
+                      0,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Ellipse 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 438,
+          "st": 0,
+          "bm": 0
+        },
+        {
+          "ddd": 0,
+          "ind": 4,
+          "ty": 4,
+          "nm": ".yellow600",
+          "cl": "yellow600",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 40,
+                  "s": [
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 49,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 67,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 143,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 157,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 270,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 279,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 325,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 334,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 465,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "t": 472,
+                  "s": [
+                    0
+                  ]
+                }
+              ],
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 114,
+                  "s": [
+                    226,
+                    175,
+                    0
+                  ],
+                  "to": [
+                    -5.333,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    5.333,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 135,
+                  "s": [
+                    194,
+                    175,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 298,
+                  "s": [
+                    194,
+                    175,
+                    0
+                  ],
+                  "to": [
+                    0.5,
+                    1.667,
+                    0
+                  ],
+                  "ti": [
+                    -0.5,
+                    -1.667,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 305,
+                  "s": [
+                    197,
+                    185,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.257,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.333,
+                    "y": 0
+                  },
+                  "t": 352,
+                  "s": [
+                    197,
+                    185,
+                    0
+                  ],
+                  "to": [
+                    -1.667,
+                    1.667,
+                    0
+                  ],
+                  "ti": [
+                    1.667,
+                    -1.667,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 393,
+                  "s": [
+                    187,
+                    195,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.568,
+                    "y": 0.019
+                  },
+                  "t": 438,
+                  "s": [
+                    187,
+                    195,
+                    0
+                  ],
+                  "to": [
+                    2.833,
+                    -6.667,
+                    0
+                  ],
+                  "ti": [
+                    -2.833,
+                    6.667,
+                    0
+                  ]
+                },
+                {
+                  "t": 478,
+                  "s": [
+                    204,
+                    155,
+                    0
+                  ]
+                }
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "d": 1,
+                  "ty": "el",
+                  "s": {
+                    "a": 1,
+                    "k": [
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 40,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 57,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 69,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 143,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 157,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 270,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 279,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 325,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 334,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 445,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "t": 474,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      }
+                    ],
+                    "ix": 2
+                  },
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 3
+                  },
+                  "nm": "Ellipse Path 1",
+                  "mn": "ADBE Vector Shape - Ellipse",
+                  "hd": false
+                },
+                {
+                  "ty": "st",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.4,
+                      0.615685975318,
+                      0.96470600203,
+                      1
+                    ],
+                    "ix": 3
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 4
+                  },
+                  "w": {
+                    "a": 0,
+                    "k": 7,
+                    "ix": 5
+                  },
+                  "lc": 1,
+                  "lj": 1,
+                  "ml": 4,
+                  "bm": 0,
+                  "nm": "Stroke 1",
+                  "mn": "ADBE Vector Graphic - Stroke",
+                  "hd": true
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.976470588235,
+                      0.670588235294,
+                      0,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Ellipse 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 438,
+          "op": 540,
+          "st": 0,
+          "bm": 0
+        },
+        {
+          "ddd": 0,
+          "ind": 5,
+          "ty": 4,
+          "nm": ".yellow600",
+          "cl": "yellow600",
+          "parent": 1,
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 40,
+                  "s": [
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 49,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 67,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 143,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 157,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 270,
+                  "s": [
+                    85
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 279,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.833
+                    ],
+                    "y": [
+                      0.833
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.167
+                    ],
+                    "y": [
+                      0.167
+                    ]
+                  },
+                  "t": 325,
+                  "s": [
+                    50
+                  ]
+                },
+                {
+                  "t": 334,
+                  "s": [
+                    85
+                  ]
+                }
+              ],
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 114,
+                  "s": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "to": [
+                    -5.333,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    5.333,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 135,
+                  "s": [
+                    -32,
+                    0,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.833,
+                    "y": 0.833
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 298,
+                  "s": [
+                    -32,
+                    0,
+                    0
+                  ],
+                  "to": [
+                    0.5,
+                    1.667,
+                    0
+                  ],
+                  "ti": [
+                    -0.5,
+                    -1.667,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.667,
+                    "y": 0.667
+                  },
+                  "o": {
+                    "x": 0.167,
+                    "y": 0.167
+                  },
+                  "t": 305,
+                  "s": [
+                    -29,
+                    10,
+                    0
+                  ],
+                  "to": [
+                    0,
+                    0,
+                    0
+                  ],
+                  "ti": [
+                    0,
+                    0,
+                    0
+                  ]
+                },
+                {
+                  "i": {
+                    "x": 0.257,
+                    "y": 1
+                  },
+                  "o": {
+                    "x": 0.333,
+                    "y": 0
+                  },
+                  "t": 352,
+                  "s": [
+                    -29,
+                    10,
+                    0
+                  ],
+                  "to": [
+                    -1.667,
+                    1.667,
+                    0
+                  ],
+                  "ti": [
+                    1.667,
+                    -1.667,
+                    0
+                  ]
+                },
+                {
+                  "t": 393,
+                  "s": [
+                    -39,
+                    20,
+                    0
+                  ]
+                }
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "d": 1,
+                  "ty": "el",
+                  "s": {
+                    "a": 1,
+                    "k": [
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 40,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 57,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 69,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 143,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667,
+                            0.667
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333,
+                            0.333
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 157,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0,
+                            0
+                          ]
+                        },
+                        "t": 270,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            0.833,
+                            0.833
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 279,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833,
+                            0.833
+                          ],
+                          "y": [
+                            1,
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167,
+                            0.167
+                          ],
+                          "y": [
+                            0.167,
+                            0.167
+                          ]
+                        },
+                        "t": 325,
+                        "s": [
+                          13,
+                          13
+                        ]
+                      },
+                      {
+                        "t": 334,
+                        "s": [
+                          19,
+                          19
+                        ]
+                      }
+                    ],
+                    "ix": 2
+                  },
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 3
+                  },
+                  "nm": "Ellipse Path 1",
+                  "mn": "ADBE Vector Shape - Ellipse",
+                  "hd": false
+                },
+                {
+                  "ty": "st",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.4,
+                      0.615685975318,
+                      0.96470600203,
+                      1
+                    ],
+                    "ix": 3
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 4
+                  },
+                  "w": {
+                    "a": 0,
+                    "k": 7,
+                    "ix": 5
+                  },
+                  "lc": 1,
+                  "lj": 1,
+                  "ml": 4,
+                  "bm": 0,
+                  "nm": "Stroke 1",
+                  "mn": "ADBE Vector Graphic - Stroke",
+                  "hd": true
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.976470588235,
+                      0.670588235294,
+                      0,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Ellipse 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 438,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    },
+    {
+      "id": "comp_1",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".yellow600",
+          "cl": "yellow600",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          5.251,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.252
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.251,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.252
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.251,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.252
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.251,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.252
+                        ]
+                      ],
+                      "v": [
+                        [
+                          54.68,
+                          -123.622
+                        ],
+                        [
+                          -54.68,
+                          -123.622
+                        ],
+                        [
+                          -64.188,
+                          -114.113
+                        ],
+                        [
+                          -64.188,
+                          114.113
+                        ],
+                        [
+                          -54.68,
+                          123.622
+                        ],
+                        [
+                          54.68,
+                          123.622
+                        ],
+                        [
+                          64.188,
+                          114.113
+                        ],
+                        [
+                          64.188,
+                          -114.113
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ind": 1,
+                  "ty": "sh",
+                  "ix": 2,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -3.038
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          3.037,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          3.038
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -3.037,
+                          0
+                        ]
+                      ],
+                      "o": [
+                        [
+                          3.037,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          3.038
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -3.037,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -3.038
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          54.68,
+                          -119.622
+                        ],
+                        [
+                          60.188,
+                          -114.113
+                        ],
+                        [
+                          60.188,
+                          114.113
+                        ],
+                        [
+                          54.68,
+                          119.622
+                        ],
+                        [
+                          -54.68,
+                          119.622
+                        ],
+                        [
+                          -60.188,
+                          114.113
+                        ],
+                        [
+                          -60.188,
+                          -114.113
+                        ],
+                        [
+                          -54.68,
+                          -119.622
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 2",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "mm",
+                  "mm": 1,
+                  "nm": "Merge Paths 1",
+                  "mn": "ADBE Vector Filter - Merge",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 1,
+                    "k": [
+                      {
+                        "i": {
+                          "x": [
+                            0.667
+                          ],
+                          "y": [
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.167
+                          ],
+                          "y": [
+                            0.197
+                          ]
+                        },
+                        "t": 0,
+                        "s": [
+                          0,
+                          0,
+                          0,
+                          1
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667
+                          ],
+                          "y": [
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333
+                          ],
+                          "y": [
+                            0
+                          ]
+                        },
+                        "t": 23,
+                        "s": [
+                          0.949019607843,
+                          0.6,
+                          0,
+                          1
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.667
+                          ],
+                          "y": [
+                            1
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333
+                          ],
+                          "y": [
+                            0
+                          ]
+                        },
+                        "t": 62,
+                        "s": [
+                          0.976470588235,
+                          0.670588235294,
+                          0,
+                          1
+                        ]
+                      },
+                      {
+                        "i": {
+                          "x": [
+                            0.833
+                          ],
+                          "y": [
+                            1.197
+                          ]
+                        },
+                        "o": {
+                          "x": [
+                            0.333
+                          ],
+                          "y": [
+                            0
+                          ]
+                        },
+                        "t": 460,
+                        "s": [
+                          0.949019607843,
+                          0.6,
+                          0,
+                          1
+                        ]
+                      },
+                      {
+                        "t": 475,
+                        "s": [
+                          0,
+                          0,
+                          0,
+                          1
+                        ]
+                      }
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      206,
+                      150
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 2",
+              "np": 4,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 540,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    },
+    {
+      "id": "comp_2",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".white",
+          "cl": "white",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 1,
+              "k": [
+                {
+                  "i": {
+                    "x": [
+                      0.18,
+                      0.18,
+                      0.667
+                    ],
+                    "y": [
+                      1,
+                      1,
+                      1
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.333,
+                      0.333,
+                      0.333
+                    ],
+                    "y": [
+                      0,
+                      0,
+                      0
+                    ]
+                  },
+                  "t": 76,
+                  "s": [
+                    30,
+                    30,
+                    100
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.667,
+                      0.667,
+                      0.667
+                    ],
+                    "y": [
+                      1,
+                      1,
+                      1
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.333,
+                      0.333,
+                      0.333
+                    ],
+                    "y": [
+                      0,
+                      0,
+                      0
+                    ]
+                  },
+                  "t": 95,
+                  "s": [
+                    119,
+                    119,
+                    100
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.257,
+                      0.257,
+                      0.667
+                    ],
+                    "y": [
+                      1,
+                      1,
+                      1
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.333,
+                      0.333,
+                      0.333
+                    ],
+                    "y": [
+                      0,
+                      0,
+                      0
+                    ]
+                  },
+                  "t": 352,
+                  "s": [
+                    119,
+                    119,
+                    100
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.667,
+                      0.667,
+                      0.667
+                    ],
+                    "y": [
+                      1,
+                      1,
+                      1
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.333,
+                      0.333,
+                      0.333
+                    ],
+                    "y": [
+                      0,
+                      0,
+                      0
+                    ]
+                  },
+                  "t": 393,
+                  "s": [
+                    161,
+                    161,
+                    100
+                  ]
+                },
+                {
+                  "i": {
+                    "x": [
+                      0.667,
+                      0.667,
+                      0.667
+                    ],
+                    "y": [
+                      1,
+                      1,
+                      1
+                    ]
+                  },
+                  "o": {
+                    "x": [
+                      0.735,
+                      0.735,
+                      0.333
+                    ],
+                    "y": [
+                      -0.008,
+                      -0.008,
+                      0
+                    ]
+                  },
+                  "t": 438,
+                  "s": [
+                    161,
+                    161,
+                    100
+                  ]
+                },
+                {
+                  "t": 478,
+                  "s": [
+                    30,
+                    30,
+                    100
+                  ]
+                }
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          13.974,
+                          5.25
+                        ],
+                        [
+                          4.524,
+                          -21.75
+                        ],
+                        [
+                          0.624,
+                          -34.65
+                        ],
+                        [
+                          -0.576,
+                          -34.65
+                        ],
+                        [
+                          -4.476,
+                          -21.75
+                        ],
+                        [
+                          -14.076,
+                          5.25
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ind": 1,
+                  "ty": "sh",
+                  "ix": 2,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          -11.676,
+                          -57.9
+                        ],
+                        [
+                          11.574,
+                          -57.9
+                        ],
+                        [
+                          51.924,
+                          49.5
+                        ],
+                        [
+                          29.574,
+                          49.5
+                        ],
+                        [
+                          20.574,
+                          23.85
+                        ],
+                        [
+                          -20.526,
+                          23.85
+                        ],
+                        [
+                          -29.526,
+                          49.5
+                        ],
+                        [
+                          -51.876,
+                          49.5
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 2",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      1,
+                      1,
+                      1,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 540,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    },
+    {
+      "id": "comp_3",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".grey300",
+          "cl": "grey300",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          64.12,
+                          114.112
+                        ],
+                        [
+                          54.611,
+                          123.622
+                        ],
+                        [
+                          -54.747,
+                          123.622
+                        ],
+                        [
+                          -64.256,
+                          114.112
+                        ],
+                        [
+                          -64.256,
+                          -114.112
+                        ],
+                        [
+                          -54.747,
+                          -123.622
+                        ],
+                        [
+                          54.611,
+                          -123.622
+                        ],
+                        [
+                          64.12,
+                          -114.112
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ind": 1,
+                  "ty": "sh",
+                  "ix": 2,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          6.555
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          6.554,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -1.313
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          1.313,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          68.875,
+                          -52.302
+                        ],
+                        [
+                          68.875,
+                          -61.811
+                        ],
+                        [
+                          66.498,
+                          -64.188
+                        ],
+                        [
+                          66.498,
+                          -114.112
+                        ],
+                        [
+                          54.611,
+                          -126
+                        ],
+                        [
+                          -54.747,
+                          -126
+                        ],
+                        [
+                          -66.634,
+                          -114.112
+                        ],
+                        [
+                          -66.634,
+                          114.112
+                        ],
+                        [
+                          -54.747,
+                          126
+                        ],
+                        [
+                          54.611,
+                          126
+                        ],
+                        [
+                          66.498,
+                          114.112
+                        ],
+                        [
+                          66.498,
+                          -2.378
+                        ],
+                        [
+                          68.875,
+                          -4.755
+                        ],
+                        [
+                          68.875,
+                          -28.528
+                        ],
+                        [
+                          66.498,
+                          -30.906
+                        ],
+                        [
+                          66.498,
+                          -49.924
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 2",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0.854901969433,
+                      0.86274510622,
+                      0.878431379795,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 1",
+              "np": 3,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 607,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    },
+    {
+      "id": "comp_4",
+      "layers": [
+        {
+          "ddd": 0,
+          "ind": 1,
+          "ty": 4,
+          "nm": ".black",
+          "cl": "black",
+          "sr": 1,
+          "ks": {
+            "o": {
+              "a": 0,
+              "k": 100,
+              "ix": 11
+            },
+            "r": {
+              "a": 0,
+              "k": 0,
+              "ix": 10
+            },
+            "p": {
+              "a": 0,
+              "k": [
+                206,
+                150,
+                0
+              ],
+              "ix": 2
+            },
+            "a": {
+              "a": 0,
+              "k": [
+                0,
+                0,
+                0
+              ],
+              "ix": 1
+            },
+            "s": {
+              "a": 0,
+              "k": [
+                100,
+                100,
+                100
+              ],
+              "ix": 6
+            }
+          },
+          "ao": 0,
+          "shapes": [
+            {
+              "ty": "gr",
+              "it": [
+                {
+                  "ind": 0,
+                  "ty": "sh",
+                  "ix": 1,
+                  "ks": {
+                    "a": 0,
+                    "k": {
+                      "i": [
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ]
+                      ],
+                      "o": [
+                        [
+                          0,
+                          5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          -5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          0,
+                          -5.244
+                        ],
+                        [
+                          0,
+                          0
+                        ],
+                        [
+                          5.243,
+                          0
+                        ],
+                        [
+                          0,
+                          0
+                        ]
+                      ],
+                      "v": [
+                        [
+                          64.12,
+                          114.112
+                        ],
+                        [
+                          54.611,
+                          123.622
+                        ],
+                        [
+                          -54.747,
+                          123.622
+                        ],
+                        [
+                          -64.256,
+                          114.112
+                        ],
+                        [
+                          -64.256,
+                          -114.112
+                        ],
+                        [
+                          -54.747,
+                          -123.622
+                        ],
+                        [
+                          54.611,
+                          -123.622
+                        ],
+                        [
+                          64.12,
+                          -114.112
+                        ]
+                      ],
+                      "c": true
+                    },
+                    "ix": 2
+                  },
+                  "nm": "Path 1",
+                  "mn": "ADBE Vector Shape - Group",
+                  "hd": false
+                },
+                {
+                  "ty": "fl",
+                  "c": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0,
+                      0,
+                      1
+                    ],
+                    "ix": 4
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 5
+                  },
+                  "r": 1,
+                  "bm": 0,
+                  "nm": "Fill 1",
+                  "mn": "ADBE Vector Graphic - Fill",
+                  "hd": false
+                },
+                {
+                  "ty": "tr",
+                  "p": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 2
+                  },
+                  "a": {
+                    "a": 0,
+                    "k": [
+                      0,
+                      0
+                    ],
+                    "ix": 1
+                  },
+                  "s": {
+                    "a": 0,
+                    "k": [
+                      100,
+                      100
+                    ],
+                    "ix": 3
+                  },
+                  "r": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 6
+                  },
+                  "o": {
+                    "a": 0,
+                    "k": 100,
+                    "ix": 7
+                  },
+                  "sk": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 4
+                  },
+                  "sa": {
+                    "a": 0,
+                    "k": 0,
+                    "ix": 5
+                  },
+                  "nm": "Transform"
+                }
+              ],
+              "nm": "Group 1",
+              "np": 2,
+              "cix": 2,
+              "bm": 0,
+              "ix": 1,
+              "mn": "ADBE Vector Group",
+              "hd": false
+            }
+          ],
+          "ip": 0,
+          "op": 607,
+          "st": 0,
+          "bm": 0
+        }
+      ]
+    }
+  ],
+  "layers": [
+    {
+      "ddd": 0,
+      "ind": 1,
+      "ty": 3,
+      "nm": "MoveA+Dots 2",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 0,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 1,
+          "k": [
+            {
+              "i": {
+                "x": 0.351,
+                "y": 1
+              },
+              "o": {
+                "x": 0.167,
+                "y": 0.167
+              },
+              "t": 170,
+              "s": [
+                206,
+                150,
+                0
+              ],
+              "to": [
+                4.167,
+                -0.833,
+                0
+              ],
+              "ti": [
+                -4.167,
+                0.833,
+                0
+              ]
+            },
+            {
+              "i": {
+                "x": 0.667,
+                "y": 0.667
+              },
+              "o": {
+                "x": 0.333,
+                "y": 0.333
+              },
+              "t": 207,
+              "s": [
+                231,
+                145,
+                0
+              ],
+              "to": [
+                0,
+                0,
+                0
+              ],
+              "ti": [
+                0,
+                0,
+                0
+              ]
+            },
+            {
+              "i": {
+                "x": 0.423,
+                "y": 1
+              },
+              "o": {
+                "x": 0.488,
+                "y": 0
+              },
+              "t": 214,
+              "s": [
+                231,
+                145,
+                0
+              ],
+              "to": [
+                -0.833,
+                5,
+                0
+              ],
+              "ti": [
+                0.833,
+                -5,
+                0
+              ]
+            },
+            {
+              "i": {
+                "x": 0.667,
+                "y": 0.667
+              },
+              "o": {
+                "x": 0.333,
+                "y": 0.333
+              },
+              "t": 247,
+              "s": [
+                226,
+                175,
+                0
+              ],
+              "to": [
+                0,
+                0,
+                0
+              ],
+              "ti": [
+                0,
+                0,
+                0
+              ]
+            },
+            {
+              "i": {
+                "x": 0.667,
+                "y": 1
+              },
+              "o": {
+                "x": 0.735,
+                "y": 0.034
+              },
+              "t": 438,
+              "s": [
+                226,
+                175,
+                0
+              ],
+              "to": [
+                -3.333,
+                -4.167,
+                0
+              ],
+              "ti": [
+                3.333,
+                4.167,
+                0
+              ]
+            },
+            {
+              "t": 478,
+              "s": [
+                206,
+                150,
+                0
+              ]
+            }
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            0,
+            0,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 2,
+      "ty": 0,
+      "nm": "Dots",
+      "refId": "comp_0",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 3,
+      "ty": 0,
+      "nm": "Outline",
+      "refId": "comp_1",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 4,
+      "ty": 4,
+      "nm": "screenMatte",
+      "td": 1,
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            207.176,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            207.176,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            99.6,
+            99.4,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      5.243,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      5.243
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -5.243,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -5.243
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      5.243
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -5.243,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -5.243
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      5.243,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "v": [
+                    [
+                      63,
+                      114.112
+                    ],
+                    [
+                      53.491,
+                      123.622
+                    ],
+                    [
+                      -55.867,
+                      123.622
+                    ],
+                    [
+                      -65.376,
+                      114.112
+                    ],
+                    [
+                      -65.376,
+                      -114.113
+                    ],
+                    [
+                      -55.867,
+                      -123.622
+                    ],
+                    [
+                      53.491,
+                      -123.622
+                    ],
+                    [
+                      63,
+                      -114.113
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  0,
+                  0,
+                  0,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  207.176,
+                  150
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Group 1",
+          "np": 2,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 5,
+      "ty": 0,
+      "nm": "A",
+      "parent": 1,
+      "tt": 1,
+      "refId": "comp_2",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            0,
+            0,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 6,
+      "ty": 0,
+      "nm": "Phone",
+      "refId": "comp_3",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 7,
+      "ty": 0,
+      "nm": "ScreenBlack",
+      "refId": "comp_4",
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206,
+            150,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "w": 412,
+      "h": 300,
+      "ip": 0,
+      "op": 600,
+      "st": 0,
+      "bm": 0
+    },
+    {
+      "ddd": 0,
+      "ind": 8,
+      "ty": 4,
+      "nm": ".white",
+      "cl": "white",
+      "hd": true,
+      "sr": 1,
+      "ks": {
+        "o": {
+          "a": 0,
+          "k": 100,
+          "ix": 11
+        },
+        "r": {
+          "a": 0,
+          "k": 0,
+          "ix": 10
+        },
+        "p": {
+          "a": 0,
+          "k": [
+            206.106,
+            150.168,
+            0
+          ],
+          "ix": 2
+        },
+        "a": {
+          "a": 0,
+          "k": [
+            206.106,
+            150.168,
+            0
+          ],
+          "ix": 1
+        },
+        "s": {
+          "a": 0,
+          "k": [
+            100,
+            100,
+            100
+          ],
+          "ix": 6
+        }
+      },
+      "ao": 0,
+      "shapes": [
+        {
+          "ty": "gr",
+          "it": [
+            {
+              "ind": 0,
+              "ty": "sh",
+              "ix": 1,
+              "ks": {
+                "a": 0,
+                "k": {
+                  "i": [
+                    [
+                      15.291,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      15.653
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -15.291,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -15.652
+                    ],
+                    [
+                      0,
+                      0
+                    ]
+                  ],
+                  "o": [
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      -15.291,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      -15.652
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      15.185,
+                      0
+                    ],
+                    [
+                      0,
+                      0
+                    ],
+                    [
+                      0,
+                      15.543
+                    ]
+                  ],
+                  "v": [
+                    [
+                      178.285,
+                      150.168
+                    ],
+                    [
+                      -178.073,
+                      150.168
+                    ],
+                    [
+                      -205.894,
+                      121.689
+                    ],
+                    [
+                      -205.894,
+                      -121.354
+                    ],
+                    [
+                      -178.073,
+                      -149.832
+                    ],
+                    [
+                      178.391,
+                      -149.832
+                    ],
+                    [
+                      206.106,
+                      -121.354
+                    ],
+                    [
+                      206.106,
+                      121.799
+                    ]
+                  ],
+                  "c": true
+                },
+                "ix": 2
+              },
+              "nm": "Path 1",
+              "mn": "ADBE Vector Shape - Group",
+              "hd": false
+            },
+            {
+              "ty": "fl",
+              "c": {
+                "a": 0,
+                "k": [
+                  1,
+                  1,
+                  1,
+                  1
+                ],
+                "ix": 4
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 5
+              },
+              "r": 1,
+              "bm": 0,
+              "nm": "Fill 1",
+              "mn": "ADBE Vector Graphic - Fill",
+              "hd": false
+            },
+            {
+              "ty": "tr",
+              "p": {
+                "a": 0,
+                "k": [
+                  206.106,
+                  150.168
+                ],
+                "ix": 2
+              },
+              "a": {
+                "a": 0,
+                "k": [
+                  0,
+                  0
+                ],
+                "ix": 1
+              },
+              "s": {
+                "a": 0,
+                "k": [
+                  100,
+                  100
+                ],
+                "ix": 3
+              },
+              "r": {
+                "a": 0,
+                "k": 0,
+                "ix": 6
+              },
+              "o": {
+                "a": 0,
+                "k": 100,
+                "ix": 7
+              },
+              "sk": {
+                "a": 0,
+                "k": 0,
+                "ix": 4
+              },
+              "sa": {
+                "a": 0,
+                "k": 0,
+                "ix": 5
+              },
+              "nm": "Transform"
+            }
+          ],
+          "nm": "Group 3",
+          "np": 4,
+          "cix": 2,
+          "bm": 0,
+          "ix": 1,
+          "mn": "ADBE Vector Group",
+          "hd": false
+        }
+      ],
+      "ip": 0,
+      "op": 540,
+      "st": 0,
+      "bm": 0
+    }
+  ],
+  "markers": []
+}
\ No newline at end of file
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index f8caff3..f530a1f 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -281,7 +281,6 @@
         <item>Do not verify</item>
         <item>Request certificate status</item>
         <item>Require certificate status</item>
-        <item>Require all non-trusted certificate statuses</item>
     </string-array>
 
     <!-- Wi-Fi AP band settings.  Either 2.4GHz or 5GHz prefer. -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 90708da..60b8cd2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3166,8 +3166,8 @@
     <string name="wallpaper_settings_title">Wallpaper</string>
     <!-- Styles & Wallpapers settings title [CHAR LIMIT=30] -->
     <string name="style_and_wallpaper_settings_title">Wallpaper &amp; style</string>
-    <!-- Summary for the top level Styles & wallpapers Settings [CHAR LIMIT=NONE]-->
-    <string name="wallpaper_dashboard_summary">Colors, themed icons, app grid</string>
+    <!-- Summary for the top level wallpapers settings [CHAR LIMIT=NONE]-->
+    <string name="wallpaper_dashboard_summary">Home, lock screen</string>
     <!-- Wallpaper settings summary when default wallpaper is used [CHAR LIMIT=NONE] -->
     <string name="wallpaper_settings_summary_default">Default</string>
     <!-- Wallpaper settings summary when wallpaper has been updated [CHAR LIMIT=NONE] -->
@@ -11676,7 +11676,7 @@
     <string name="swipe_bottom_to_notifications_summary">Swipe down on the bottom edge of the screen to show your notifications.\nYou can\'t use one-handed mode when this feature is turned on.</string>
 
     <!-- Preference and settings suggestion title text for one handed [CHAR LIMIT=60] -->
-    <string name="one_handed_title">One-Handed mode</string>
+    <string name="one_handed_title">One-handed mode</string>
     <!-- Preference Switch for enabling one handed [CHAR LIMIT=60] -->
     <string name="one_handed_mode_enabled">Use one-handed mode</string>
     <!-- Preference Switch for app taps to exit one handed [CHAR LIMIT=60] -->
@@ -11691,6 +11691,19 @@
     <string name="one_handed_timeout_long">12 seconds</string>
     <!-- Search keywords for "One-Handed" settings [CHAR_LIMIT=NONE] -->
     <string name="keywords_one_handed">reachability</string>
+    <!-- Category title for one handed swipe down [CHAR_LIMIT=60] -->
+    <string name="one_handed_mode_swipe_down_category">Swipe down to</string>
+    <!-- One-handed mode Intro Text [CHAR_LIMIT=NONE] -->
+    <string name="one_handed_mode_intro_text">To use one handed mode, swipe down from the bottom edge of the screen. To use this feature, make sure gesture navigation is turned on in system navigation settings.</string>
+    <!-- One-handed mode pull down screen into reach action title [CHAR_LIMIT=60] -->
+    <string name="one_handed_action_pull_down_screen_title">Pull screen into reach</string>
+    <!-- One-handed mode pull down screen into reach action title [CHAR_LIMIT=NONE] -->
+    <string name="one_handed_action_pull_down_screen_summary">The top of the screen will move into reach of your thumb.</string>
+    <!-- One-handed mode show notification action [CHAR_LIMIT=60] -->
+    <string name="one_handed_action_show_notification_title">Show notifications</string>
+    <!-- One-handed mode show notification action [CHAR_LIMIT=NONE] -->
+    <string name="one_handed_action_show_notification_summary">Notification and settings will appear.</string>
+    <!-- One-handed mode Intro text for gesture navigation [CHAR_LIMIT=NONE] -->
 
     <!-- Summary text for ambient display double tap [CHAR LIMIT=NONE]-->
     <string name="ambient_display_summary">To check time, notifications, and other info, double-tap your screen.</string>
diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index e7e3c2c..8e60648 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -42,7 +42,6 @@
         android:icon="@drawable/ic_add_24dp"
         android:summary="@string/connected_device_add_device_summary"
         android:fragment="com.android.settings.bluetooth.BluetoothPairingDetail"
-        settings:allowDividerAbove="true"
         settings:keywords="@string/keywords_add_bt_device"
         settings:userRestriction="no_config_bluetooth"
         settings:useAdminDisabledSummary="true"
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index 1f4895e..6de9c1a 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -34,13 +34,6 @@
         settings:controller="com.android.settings.gestures.SwipeToNotificationPreferenceController" />
 
     <Preference
-        android:key="gesture_swipe_bottom_to_notification"
-        android:title="@string/swipe_bottom_to_notifications_title"
-        android:fragment="com.android.settings.gestures.SwipeBottomToNotificationSettings"
-        settings:searchable="false"
-        settings:controller="com.android.settings.gestures.SwipeBottomToNotificationPreferenceController" />
-
-    <Preference
         android:key="gesture_double_tap_power_input_summary"
         android:title="@string/double_tap_power_for_camera_title"
         android:fragment="com.android.settings.gestures.DoubleTapPowerSettings"
diff --git a/res/xml/one_handed_settings.xml b/res/xml/one_handed_settings.xml
index b2c7de9..f46b7ea 100644
--- a/res/xml/one_handed_settings.xml
+++ b/res/xml/one_handed_settings.xml
@@ -21,12 +21,6 @@
     android:persistent="false"
     android:title="@string/one_handed_title">
 
-    <com.android.settingslib.widget.MainSwitchPreference
-        android:key="gesture_one_handed_mode_enabled"
-        android:title="@string/one_handed_mode_enabled"
-        settings:keywords="@string/keywords_one_handed"
-        settings:controller="com.android.settings.gestures.OneHandedEnablePreferenceController"/>
-
     <com.android.settingslib.widget.LayoutPreference
         android:key="one_handed_header"
         android:layout="@layout/one_handed_header"
@@ -35,16 +29,31 @@
         settings:allowDividerBelow="false"
         settings:searchable="false"/>
 
-    <SwitchPreference
-        android:key="gesture_app_taps_to_exit"
-        android:title="@string/one_handed_app_taps_to_exit"
-        settings:controller="com.android.settings.gestures.OneHandedAppTapsExitPreferenceController"/>
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="gesture_one_handed_mode_enabled_main_switch"
+        android:title="@string/one_handed_mode_enabled"
+        settings:keywords="@string/keywords_one_handed"
+        settings:controller="com.android.settings.gestures.OneHandedMainSwitchPreferenceController"/>
 
-    <ListPreference
-        android:key="gesture_one_handed_timeout"
-        android:entries="@array/one_handed_timeout_title"
-        android:entryValues="@array/one_handed_timeout_values"
-        android:persistent="false"
-        android:title="@string/one_handed_timeout_title"
-        settings:controller="com.android.settings.gestures.OneHandedTimeoutPreferenceController"/>
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="gesture_one_handed_mode_intro_text"
+        android:title="@string/one_handed_mode_intro_text"/>
+
+    <PreferenceCategory
+        android:key="gesture_one_handed_mode_swipe_down"
+        android:title="@string/one_handed_mode_swipe_down_category">
+
+        <com.android.settingslib.widget.RadioButtonPreference
+            android:key="gesture_one_handed_action_pull_screen_down"
+            android:title="@string/one_handed_action_pull_down_screen_title"
+            android:summary="@string/one_handed_action_pull_down_screen_summary"
+            settings:controller="com.android.settings.gestures.OneHandedActionPullDownPrefController"/>
+
+        <com.android.settingslib.widget.RadioButtonPreference
+            android:key="gesture_one_handed_action_show_notification"
+            android:title="@string/one_handed_action_show_notification_title"
+            android:summary="@string/one_handed_action_show_notification_summary"
+            settings:controller="com.android.settings.gestures.OneHandedActionShowNotificationPrefController"/>
+
+    </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/swipe_bottom_to_notification_settings.xml b/res/xml/swipe_bottom_to_notification_settings.xml
deleted file mode 100644
index 2a75c14..0000000
--- a/res/xml/swipe_bottom_to_notification_settings.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 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.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/swipe_bottom_to_notifications_title">
-
-    <com.android.settingslib.widget.LayoutPreference
-        android:key="one_handed_header"
-        android:layout="@layout/one_handed_header"
-        android:persistent="false"
-        android:selectable="false"
-        settings:allowDividerBelow="false"
-        settings:searchable="false"/>
-
-    <SwitchPreference
-        android:key="gesture_swipe_bottom_to_notification"
-        android:title="@string/swipe_bottom_to_notifications_title"
-        android:summary="@string/swipe_bottom_to_notifications_summary"
-        settings:controller="com.android.settings.gestures.SwipeBottomToNotificationPreferenceController"
-        settings:allowDividerAbove="true" />
-
-</PreferenceScreen>
diff --git a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
index fe08d6b..98090ac 100644
--- a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java
@@ -78,10 +78,12 @@
         // Settings animated image.
         final int animatedImageRes = arguments.getInt(
                 AccessibilitySettings.EXTRA_ANIMATED_IMAGE_RES);
-        mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
-                .authority(mComponentName.getPackageName())
-                .appendPath(String.valueOf(animatedImageRes))
-                .build();
+        if (animatedImageRes > 0) {
+            mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
+                    .authority(mComponentName.getPackageName())
+                    .appendPath(String.valueOf(animatedImageRes))
+                    .build();
+        }
 
         // Settings html description.
         mHtmlDescription = arguments.getCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION);
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 9d94858..9349071 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -396,10 +396,12 @@
         // Settings animated image.
         final int animatedImageRes = arguments.getInt(
                 AccessibilitySettings.EXTRA_ANIMATED_IMAGE_RES);
-        mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
-                .authority(mComponentName.getPackageName())
-                .appendPath(String.valueOf(animatedImageRes))
-                .build();
+        if (animatedImageRes > 0) {
+            mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
+                    .authority(mComponentName.getPackageName())
+                    .appendPath(String.valueOf(animatedImageRes))
+                    .build();
+        }
 
         // Get Accessibility service name.
         mPackageName = getAccessibilityServiceInfo().getResolveInfo().loadLabel(
diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
index 7fd30c6..b41bafd 100644
--- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
@@ -80,7 +80,7 @@
         mHtmlDescription = getText(R.string.accessibility_display_inversion_preference_subtitle);
         mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
                 .authority(getPrefContext().getPackageName())
-                .appendPath(String.valueOf(R.drawable.accessibility_color_inversion_banner))
+                .appendPath(String.valueOf(R.raw.accessibility_color_inversion_banner))
                 .build();
         final List<String> enableServiceFeatureKeys = new ArrayList<>(/* initialCapacity= */ 1);
         enableServiceFeatureKeys.add(ENABLED);
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index ca33a96..9266f72 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -89,7 +89,7 @@
         mPackageName = getString(R.string.accessibility_screen_magnification_title);
         mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
                 .authority(getPrefContext().getPackageName())
-                .appendPath(String.valueOf(R.drawable.accessibility_magnification_banner))
+                .appendPath(String.valueOf(R.raw.accessibility_magnification_banner))
                 .build();
         mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
             removeDialog(DialogEnums.EDIT_SHORTCUT);
diff --git a/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java b/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java
index b4dbf3d..238e937 100644
--- a/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java
+++ b/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java
@@ -17,16 +17,19 @@
 package com.android.settings.accounts;
 
 import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
 
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.widget.FooterPreference;
 
 public class EnterpriseDisclosurePreferenceController extends BasePreferenceController {
-
     private final EnterprisePrivacyFeatureProvider mFeatureProvider;
 
     public EnterpriseDisclosurePreferenceController(Context context, String key) {
@@ -37,6 +40,16 @@
     }
 
     @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final CharSequence disclosure = getDisclosure();
+        if (disclosure == null) {
+            return;
+        }
+        updateFooterPreference(screen, disclosure);
+    }
+
+    @Override
     public int getAvailabilityStatus() {
         if (getDisclosure() == null) {
             return UNSUPPORTED_ON_DEVICE;
@@ -49,12 +62,18 @@
         return mFeatureProvider.getDeviceOwnerDisclosure();
     }
 
-    @Override
-    public void updateState(Preference preference) {
-        final CharSequence disclosure = getDisclosure();
-        if (disclosure == null) {
-            return;
-        }
-        preference.setTitle(disclosure);
+    void updateFooterPreference(PreferenceScreen screen, CharSequence disclosure) {
+        final FooterPreference footerPreference = screen.findPreference(getPreferenceKey());
+        footerPreference.setTitle(disclosure);
+        footerPreference.setLearnMoreAction(view -> {
+            mContext.startActivity(new Intent(Settings.ACTION_ENTERPRISE_PRIVACY_SETTINGS));
+        });
+        final String learnMoreContentDescription = mContext.getString(
+                R.string.footer_learn_more_content_description, getLabelName());
+        footerPreference.setLearnMoreContentDescription(learnMoreContentDescription);
+    }
+
+    private String getLabelName() {
+        return mContext.getString(R.string.header_add_an_account);
     }
 }
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 62513db..7509a78 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -434,7 +434,7 @@
         final Activity activity = getActivity();
         final FrameLayout pinnedHeader = mRootView.findViewById(R.id.pinned_header);
         mSpinnerHeader = activity.getLayoutInflater()
-                .inflate(R.layout.apps_filter_spinner, pinnedHeader, false);
+                .inflate(R.layout.manage_apps_filter_spinner, pinnedHeader, false);
         mFilterSpinner = mSpinnerHeader.findViewById(R.id.filter_spinner);
         mFilterAdapter = new FilterSpinnerAdapter(this);
         mFilterSpinner.setAdapter(mFilterAdapter);
diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
index de85067..580c753 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
@@ -29,6 +29,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
@@ -36,11 +37,12 @@
 import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
+import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
 import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.GlifLayout;
 import com.google.android.setupdesign.span.LinkSpan;
 import com.google.android.setupdesign.template.RequireScrollMixin;
-import com.google.android.setupdesign.template.RequireScrollMixin.OnRequireScrollStateChangedListener;
 import com.google.android.setupdesign.util.DynamicColorPalette;
 
 /**
@@ -183,32 +185,26 @@
             }
         }
 
-        FooterButton primaryButton = getPrimaryFooterButton();
-        FooterButton secondaryButton = getSecondaryFooterButton();
-        if (primaryButton == null) {
-            Log.d(TAG, "getPrimaryFooterButton() was null");
-            return;
-        }
+        final GlifLayout layout = getLayout();
+        mFooterBarMixin = layout.getMixin(FooterBarMixin.class);
+        mFooterBarMixin.setPrimaryButton(getPrimaryFooterButton());
+        mFooterBarMixin.setSecondaryButton(getSecondaryFooterButton(), true /* usePrimaryStyle */);
+        mFooterBarMixin.getSecondaryButton().setVisibility(View.INVISIBLE);
 
-        if (secondaryButton == null) {
-            Log.d(TAG, "getSecondaryFooterButton() was null");
-            return;
-        }
-
-        // Setup scroll mixin
-        final RequireScrollMixin requireScrollMixin = getLayout().getMixin(
-                RequireScrollMixin.class);
-        requireScrollMixin.requireScrollWithButton(this, primaryButton, getScrollCompletedText(),
-                this::onNextButtonClick);
-
-        secondaryButton.setVisibility(View.INVISIBLE);
+        final RequireScrollMixin requireScrollMixin = layout.getMixin(RequireScrollMixin.class);
+        requireScrollMixin.requireScrollWithButton(this, getPrimaryFooterButton(),
+                getMoreButtonTextRes(), this::onNextButtonClick);
         requireScrollMixin.setOnRequireScrollStateChangedListener(
-                new OnRequireScrollStateChangedListener() {
-                    @Override
-                    public void onRequireScrollStateChanged(boolean scrollNeeded) {
-                        if (!scrollNeeded && secondaryButton.getVisibility() == View.INVISIBLE) {
-                            secondaryButton.setVisibility(View.VISIBLE);
-                        }
+                scrollNeeded -> {
+                    // Update text of primary button from "More" to "Agree".
+                    final int primaryButtonTextRes = scrollNeeded
+                            ? getMoreButtonTextRes()
+                            : getAgreeButtonTextRes();
+                    getPrimaryFooterButton().setText(this, primaryButtonTextRes);
+
+                    // Show secondary button once scroll is completed.
+                    if (!scrollNeeded) {
+                        getSecondaryFooterButton().setVisibility(View.VISIBLE);
                     }
                 });
     }
@@ -367,17 +363,15 @@
         return mIconColorFilter;
     }
 
-    @Nullable
-    protected FooterButton getPrimaryFooterButton() {
-        return null;
-    }
+    @NonNull
+    protected abstract FooterButton getPrimaryFooterButton();
 
-    @Nullable
-    protected FooterButton getSecondaryFooterButton() {
-        return null;
-    }
+    @NonNull
+    protected abstract FooterButton getSecondaryFooterButton();
 
-    protected int getScrollCompletedText() {
-        return R.string.security_settings_face_enroll_introduction_more;
-    }
+    @StringRes
+    protected abstract int getAgreeButtonTextRes();
+
+    @StringRes
+    protected abstract int getMoreButtonTextRes();
 }
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index b29e284..8e733b4 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -26,6 +26,10 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollIntroduction;
@@ -34,7 +38,6 @@
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 
-import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
 import com.google.android.setupcompat.util.WizardManagerHelper;
 import com.google.android.setupdesign.span.LinkSpan;
@@ -50,6 +53,8 @@
 
     private FaceManager mFaceManager;
     private FaceFeatureProvider mFaceFeatureProvider;
+    @Nullable private FooterButton mPrimaryFooterButton;
+    @Nullable private FooterButton mSecondaryFooterButton;
 
     @Override
     protected void onCancelButtonClick(View view) {
@@ -207,38 +212,42 @@
     }
 
     @Override
+    @NonNull
     protected FooterButton getPrimaryFooterButton() {
-        if (mFooterBarMixin == null) {
-            mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
-        }
-
-        if (mFooterBarMixin.getPrimaryButton() == null) {
-            final FooterButton nextButtonBuilder = new FooterButton.Builder(this)
+        if (mPrimaryFooterButton == null) {
+            mPrimaryFooterButton = new FooterButton.Builder(this)
                     .setText(R.string.security_settings_face_enroll_introduction_agree)
                     .setButtonType(FooterButton.ButtonType.OPT_IN)
                     .setListener(this::onNextButtonClick)
                     .setTheme(R.style.SudGlifButton_Primary)
                     .build();
-            mFooterBarMixin.setPrimaryButton(nextButtonBuilder);
         }
-        return mFooterBarMixin.getPrimaryButton();
+        return mPrimaryFooterButton;
     }
 
     @Override
+    @NonNull
     protected FooterButton getSecondaryFooterButton() {
-        if (mFooterBarMixin == null) {
-            mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
-        }
-
-        if (mFooterBarMixin.getSecondaryButton() == null) {
-            final FooterButton noThanksButton = new FooterButton.Builder(this)
+        if (mSecondaryFooterButton == null) {
+            mSecondaryFooterButton = new FooterButton.Builder(this)
                     .setText(R.string.security_settings_face_enroll_introduction_no_thanks)
                     .setListener(this::onSkipButtonClick)
                     .setButtonType(FooterButton.ButtonType.NEXT)
                     .setTheme(R.style.SudGlifButton_Primary)
                     .build();
-            mFooterBarMixin.setSecondaryButton(noThanksButton, true /* usePrimaryStyle */);
         }
-        return mFooterBarMixin.getSecondaryButton();
+        return mSecondaryFooterButton;
+    }
+
+    @Override
+    @StringRes
+    protected int getAgreeButtonTextRes() {
+        return R.string.security_settings_fingerprint_enroll_introduction_agree;
+    }
+
+    @Override
+    @StringRes
+    protected int getMoreButtonTextRes() {
+        return R.string.security_settings_face_enroll_introduction_more;
     }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index 8a070ab..5142e21 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -27,6 +27,10 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollIntroduction;
@@ -35,7 +39,6 @@
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 
-import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
 import com.google.android.setupdesign.span.LinkSpan;
 
@@ -46,6 +49,8 @@
     private static final String TAG = "FingerprintIntro";
 
     private FingerprintManager mFingerprintManager;
+    @Nullable private FooterButton mPrimaryFooterButton;
+    @Nullable private FooterButton mSecondaryFooterButton;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -194,43 +199,42 @@
     }
 
     @Override
+    @NonNull
     protected FooterButton getPrimaryFooterButton() {
-        if (mFooterBarMixin == null) {
-            mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
-        }
-
-        if (mFooterBarMixin.getPrimaryButton() == null) {
-            final FooterButton nextButtonBuilder = new FooterButton.Builder(this)
+        if (mPrimaryFooterButton == null) {
+            mPrimaryFooterButton = new FooterButton.Builder(this)
                     .setText(R.string.security_settings_fingerprint_enroll_introduction_agree)
                     .setListener(this::onNextButtonClick)
                     .setButtonType(FooterButton.ButtonType.OPT_IN)
                     .setTheme(R.style.SudGlifButton_Primary)
                     .build();
-            mFooterBarMixin.setPrimaryButton(nextButtonBuilder);
         }
-        return mFooterBarMixin.getPrimaryButton();
+        return mPrimaryFooterButton;
     }
 
     @Override
+    @NonNull
     protected FooterButton getSecondaryFooterButton() {
-        if (mFooterBarMixin == null) {
-            mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
-        }
-
-        if (mFooterBarMixin.getSecondaryButton() == null) {
-            final FooterButton noThanksButton = new FooterButton.Builder(this)
+        if (mSecondaryFooterButton == null) {
+            mSecondaryFooterButton = new FooterButton.Builder(this)
                     .setText(getNegativeButtonTextId())
                     .setListener(this::onSkipButtonClick)
                     .setButtonType(FooterButton.ButtonType.NEXT)
                     .setTheme(R.style.SudGlifButton_Primary)
                     .build();
-            mFooterBarMixin.setSecondaryButton(noThanksButton, true /* usePrimaryStyle */);
         }
-        return mFooterBarMixin.getSecondaryButton();
+        return mSecondaryFooterButton;
     }
 
     @Override
-    protected int getScrollCompletedText() {
+    @StringRes
+    protected int getAgreeButtonTextRes() {
+        return R.string.security_settings_fingerprint_enroll_introduction_agree;
+    }
+
+    @Override
+    @StringRes
+    protected int getMoreButtonTextRes() {
         return R.string.security_settings_face_enroll_introduction_more;
     }
 }
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 0de86f5..a03a4f9 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -360,6 +360,11 @@
         // Icon provided by the content provider overrides any static icon.
         if (tile.getMetaData() != null
                 && tile.getMetaData().containsKey(META_DATA_PREFERENCE_ICON_URI)) {
+            // Set a transparent color before starting to fetch the real icon, this is necessary
+            // to avoid preference padding change.
+            setPreferenceIcon(preference, tile, forceRoundedIcon, mContext.getPackageName(),
+                    Icon.createWithResource(mContext, android.R.color.transparent));
+
             ThreadUtils.postOnBackgroundThread(() -> {
                 final Intent intent = tile.getIntent();
                 String packageName = null;
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index f461fe1..7d722fc 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -100,9 +100,6 @@
         } else {
             disclosure.append(mResources.getString(R.string.do_disclosure_generic));
         }
-        disclosure.append(mResources.getString(R.string.do_disclosure_learn_more_separator));
-        disclosure.append(mResources.getString(R.string.learn_more),
-                new EnterprisePrivacySpan(mContext), 0);
         return disclosure;
     }
 
diff --git a/src/com/android/settings/gestures/OneHandedActionPullDownPrefController.java b/src/com/android/settings/gestures/OneHandedActionPullDownPrefController.java
new file mode 100644
index 0000000..84ea8b6
--- /dev/null
+++ b/src/com/android/settings/gestures/OneHandedActionPullDownPrefController.java
@@ -0,0 +1,101 @@
+/*
+ * 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.settings.gestures;
+
+import android.content.Context;
+import android.net.Uri;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.widget.RadioButtonPreference;
+
+/**
+ * The controller to handle one-handed mode pull screen into reach preference.
+ **/
+public class OneHandedActionPullDownPrefController extends BasePreferenceController
+        implements OneHandedSettingsUtils.TogglesCallback, LifecycleObserver, OnStart, OnStop {
+
+    private final OneHandedSettingsUtils mUtils;
+
+    private Preference mPreference;
+
+    public OneHandedActionPullDownPrefController(Context context, String key) {
+        super(context, key);
+        mUtils = new OneHandedSettingsUtils(context);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        if (preference instanceof RadioButtonPreference) {
+            ((RadioButtonPreference) preference).setChecked(
+                    !OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext));
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return  (OneHandedSettingsUtils.isSupportOneHandedMode()
+                && OneHandedSettingsUtils.canEnableController(mContext))
+                ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!getPreferenceKey().equals(preference.getKey())) {
+            return false;
+        }
+        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, false);
+        if (preference instanceof RadioButtonPreference) {
+            ((RadioButtonPreference) preference).setChecked(true);
+        }
+        return true;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void onStart() {
+        mUtils.registerToggleAwareObserver(this);
+    }
+
+    @Override
+    public void onStop() {
+        mUtils.unregisterToggleAwareObserver();
+    }
+
+    @Override
+    public void onChange(Uri uri) {
+        if (mPreference == null) {
+            return;
+        }
+        if (uri.equals(OneHandedSettingsUtils.ONE_HANDED_MODE_ENABLED_URI)) {
+            mPreference.setEnabled(OneHandedSettingsUtils.canEnableController(mContext));
+        } else if (uri.equals(OneHandedSettingsUtils.SHOW_NOTIFICATION_ENABLED_URI)) {
+            updateState(mPreference);
+        }
+    }
+}
diff --git a/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefController.java b/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefController.java
new file mode 100644
index 0000000..5644299
--- /dev/null
+++ b/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefController.java
@@ -0,0 +1,101 @@
+/*
+ * 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.settings.gestures;
+
+import android.content.Context;
+import android.net.Uri;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.widget.RadioButtonPreference;
+
+/**
+ * The controller to handle one-handed mode show notification preference.
+ **/
+public class OneHandedActionShowNotificationPrefController extends BasePreferenceController
+        implements OneHandedSettingsUtils.TogglesCallback, LifecycleObserver, OnStart, OnStop {
+
+    private final OneHandedSettingsUtils mUtils;
+
+    private Preference mPreference;
+
+    public OneHandedActionShowNotificationPrefController(Context context, String key) {
+        super(context, key);
+        mUtils = new OneHandedSettingsUtils(context);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        if (preference instanceof RadioButtonPreference) {
+            ((RadioButtonPreference) preference).setChecked(
+                    OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext));
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return  (OneHandedSettingsUtils.isSupportOneHandedMode()
+                && OneHandedSettingsUtils.canEnableController(mContext))
+                ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!getPreferenceKey().equals(preference.getKey())) {
+            return false;
+        }
+        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, true);
+        if (preference instanceof RadioButtonPreference) {
+            ((RadioButtonPreference) preference).setChecked(true);
+        }
+        return true;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void onStart() {
+        mUtils.registerToggleAwareObserver(this);
+    }
+
+    @Override
+    public void onStop() {
+        mUtils.unregisterToggleAwareObserver();
+    }
+
+    @Override
+    public void onChange(Uri uri) {
+        if (mPreference == null) {
+            return;
+        }
+        if (uri.equals(OneHandedSettingsUtils.ONE_HANDED_MODE_ENABLED_URI)) {
+            mPreference.setEnabled(OneHandedSettingsUtils.canEnableController(mContext));
+        } else if (uri.equals(OneHandedSettingsUtils.SHOW_NOTIFICATION_ENABLED_URI)) {
+            updateState(mPreference);
+        }
+    }
+}
diff --git a/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java b/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java
deleted file mode 100644
index 1cc7911..0000000
--- a/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import android.content.Context;
-import android.net.Uri;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.TogglePreferenceController;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
-
-/**
- * The Controller to handle app taps to exit of one-handed mode
- */
-public class OneHandedAppTapsExitPreferenceController extends TogglePreferenceController implements
-        LifecycleObserver, OnStart, OnStop, OneHandedSettingsUtils.TogglesCallback {
-
-    private final OneHandedSettingsUtils mUtils;
-
-    private Preference mPreference;
-
-    public OneHandedAppTapsExitPreferenceController(Context context, String key) {
-        super(context, key);
-
-        mUtils = new OneHandedSettingsUtils(context);
-
-        // By default, app taps to stop one-handed is enabled, this will get default value once.
-        OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, isChecked());
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)
-                ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-
-        final int availabilityStatus = getAvailabilityStatus();
-        preference.setEnabled(
-                availabilityStatus == AVAILABLE || availabilityStatus == AVAILABLE_UNSEARCHABLE);
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, isChecked);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return OneHandedSettingsUtils.isTapsAppToExitEnabled(mContext);
-    }
-
-    @Override
-    public void onStart() {
-        mUtils.registerToggleAwareObserver(this);
-    }
-
-    @Override
-    public void onStop() {
-        mUtils.unregisterToggleAwareObserver();
-    }
-
-    @Override
-    public void onChange(Uri uri) {
-        updateState(mPreference);
-    }
-}
diff --git a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
index 1e9c240..e388585 100644
--- a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
+++ b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
@@ -19,38 +19,25 @@
 import android.content.Context;
 
 import com.android.settings.R;
-import com.android.settings.widget.SettingsMainSwitchPreferenceController;
+import com.android.settings.core.BasePreferenceController;
 
 /**
  * The controller to handle one-handed mode enable or disable state.
  **/
-public class OneHandedEnablePreferenceController extends SettingsMainSwitchPreferenceController {
+public class OneHandedEnablePreferenceController extends BasePreferenceController {
 
-    public OneHandedEnablePreferenceController(Context context, String key) {
-        super(context, key);
+    public OneHandedEnablePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
     }
 
-    @Override
     public int getAvailabilityStatus() {
-        return OneHandedSettingsUtils.isFeatureAvailable(mContext)
-                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, isChecked);
-        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, !isChecked);
-        return true;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return OneHandedSettingsUtils.isOneHandedModeEnabled(mContext);
+        return OneHandedSettingsUtils.isSupportOneHandedMode() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
     public CharSequence getSummary() {
         return mContext.getText(
-                isChecked() ? R.string.gesture_setting_on : R.string.gesture_setting_off);
+                OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)
+                        ? R.string.gesture_setting_on : R.string.gesture_setting_off);
     }
 }
diff --git a/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java
new file mode 100644
index 0000000..043588e
--- /dev/null
+++ b/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceController.java
@@ -0,0 +1,56 @@
+/*
+ * 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.settings.gestures;
+
+import android.content.Context;
+
+import com.android.settings.widget.SettingsMainSwitchPreferenceController;
+
+/**
+ * The controller to handle one-handed mode main switch enable or disable state.
+ **/
+public class OneHandedMainSwitchPreferenceController extends
+        SettingsMainSwitchPreferenceController {
+
+    public OneHandedMainSwitchPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return (OneHandedSettingsUtils.isSupportOneHandedMode()
+                && OneHandedSettingsUtils.getNavigationBarMode(mContext) != 0 /* 3-button mode */)
+                ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return OneHandedSettingsUtils.isOneHandedModeEnabled(mContext);
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        if (isChecked) {
+            // Set default value for TapsAppToExit and Timeout
+            OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, true);
+            OneHandedSettingsUtils.setTimeoutValue(mContext,
+                    OneHandedSettingsUtils.OneHandedTimeout.MEDIUM.getValue());
+        }
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, isChecked);
+        return true;
+    }
+}
diff --git a/src/com/android/settings/gestures/OneHandedSettingsUtils.java b/src/com/android/settings/gestures/OneHandedSettingsUtils.java
index 21998a6..a931129 100644
--- a/src/com/android/settings/gestures/OneHandedSettingsUtils.java
+++ b/src/com/android/settings/gestures/OneHandedSettingsUtils.java
@@ -26,6 +26,8 @@
 import android.os.UserHandle;
 import android.provider.Settings;
 
+import androidx.annotation.VisibleForTesting;
+
 /**
  * The Util to query one-handed mode settings config
  */
@@ -34,6 +36,10 @@
     static final String SUPPORT_ONE_HANDED_MODE = "ro.support_one_handed_mode";
     static final int OFF = 0;
     static final int ON = 1;
+    static final Uri ONE_HANDED_MODE_ENABLED_URI =
+            Settings.Secure.getUriFor(Settings.Secure.ONE_HANDED_MODE_ENABLED);
+    static final Uri SHOW_NOTIFICATION_ENABLED_URI =
+            Settings.Secure.getUriFor(Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED);
 
     public enum OneHandedTimeout {
         NEVER(0), SHORT(4), MEDIUM(8), LONG(12);
@@ -177,6 +183,21 @@
     }
 
     /**
+     * Set NavigationBar mode flag to Settings provider.
+     * @param context App context
+     * @param value Navigation bar mode:
+     *  0 = 3 button
+     *  1 = 2 button
+     *  2 = fully gestural
+     * @return true if the value was set, false on database errors.
+     */
+    @VisibleForTesting
+    public boolean setNavigationBarMode(Context context, String value) {
+        return Settings.Secure.putStringForUser(context.getContentResolver(),
+                Settings.Secure.NAVIGATION_MODE, value, UserHandle.myUserId());
+    }
+
+    /**
      * Get NavigationBar mode flag from Settings provider.
      * @param context App context
      * @return Navigation bar mode:
@@ -190,12 +211,17 @@
     }
 
     /**
-     *
+     * Check if One-handed mode settings controllers can enabled or disabled.
      * @param context App context
-     * @return Support One-Handed mode feature or not.
+     * @return true if controllers are able to enabled, false otherwise.
+     *
+     * Note: For better UX experience, just disabled controls that let users know to use
+     * this feature, they need to make sure gesture navigation is turned on in system
+     * navigation settings.
      */
-    public static boolean isFeatureAvailable(Context context) {
-        return isSupportOneHandedMode() && getNavigationBarMode(context) != 0;
+    public static boolean canEnableController(Context context) {
+        return (OneHandedSettingsUtils.isOneHandedModeEnabled(context)
+                && OneHandedSettingsUtils.getNavigationBarMode(context) != 0 /* 3-button mode */);
     }
 
     /**
@@ -218,9 +244,6 @@
     private final class SettingsObserver extends ContentObserver {
         private TogglesCallback mCallback;
 
-        private final Uri mOneHandedEnabledAware = Settings.Secure.getUriFor(
-                Settings.Secure.ONE_HANDED_MODE_ENABLED);
-
         SettingsObserver(Handler handler) {
             super(handler);
         }
@@ -231,7 +254,8 @@
 
         public void observe() {
             final ContentResolver resolver = mContext.getContentResolver();
-            resolver.registerContentObserver(mOneHandedEnabledAware, true, this);
+            resolver.registerContentObserver(ONE_HANDED_MODE_ENABLED_URI, true, this);
+            resolver.registerContentObserver(SHOW_NOTIFICATION_ENABLED_URI, true, this);
         }
 
         @Override
diff --git a/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java b/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java
deleted file mode 100644
index 8ce0e86..0000000
--- a/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import android.content.Context;
-import android.net.Uri;
-
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * The Controller to handle one-handed mode timeout state.
- **/
-public class OneHandedTimeoutPreferenceController extends BasePreferenceController implements
-        Preference.OnPreferenceChangeListener, LifecycleObserver, OnStart, OnStop,
-        OneHandedSettingsUtils.TogglesCallback {
-
-    private final Map<String, String> mTimeoutMap;
-    private final OneHandedSettingsUtils mUtils;
-
-    private Preference mTimeoutPreference;
-
-    public OneHandedTimeoutPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-
-        mTimeoutMap = new HashMap<>();
-        initTimeoutMap();
-        mUtils = new OneHandedSettingsUtils(context);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)
-                ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object object) {
-        if (!(preference instanceof ListPreference)) {
-            return false;
-        }
-        final int newValue = Integer.parseInt((String) object);
-        OneHandedSettingsUtils.setTimeoutValue(mContext, newValue);
-        updateState(preference);
-        return true;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        if (!(preference instanceof ListPreference)) {
-            return;
-        }
-        final ListPreference listPreference = (ListPreference) preference;
-        listPreference.setValue(getTimeoutValue());
-
-        final int availabilityStatus = getAvailabilityStatus();
-        preference.setEnabled(
-                availabilityStatus == AVAILABLE || availabilityStatus == AVAILABLE_UNSEARCHABLE);
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        if (OneHandedSettingsUtils.getTimeoutValue(mContext) == 0) {
-            return mContext.getResources().getString(R.string.screensaver_settings_summary_never);
-        }
-        return String.format(mContext.getResources().getString(
-                R.string.screen_timeout_summary), mTimeoutMap.get(getTimeoutValue()));
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mTimeoutPreference = screen.findPreference(mPreferenceKey);
-    }
-
-    @Override
-    public void onStart() {
-        mUtils.registerToggleAwareObserver(this);
-    }
-
-    @Override
-    public void onStop() {
-        mUtils.unregisterToggleAwareObserver();
-    }
-
-    @Override
-    public void onChange(Uri uri) {
-        updateState(mTimeoutPreference);
-    }
-
-    private String getTimeoutValue() {
-        return String.valueOf(OneHandedSettingsUtils.getTimeoutValue(mContext));
-    }
-
-    private void initTimeoutMap() {
-        if (mTimeoutMap.size() != 0) {
-            return;
-        }
-
-        final String[] timeoutValues = mContext.getResources().getStringArray(
-                R.array.one_handed_timeout_values);
-        final String[] timeoutTitles = mContext.getResources().getStringArray(
-                R.array.one_handed_timeout_title);
-
-        if (timeoutValues.length != timeoutTitles.length) {
-            return;
-        }
-
-        for (int i = 0; i < timeoutValues.length; i++) {
-            mTimeoutMap.put(timeoutValues[i], timeoutTitles[i]);
-        }
-    }
-}
diff --git a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
deleted file mode 100644
index ec81482..0000000
--- a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
-
-/**
- * Handles swipe bottom to expand notification panel gesture.
- **/
-public class SwipeBottomToNotificationPreferenceController extends TogglePreferenceController {
-
-    public SwipeBottomToNotificationPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return OneHandedSettingsUtils.isFeatureAvailable(mContext)
-                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return true;
-    }
-
-    @Override
-    public boolean isPublicSlice() {
-        return true;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        if (isChecked) {
-            OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
-        }
-        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, isChecked);
-        return true;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext);
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        // This toggle preference summary will be updated in gesture preference page since we bound
-        // it with entry preference in gesture.xml
-        return mContext.getText(
-                isChecked() ? R.string.gesture_setting_on : R.string.gesture_setting_off);
-    }
-}
diff --git a/src/com/android/settings/gestures/SwipeBottomToNotificationSettings.java b/src/com/android/settings/gestures/SwipeBottomToNotificationSettings.java
deleted file mode 100644
index 9d85f11..0000000
--- a/src/com/android/settings/gestures/SwipeBottomToNotificationSettings.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-
-/**
- * The Fragment for swipe bottom to notification gesture settings.
- */
-public class SwipeBottomToNotificationSettings extends DashboardFragment {
-
-    private static final String TAG = "SwipeBottomToNotificationSettings";
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.SETTINGS_SWIPE_BOTTOM_TO_NOTIFICATION;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.swipe_bottom_to_notification_settings;
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.swipe_bottom_to_notification_settings) {
-
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    if (!OneHandedSettingsUtils.isSupportOneHandedMode()) {
-                        return false;
-                    }
-                    return !OneHandedSettingsUtils.isOneHandedModeEnabled(context);
-                }
-            };
-}
diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java
index 639bab5..a58e69a 100644
--- a/src/com/android/settings/network/InternetPreferenceController.java
+++ b/src/com/android/settings/network/InternetPreferenceController.java
@@ -65,7 +65,7 @@
     @VisibleForTesting
     static Map<Integer, Integer> sIconMap = new HashMap<>();
     static {
-        sIconMap.put(INTERNET_OFF, R.drawable.ic_no_internet_airplane);
+        sIconMap.put(INTERNET_OFF, R.drawable.ic_no_internet_unavailable);
         sIconMap.put(INTERNET_NETWORKS_AVAILABLE, R.drawable.ic_no_internet_available);
         sIconMap.put(INTERNET_WIFI, R.drawable.ic_wifi_signal_4);
         sIconMap.put(INTERNET_CELLULAR, R.drawable.ic_network_cell);
diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java
index cfaef53..1df77bc 100644
--- a/src/com/android/settings/network/ProviderModelSlice.java
+++ b/src/com/android/settings/network/ProviderModelSlice.java
@@ -20,6 +20,7 @@
 import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
 
 import static com.android.settings.slices.CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI;
+import static com.android.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI;
 
 import android.annotation.ColorInt;
 import android.app.PendingIntent;
@@ -64,7 +65,6 @@
 public class ProviderModelSlice extends WifiSlice {
 
     private static final String TAG = "ProviderModelSlice";
-    protected static final String ACTION_TITLE_CONNECT_TO_CARRIER = "Connect_To_Carrier";
 
     private final ProviderModelSliceHelper mHelper;
 
@@ -89,78 +89,77 @@
     @Override
     public Slice getSlice() {
         // The provider model slice step:
-        // First section:  Add a Wi-Fi item which state is connected.
-        // Second section:  Add a carrier item.
-        // Third section:  Add the Wi-Fi items which are not connected.
-        // Fourth section:  If device has connection problem, this row show the message for user.
-        @InternetUpdater.InternetType int internetType = getInternetType();
+        //  First section: Add the Ethernet item.
+        // Second section: Add the carrier item.
+        //  Third section: Add the Wi-Fi toggle item.
+        // Fourth section: Add the connected Wi-Fi item.
+        //  Fifth section: Add the Wi-Fi items which are not connected.
+        //  Sixth section: Add the See All item.
         final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
-        if (mHelper.isAirplaneModeEnabled() && !mWifiManager.isWifiEnabled()
-                && internetType != InternetUpdater.INTERNET_ETHERNET) {
-            log("Airplane mode is enabled.");
-            return listBuilder.build();
-        }
-
         int maxListSize = 0;
-        List<WifiSliceItem> wifiList = null;
         final NetworkProviderWorker worker = getWorker();
         if (worker != null) {
-            // get Wi-Fi list.
-            wifiList = worker.getResults();
             maxListSize = worker.getApRowCount();
         } else {
             log("network provider worker is null.");
         }
 
-        final boolean hasCarrier = mHelper.hasCarrier();
-        log("hasCarrier: " + hasCarrier);
-
-        // First section:  Add a Ethernet or Wi-Fi item which state is connected.
-        boolean isConnectedWifiAddedTop = false;
-        final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
-        if (internetType == InternetUpdater.INTERNET_ETHERNET) {
+        // First section: Add the Ethernet item.
+        if (getInternetType() == InternetUpdater.INTERNET_ETHERNET) {
             log("get Ethernet item which is connected");
             listBuilder.addRow(createEthernetRow());
             maxListSize--;
-        } else {
-            if (connectedWifiItem != null && internetType == InternetUpdater.INTERNET_WIFI) {
-                log("get Wi-Fi item which is connected to internet");
-                listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
-                isConnectedWifiAddedTop = true;
+        }
+
+        // Second section: Add the carrier item.
+        if (!mHelper.isAirplaneModeEnabled()) {
+            final boolean hasCarrier = mHelper.hasCarrier();
+            log("hasCarrier: " + hasCarrier);
+            if (hasCarrier) {
+                mHelper.updateTelephony();
+                listBuilder.addRow(
+                        mHelper.createCarrierRow(
+                                worker != null ? worker.getNetworkTypeDescription() : ""));
                 maxListSize--;
             }
         }
 
-        // Second section:  Add a carrier item.
-        if (hasCarrier) {
-            mHelper.updateTelephony();
-            listBuilder.addRow(
-                    mHelper.createCarrierRow(
-                            worker != null ? worker.getNetworkTypeDescription() : ""));
-            maxListSize--;
+        // Third section: Add the Wi-Fi toggle item.
+        final boolean isWifiEnabled = mWifiManager.isWifiEnabled();
+        listBuilder.addRow(createWifiToggleRow(mContext, isWifiEnabled));
+        maxListSize--;
+        if (!isWifiEnabled) {
+            log("Wi-Fi is disabled");
+            return listBuilder.build();
+        }
+        List<WifiSliceItem> wifiList = (worker != null) ? worker.getResults() : null;
+        if (wifiList == null || wifiList.size() <= 0) {
+            log("Wi-Fi list is empty");
+            return listBuilder.build();
         }
 
-        // Third section:  Add the connected Wi-Fi item to Wi-Fi list if the Ethernet is connected.
-        if (connectedWifiItem != null && !isConnectedWifiAddedTop) {
+        // Fourth section: Add the connected Wi-Fi item.
+        final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
+        if (connectedWifiItem != null) {
             log("get Wi-Fi item which is connected");
             listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
             maxListSize--;
         }
 
-        // Fourth section:  Add the Wi-Fi items which are not connected.
-        if (wifiList != null && wifiList.size() > 0) {
-            log("get Wi-Fi items which are not connected. Wi-Fi items : " + wifiList.size());
-
-            final List<WifiSliceItem> disconnectedWifiList = wifiList.stream()
-                    .filter(wifiSliceItem -> wifiSliceItem.getConnectedState()
-                            != WifiEntry.CONNECTED_STATE_CONNECTED)
-                    .limit(maxListSize - 1)
-                    .collect(Collectors.toList());
-            for (WifiSliceItem item : disconnectedWifiList) {
-                listBuilder.addRow(getWifiSliceItemRow(item));
-            }
-            listBuilder.addRow(getSeeAllRow());
+        // Fifth section: Add the Wi-Fi items which are not connected.
+        log("get Wi-Fi items which are not connected. Wi-Fi items : " + wifiList.size());
+        final List<WifiSliceItem> disconnectedWifiList = wifiList.stream()
+                .filter(item -> item.getConnectedState() != WifiEntry.CONNECTED_STATE_CONNECTED)
+                .limit(maxListSize - 1)
+                .collect(Collectors.toList());
+        for (WifiSliceItem item : disconnectedWifiList) {
+            listBuilder.addRow(getWifiSliceItemRow(item));
         }
+
+        // Sixth section: Add the See All item.
+        log("add See-All");
+        listBuilder.addRow(getSeeAllRow());
+
         return listBuilder.build();
     }
 
@@ -269,6 +268,26 @@
                 .setSubtitle(mContext.getText(R.string.to_switch_networks_disconnect_ethernet));
     }
 
+    /**
+     * @return a {@link ListBuilder.RowBuilder} of the Wi-Fi toggle.
+     */
+    protected ListBuilder.RowBuilder createWifiToggleRow(Context context, boolean isWifiEnabled) {
+        final Intent intent = new Intent(WIFI_SLICE_URI.toString())
+                .setData(WIFI_SLICE_URI)
+                .setClass(context, SliceBroadcastReceiver.class)
+                .putExtra(EXTRA_TOGGLE_STATE, !isWifiEnabled)
+                // The FLAG_RECEIVER_FOREGROUND flag is necessary to avoid the intent delay of
+                // the first sending after the device restarts
+                .addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+        final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent,
+                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+        final SliceAction toggleSliceAction = SliceAction.createToggle(pendingIntent,
+                null /* actionTitle */, isWifiEnabled);
+        return new ListBuilder.RowBuilder()
+                .setTitle(context.getString(R.string.wifi_settings))
+                .setPrimaryAction(toggleSliceAction);
+    }
+
     protected ListBuilder.RowBuilder getSeeAllRow() {
         final CharSequence title = mContext.getText(R.string.previous_connected_see_all);
         final IconCompat icon = getSeeAllIcon();
@@ -295,31 +314,6 @@
     }
 
     @Override
-    protected ListBuilder.RowBuilder getWifiSliceItemRow(WifiSliceItem wifiSliceItem) {
-        final CharSequence title = wifiSliceItem.getTitle();
-        final IconCompat levelIcon = getWifiSliceItemLevelIcon(wifiSliceItem);
-        final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
-                .setTitleItem(levelIcon, ListBuilder.ICON_IMAGE)
-                .setTitle(title)
-                .setSubtitle(wifiSliceItem.getSummary())
-                .setContentDescription(wifiSliceItem.getContentDescription());
-
-        final IconCompat endIcon;
-        if (wifiSliceItem.hasInternetAccess()) {
-            rowBuilder.setPrimaryAction(SliceAction.create(getBroadcastIntent(mContext),
-                    levelIcon, ListBuilder.ICON_IMAGE, ACTION_TITLE_CONNECT_TO_CARRIER));
-            endIcon = IconCompat.createWithResource(mContext, R.drawable.ic_settings_close);
-        } else {
-            rowBuilder.setPrimaryAction(getWifiEntryAction(wifiSliceItem, levelIcon, title));
-            endIcon = getEndIcon(wifiSliceItem);
-        }
-        if (endIcon != null) {
-            rowBuilder.addEndItem(endIcon, ListBuilder.ICON_IMAGE);
-        }
-        return rowBuilder;
-    }
-
-    @Override
     protected IconCompat getWifiSliceItemLevelIcon(WifiSliceItem wifiSliceItem) {
         if (wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED
                 && getInternetType() != InternetUpdater.INTERNET_WIFI) {
diff --git a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
index d1c9f7b..4f64399 100644
--- a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
@@ -31,6 +31,7 @@
 
 import com.android.settings.R;
 import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.network.ims.WifiCallingQueryImsState;
 
 import java.util.List;
 import java.util.Objects;
@@ -147,16 +148,20 @@
     }
 
     private boolean hasBackupCallingFeature(int subscriptionId) {
-        PersistableBundle carrierConfig = getCarrierConfigForSubId(subscriptionId);
-        Boolean featureEnableStatus = null;
-        if (carrierConfig != null) {
-            featureEnableStatus = carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL, false);
+        return isCrossSimEnabledByPlatform(mContext, subscriptionId);
+    }
+
+    protected boolean isCrossSimEnabledByPlatform(Context context, int subscriptionId) {
+        // TODO : Change into API which created for accessing
+        //        com.android.ims.ImsManager#isCrossSimEnabledByPlatform()
+        if ((new WifiCallingQueryImsState(context, subscriptionId)).isWifiCallingSupported()) {
+            PersistableBundle bundle = getCarrierConfigForSubId(subscriptionId);
+            return (bundle != null) && bundle.getBoolean(
+                    CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
+                    false /*default*/);
         }
-        // TODO: remove log after fixing b/182326102
-        Log.d(LOG_TAG, "config " + CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL
-                + "=" + featureEnableStatus + " for subId=" + subscriptionId);
-        return (featureEnableStatus != null) && featureEnableStatus.booleanValue();
+        Log.d(LOG_TAG, "Not supported by framework. subId = " + subscriptionId);
+        return false;
     }
 
     private ImsMmTelManager getImsMmTelManager(int subId) {
diff --git a/src/com/android/settings/network/telephony/NetworkProviderWorker.java b/src/com/android/settings/network/telephony/NetworkProviderWorker.java
index 369218b..d4f0551 100644
--- a/src/com/android/settings/network/telephony/NetworkProviderWorker.java
+++ b/src/com/android/settings/network/telephony/NetworkProviderWorker.java
@@ -54,7 +54,7 @@
         DataConnectivityListener.Client, InternetUpdater.InternetChangeListener,
         SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
     private static final String TAG = "NetworkProviderWorker";
-    private static final int PROVIDER_MODEL_DEFAULT_EXPANDED_ROW_COUNT = 5;
+    private static final int PROVIDER_MODEL_DEFAULT_EXPANDED_ROW_COUNT = 6;
     private DataContentObserver mMobileDataObserver;
     private SignalStrengthListener mSignalStrengthListener;
     private SubscriptionsChangeListener mSubscriptionsListener;
diff --git a/src/com/android/settings/panel/InternetConnectivityPanel.java b/src/com/android/settings/panel/InternetConnectivityPanel.java
index e6344d8..c735780 100644
--- a/src/com/android/settings/panel/InternetConnectivityPanel.java
+++ b/src/com/android/settings/panel/InternetConnectivityPanel.java
@@ -38,7 +38,6 @@
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.fragment.app.FragmentActivity;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 
@@ -84,12 +83,13 @@
             }
 
             if (TextUtils.equals(intent.getAction(), WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
-                showProgressBar();
+                updateProgressBar();
                 updatePanelTitle();
                 return;
             }
 
             if (TextUtils.equals(intent.getAction(), WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
+                updateProgressBar();
                 updatePanelTitle();
             }
         }
@@ -110,13 +110,40 @@
     private int mDefaultDataSubid = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
     // Wi-Fi scanning progress bar
+    protected HandlerInjector mHandlerInjector;
     protected boolean mIsProgressBarVisible;
-    protected final Runnable mHideProgressBarRunnable = () -> {
+    protected boolean mIsScanningSubTitleShownOnce;
+    protected Runnable mHideProgressBarRunnable = () -> {
         setProgressBarVisible(false);
     };
+    protected Runnable mHideScanningSubTitleRunnable = () -> {
+        mIsScanningSubTitleShownOnce = true;
+        updatePanelTitle();
+    };
+
+    /**
+     * Wrapper for testing compatibility.
+     */
+    @VisibleForTesting
+    static class HandlerInjector {
+        protected final Handler mHandler;
+
+        HandlerInjector(Context context) {
+            mHandler = context.getMainThreadHandler();
+        }
+
+        public void postDelay(Runnable runnable) {
+            mHandler.postDelayed(runnable, 2000 /* delay millis */);
+        }
+
+        public void removeCallbacks(Runnable runnable) {
+            mHandler.removeCallbacks(runnable);
+        }
+    }
 
     private InternetConnectivityPanel(Context context) {
         mContext = context.getApplicationContext();
+        mHandlerInjector = new HandlerInjector(context);
         mIsProviderModelEnabled = Utils.isProviderModelEnabled(mContext);
         mInternetUpdater = new InternetUpdater(context, null /* Lifecycle */, this);
 
@@ -150,7 +177,7 @@
         mTelephonyManager.registerTelephonyCallback(
                 new HandlerExecutor(new Handler(Looper.getMainLooper())), mTelephonyCallback);
         mContext.registerReceiver(mWifiStateReceiver, mWifiStateFilter);
-        showProgressBar();
+        updateProgressBar();
         updatePanelTitle();
     }
 
@@ -165,7 +192,8 @@
         mConnectivityListener.stop();
         mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
         mContext.unregisterReceiver(mWifiStateReceiver);
-        mContext.getMainThreadHandler().removeCallbacks(mHideProgressBarRunnable);
+        mHandlerInjector.removeCallbacks(mHideProgressBarRunnable);
+        mHandlerInjector.removeCallbacks(mHideScanningSubTitleRunnable);
     }
 
     /**
@@ -210,23 +238,6 @@
     }
 
     @Override
-    public boolean isCustomizedButtonUsed() {
-        return mIsProviderModelEnabled;
-    }
-
-    @Override
-    public CharSequence getCustomizedButtonTitle() {
-        return mContext.getText(
-                mInternetUpdater.isWifiEnabled() ? R.string.turn_off_wifi : R.string.turn_on_wifi);
-    }
-
-    @Override
-    public void onClickCustomizedButton(FragmentActivity panelActivity) {
-        // Don't finish the panel activity
-        mWifiManager.setWifiEnabled(!mInternetUpdater.isWifiEnabled());
-    }
-
-    @Override
     public boolean isProgressBarVisible() {
         return mIsProgressBarVisible;
     }
@@ -246,6 +257,7 @@
      */
     @Override
     public void onAirplaneModeChanged(boolean isAirplaneModeOn) {
+        log("onAirplaneModeChanged: isAirplaneModeOn:" + isAirplaneModeOn);
         updatePanelTitle();
     }
 
@@ -254,6 +266,7 @@
      */
     @Override
     public void onWifiEnabledChanged(boolean enabled) {
+        log("onWifiEnabledChanged: enabled:" + enabled);
         updatePanelTitle();
     }
 
@@ -305,13 +318,6 @@
             return;
         }
 
-        if (mIsProgressBarVisible) {
-            // When the Wi-Fi scan result callback is received
-            //   Sub-Title: Searching for networks...
-            mSubtitle = SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS;
-            return;
-        }
-
         if (mInternetUpdater.isAirplaneModeOn()) {
             return;
         }
@@ -319,11 +325,18 @@
         final List<ScanResult> wifiList = mWifiManager.getScanResults();
         if (wifiList != null && wifiList.size() != 0) {
             // When the Wi-Fi scan result is not empty
-            //   Sub-Title: Select the network you want to use for data
+            //   Sub-Title: Tap a network to connect
             mSubtitle = SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT;
             return;
         }
 
+        if (!mIsScanningSubTitleShownOnce && mIsProgressBarVisible) {
+            // When the Wi-Fi scan result callback is received
+            //   Sub-Title: Searching for networks...
+            mSubtitle = SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS;
+            return;
+        }
+
         // Sub-Title:
         // show non_carrier_network_unavailable
         //   - while Wi-Fi on + no Wi-Fi item
@@ -353,7 +366,7 @@
         mSubtitle = SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE;
     }
 
-    protected void showProgressBar() {
+    protected void updateProgressBar() {
         if (mWifiManager == null || !mInternetUpdater.isWifiEnabled()) {
             setProgressBarVisible(false);
             return;
@@ -362,8 +375,9 @@
         setProgressBarVisible(true);
         List<ScanResult> wifiScanResults = mWifiManager.getScanResults();
         if (wifiScanResults != null && wifiScanResults.size() > 0) {
-            mContext.getMainThreadHandler().postDelayed(mHideProgressBarRunnable,
-                    2000 /* delay millis */);
+            mHandlerInjector.postDelay(mHideProgressBarRunnable);
+        } else if (!mIsScanningSubTitleShownOnce) {
+            mHandlerInjector.postDelay(mHideScanningSubTitleRunnable);
         }
     }
 
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 28c4ba1..ca30952 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -20,8 +20,6 @@
 import android.os.Bundle;
 import android.provider.Settings;
 
-import com.android.settings.Utils;
-
 public class PanelFeatureProviderImpl implements PanelFeatureProvider {
 
     @Override
@@ -41,9 +39,6 @@
             case Settings.Panel.ACTION_NFC:
                 return NfcPanel.create(context);
             case Settings.Panel.ACTION_WIFI:
-                if (Utils.isProviderModelEnabled(context)) {
-                    return InternetConnectivityPanel.create(context);
-                }
                 return WifiPanel.create(context);
             case Settings.Panel.ACTION_VOLUME:
                 return VolumePanel.create(context);
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index 7666a36..e4c08e7 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -47,7 +47,6 @@
     private int mUserId;
 
     // Created/Initialized once and retained
-    private PromptInfo mPromptInfo;
     private BiometricPrompt mBiometricPrompt;
     private CancellationSignal mCancellationSignal;
 
@@ -127,7 +126,7 @@
         final Bundle bundle = getArguments();
         final PromptInfo promptInfo = bundle.getParcelable(KEY_PROMPT_INFO);
 
-        final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(getContext())
+        mBiometricPrompt = new BiometricPrompt.Builder(getContext())
                 .setTitle(promptInfo.getTitle())
                 .setUseDefaultTitle() // use default title if title is null/empty
                 .setDeviceCredentialAllowed(true)
@@ -140,13 +139,19 @@
                 .setConfirmationRequired(promptInfo.isConfirmationRequested())
                 .setDisallowBiometricsIfPolicyExists(
                         promptInfo.isDisallowBiometricsIfPolicyExists())
-                .setReceiveSystemEvents(true);
+                .setReceiveSystemEvents(true)
+                .build();
+    }
 
-        mBiometricPrompt = builder.build();
-        mCancellationSignal = new CancellationSignal();
+    @Override
+    public void onResume() {
+        super.onResume();
 
-        mBiometricPrompt.authenticateUser(mCancellationSignal, mClientExecutor,
-                mAuthenticationCallback, mUserId);
+        if (mCancellationSignal == null) {
+            mCancellationSignal = new CancellationSignal();
+            mBiometricPrompt.authenticateUser(mCancellationSignal, mClientExecutor,
+                    mAuthenticationCallback, mUserId);
+        }
     }
 
     @Override
@@ -154,4 +159,3 @@
         return SettingsEnums.BIOMETRIC_FRAGMENT;
     }
 }
-
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index 6241cc9..03e83a4 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -150,17 +150,6 @@
         }
     };
 
-    private String getStringForError(int errorCode) {
-        switch (errorCode) {
-            case BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED:
-                return getString(com.android.internal.R.string.biometric_error_user_canceled);
-            case BiometricConstants.BIOMETRIC_ERROR_CANCELED:
-                return getString(com.android.internal.R.string.biometric_error_canceled);
-            default:
-                return null;
-        }
-    }
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index ced198b..7bf680d 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -63,6 +63,7 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.net.module.util.Inet4AddressUtils;
 import com.android.settings.R;
@@ -513,6 +514,12 @@
 
     @Override
     public void onResume() {
+        // Disable the animation of the EntityHeaderController
+        final RecyclerView recyclerView = mFragment.getListView();
+        if (recyclerView != null) {
+            recyclerView.setItemAnimator(null);
+        }
+
         // Ensure mNetwork is set before any callbacks above are delivered, since our
         // NetworkCallback only looks at changes to mNetwork.
         updateNetworkInfo();
diff --git a/tests/robotests/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceControllerTest.java
index b10a729..8860cfe 100644
--- a/tests/robotests/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceControllerTest.java
@@ -19,20 +19,25 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
 
-import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.FooterPreference;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
@@ -42,13 +47,18 @@
 
     private Context mContext;
     private EnterpriseDisclosurePreferenceController mController;
-    private Preference mPreference;
+    private FooterPreference mPreference;
+
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         mController = spy(new EnterpriseDisclosurePreferenceController(mContext, "my_key"));
-        mPreference = spy(new Preference(mContext));
+        mPreference = spy(new FooterPreference(mContext));
+        when(mPreferenceScreen.findPreference(anyString())).thenReturn(mPreference);
     }
 
     @Test
@@ -68,19 +78,19 @@
     }
 
     @Test
-    public void updateState_hasDisclosure_shouldSetTitle() {
+    public void displayPreference_hasDisclosure_shouldSetTitle() {
         doReturn(TEST_DISCLOSURE).when(mController).getDisclosure();
 
-        mController.updateState(mPreference);
+        mController.displayPreference(mPreferenceScreen);
 
         assertThat(mPreference.getTitle()).isEqualTo(TEST_DISCLOSURE);
     }
 
     @Test
-    public void updateState_noDisclosure_shouldBeInvisible() {
+    public void displayPreference_noDisclosure_shouldBeInvisible() {
         doReturn(null).when(mController).getDisclosure();
 
-        mController.updateState(mPreference);
+        mController.displayPreference(mPreferenceScreen);
 
         verify(mPreference, never()).setTitle(any());
     }
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
new file mode 100644
index 0000000..60398de
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.RadioButtonPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class OneHandedActionPullDownPrefControllerTest {
+
+    private static final String KEY = "gesture_one_handed_action_pull_screen_down";
+
+    private Context mContext;
+    private OneHandedSettingsUtils mUtils;
+    private OneHandedActionPullDownPrefController mController;
+    private RadioButtonPreference mPreference;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mUtils = new OneHandedSettingsUtils(mContext);
+        mController = new OneHandedActionPullDownPrefController(mContext, KEY);
+        mPreference = new RadioButtonPreference(mContext);
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
+    }
+
+    @Test
+    public void updateState_showNotificationEnabled_shouldUnchecked() {
+        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, true);
+
+        mController.updateState(mPreference);
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void updateState_showNotificationDisabled_shouldChecked() {
+        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, false);
+
+        mController.updateState(mPreference);
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void getAvailabilityStatus_setOneHandedModeDisabled_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    public void getAvailabilityStatus_setNavi3ButtonMode_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
+        mUtils.setNavigationBarMode(mContext, "0" /* 3 button */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    public void getAvailabilityStatus_setNaviGesturalMode_shouldEnabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_unsetSupportOneHandedModeProperty_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
new file mode 100644
index 0000000..b56a4f7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.RadioButtonPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class OneHandedActionShowNotificationPrefControllerTest {
+
+    private static final String KEY = "gesture_one_handed_action_show_notification";
+
+    private Context mContext;
+    private OneHandedSettingsUtils mUtils;
+    private OneHandedActionShowNotificationPrefController mController;
+    private RadioButtonPreference mPreference;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mUtils = new OneHandedSettingsUtils(mContext);
+        mController = new OneHandedActionShowNotificationPrefController(mContext, KEY);
+        mPreference = new RadioButtonPreference(mContext);
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
+    }
+
+    @Test
+    public void updateState_setGesturalMode_shouldEnabled() {
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        mController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateState_ShowNotificationEnabled_shouldChecked() {
+        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, true);
+
+        mController.updateState(mPreference);
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void updateState_showNotificationDisabled_shouldUnchecked() {
+        OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, false);
+
+        mController.updateState(mPreference);
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void getAvailabilityStatus_setOneHandedModeDisabled_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    public void getAvailabilityStatus_setNavi3ButtonMode_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
+        mUtils.setNavigationBarMode(mContext, "0" /* 3 button */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    public void getAvailabilityStatus_unsetSupportOneHandedModeProperty_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java
index e5b8688..d0f6485 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java
@@ -21,7 +21,6 @@
 import android.content.Context;
 import android.os.SystemProperties;
 import android.os.UserHandle;
-import android.provider.Settings;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
@@ -48,20 +47,8 @@
     }
 
     @Test
-    public void setChecked_setBoolean_checkIsTrueOrFalse() {
-        mController.setChecked(false);
-        assertThat(OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)).isFalse();
-        assertThat(OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext)).isTrue();
-
-        mController.setChecked(true);
-        assertThat(OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)).isTrue();
-        assertThat(OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext)).isFalse();
-    }
-
-    @Test
     public void getAvailabilityStatus_setSupportOneHandedModeProperty_shouldAvailable() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        setNavigationBarMode(mContext, "2" /* fully gestural */);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
@@ -70,16 +57,6 @@
     @Test
     public void getAvailabilityStatus_unsetSupportOneHandedModeProperty_shouldUnsupported() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
-        setNavigationBarMode(mContext, "2" /* fully gestural */);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_set3ButtonModeProperty_shouldUnsupported() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        setNavigationBarMode(mContext, "0" /* 3-button */);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
@@ -100,18 +77,4 @@
         assertThat(mController.getSummary())
                 .isEqualTo(mContext.getText(R.string.switch_off_text));
     }
-
-    /**
-     * Set NavigationBar mode flag to Settings provider.
-     * @param context App context
-     * @param value Navigation bar mode:
-     *  0 = 3 button
-     *  1 = 2 button
-     *  2 = fully gestural
-     * @return true if the value was set, false on database errors.
-     */
-    private boolean setNavigationBarMode(Context context, String value) {
-        return Settings.Secure.putStringForUser(context.getContentResolver(),
-                Settings.Secure.NAVIGATION_MODE, value, UserHandle.myUserId());
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
new file mode 100644
index 0000000..40cf795
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class OneHandedMainSwitchPreferenceControllerTest {
+
+    private static final String KEY = "gesture_one_handed_mode_enabled_main_switch";
+
+    private Context mContext;
+    private OneHandedSettingsUtils mUtils;
+    private OneHandedMainSwitchPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mUtils = new OneHandedSettingsUtils(mContext);
+        mController = new OneHandedMainSwitchPreferenceController(mContext, KEY);
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
+    }
+
+    @Test
+    public void setChecked_setBoolean_checkIsTrueOrFalse() {
+        mController.setChecked(false);
+        assertThat(OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)).isFalse();
+
+        mController.setChecked(true);
+        assertThat(OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)).isTrue();
+    }
+
+    @Test
+    public void getAvailabilityStatus_setSupportOneHandedModeProperty_shouldAvailable() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_unsetSupportOneHandedModeProperty_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
+        mUtils.setNavigationBarMode(mContext, "2" /* fully gestural */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    public void getAvailabilityStatus_set3ButtonMode_shouldDisabled() {
+        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
+        mUtils.setNavigationBarMode(mContext, "0" /* 3-button mode */);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java
deleted file mode 100644
index d278945..0000000
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.os.UserHandle;
-
-import androidx.preference.ListPreference;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class OneHandedTimeoutPreferenceControllerTest {
-
-    private static final String KEY = "gesture_one_handed_timeout";
-
-    private Context mContext;
-    private OneHandedTimeoutPreferenceController mController;
-    private ListPreference mPreference;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mController = new OneHandedTimeoutPreferenceController(mContext, KEY);
-        mPreference = new ListPreference(mContext);
-        mPreference.setKey(KEY);
-        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
-    }
-
-    @Test
-    public void getAvailabilityStatus_enabledOneHanded_shouldAvailable() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_disableOneHanded_shouldUnavailable() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
-    }
-
-    @Test
-    public void updateState_enableOneHanded_switchShouldEnabled() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void updateState_disableOneHanded_switchShouldDisabled() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void getSummary_setTimeoutNever_shouldReturnNeverSummary() {
-        final String[] timeoutTitles = mContext.getResources().getStringArray(
-                R.array.one_handed_timeout_title);
-
-        OneHandedSettingsUtils.setTimeoutValue(mContext,
-                OneHandedSettingsUtils.OneHandedTimeout.NEVER.getValue());
-
-        assertThat(mController.getSummary()).isEqualTo(
-                timeoutTitles[OneHandedSettingsUtils.OneHandedTimeout.NEVER.ordinal()]);
-    }
-
-    @Test
-    public void getSummary_setTimeoutShort_shouldReturnShortSummary() {
-        final String[] timeoutTitles = mContext.getResources().getStringArray(
-                R.array.one_handed_timeout_title);
-
-        OneHandedSettingsUtils.setTimeoutValue(mContext,
-                OneHandedSettingsUtils.OneHandedTimeout.SHORT.getValue());
-
-        assertThat(mController.getSummary()).isEqualTo(String.format(
-                mContext.getResources().getString(R.string.screen_timeout_summary),
-                timeoutTitles[OneHandedSettingsUtils.OneHandedTimeout.SHORT.ordinal()]));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java
deleted file mode 100644
index 8f50006..0000000
--- a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.provider.Settings;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class SwipeBottomToNotificationPreferenceControllerTest {
-
-    private static final String KEY = "gesture_swipe_bottom_to_notification";
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Context mContext;
-
-    private SwipeBottomToNotificationPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mController = new SwipeBottomToNotificationPreferenceController(mContext, KEY);
-    }
-
-    @Test
-    public void setChecked_toggledOn_enablesSwipeBottomToNotification() {
-        mController.setChecked(true);
-
-        assertThat(OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext)).isTrue();
-        assertThat(OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)).isFalse();
-    }
-
-    @Test
-    public void setChecked_toggledOff_disablesSwipeBottomToNotification() {
-        mController.setChecked(false);
-
-        assertThat(OneHandedSettingsUtils.isSwipeDownNotificationEnabled(mContext)).isFalse();
-    }
-
-    @Test
-    public void getAvailabilityStatus_oneHandedUnsupported_returnsUnsupport() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
-        setNavigationBarMode(mContext, "2" /* fully gestural */);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_oneHandedSupported_returnsAvailable() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        setNavigationBarMode(mContext, "2" /* fully gestural */);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_set3ButtonModeProperty_returnsUnsupport() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        setNavigationBarMode(mContext, "0" /* 3-button */);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
-    }
-
-    @Test
-    public void getSummary_gestureEnabled_returnsOnSummary() {
-        mController.setChecked(true);
-
-        assertThat(mController.getSummary()).isEqualTo(
-                mContext.getText(R.string.gesture_setting_on));
-    }
-
-    @Test
-    public void getSummary_gestureDisabled_returnsOffSummary() {
-        mController.setChecked(false);
-
-        assertThat(mController.getSummary()).isEqualTo(
-                mContext.getText(R.string.gesture_setting_off));
-    }
-
-    @Test
-    public void isChecked_getDefaultConfig_returnFalse() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
-        Settings.Secure.resetToDefaults(mContext.getContentResolver(),
-                Settings.Secure.ONE_HANDED_MODE_ENABLED);
-
-        assertThat(mController.isChecked()).isFalse();
-    }
-
-    /**
-     * Set NavigationBar mode flag to Settings provider.
-     * @param context App context
-     * @param value Navigation bar mode:
-     *  0 = 3 button
-     *  1 = 2 button
-     *  2 = fully gestural
-     * @return true if the value was set, false on database errors.
-     */
-    private boolean setNavigationBarMode(Context context, String value) {
-        return Settings.Secure.putStringForUser(context.getContentResolver(),
-                Settings.Secure.NAVIGATION_MODE, value, UserHandle.myUserId());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java
deleted file mode 100644
index a3c8a1e..0000000
--- a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.os.SystemProperties;
-import android.provider.SearchIndexableResource;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class SwipeBottomToNotificationSettingsTest {
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Context mContext;
-
-    private SwipeBottomToNotificationSettings mSettings = new SwipeBottomToNotificationSettings();
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    public void getPreferenceScreenResId_shouldReturnsXml() {
-        assertThat(mSettings.getPreferenceScreenResId())
-                .isEqualTo(R.xml.swipe_bottom_to_notification_settings);
-    }
-
-    @Test
-    public void searchIndexProvider_shouldIndexResource() {
-        final List<SearchIndexableResource> indexRes =
-                SwipeBottomToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
-                        mContext, true /* enabled */);
-
-        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
-    }
-
-    @Test
-    public void isPageSearchEnabled_oneHandedUnsupported_shouldReturnFalse() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "false");
-
-        final Object obj = ReflectionHelpers.callInstanceMethod(
-                SwipeBottomToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
-                ReflectionHelpers.ClassParameter.from(Context.class, mContext));
-
-        final boolean isEnabled = (Boolean) obj;
-        assertThat(isEnabled).isFalse();
-    }
-
-    @Test
-    public void isPageSearchEnabled_oneHandedDisabled_shouldReturnTrue() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
-
-        final Object obj = ReflectionHelpers.callInstanceMethod(
-                SwipeBottomToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
-                ReflectionHelpers.ClassParameter.from(Context.class, mContext));
-
-        final boolean isEnabled = (Boolean) obj;
-        assertThat(isEnabled).isTrue();
-    }
-
-    @Test
-    public void isPageSearchEnabled_oneHandedEnabled_shouldReturnFalse() {
-        SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
-
-        final Object obj = ReflectionHelpers.callInstanceMethod(
-                SwipeBottomToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
-                ReflectionHelpers.ClassParameter.from(Context.class, mContext));
-
-        final boolean isEnabled = (Boolean) obj;
-        assertThat(isEnabled).isFalse();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java b/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
deleted file mode 100644
index 980ca6e..0000000
--- a/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.os.UserHandle;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.core.TogglePreferenceController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class OneHandedAppTapsExitPreferenceControllerTest {
-
-    private static final String KEY = "gesture_app_taps_to_exit";
-
-    private Context mContext;
-    private SwitchPreference mSwitchPreference;
-    private OneHandedAppTapsExitPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
-        mController = new OneHandedAppTapsExitPreferenceController(mContext, KEY);
-        mSwitchPreference = new SwitchPreference(mContext);
-        mSwitchPreference.setKey(KEY);
-        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
-    }
-
-    @Test
-    public void setChecked_setBoolean_checkIsTrueOrFalse() {
-        mController.setChecked(false);
-        assertThat(mController.isChecked()).isFalse();
-
-        mController.setChecked(true);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void getAvailabilityStatus_enabledOneHanded_shouldAvailable() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(TogglePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_disabledOneHanded_shouldUnavailable() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(TogglePreferenceController.DISABLED_DEPENDENT_SETTING);
-    }
-
-    @Test
-    public void updateState_enableOneHanded_switchShouldEnabled() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
-
-        mController.updateState(mSwitchPreference);
-
-        assertThat(mSwitchPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void updateState_disableOneHanded_switchShouldDisabled() {
-        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
-
-        mController.updateState(mSwitchPreference);
-
-        assertThat(mSwitchPreference.isEnabled()).isFalse();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
index a96e7cf..85129f8 100644
--- a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
+++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.network;
 
-import static com.android.settings.network.ProviderModelSlice.ACTION_TITLE_CONNECT_TO_CARRIER;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -42,6 +40,8 @@
 import android.telephony.TelephonyManager;
 
 import androidx.slice.Slice;
+import androidx.slice.SliceItem;
+import androidx.slice.SliceMetadata;
 import androidx.slice.SliceProvider;
 import androidx.slice.builders.ListBuilder;
 import androidx.slice.builders.SliceAction;
@@ -100,8 +100,6 @@
     ListBuilder.RowBuilder mMockCarrierRowBuild;
     @Mock
     WifiPickerTracker mWifiPickerTracker;
-    @Mock
-    WifiSliceItem mWifiSliceItem;
 
     private FakeFeatureFactory mFeatureFactory;
 
@@ -122,7 +120,7 @@
         when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
         when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
         when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
-
+        when(mWifiManager.isWifiEnabled()).thenReturn(true);
 
         // Set-up specs for SliceMetadata.
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -182,7 +180,24 @@
 
     @Test
     @UiThreadTest
-    public void getSlice_haveTwoWifiAndOneCarrier_getCarrierAndTwoWiFiAndSeeAll() {
+    public void getSlice_airplaneModeIsOn_oneWifiToggle() {
+        mWifiList.clear();
+        mMockNetworkProviderWorker.updateSelfResults(null);
+        mockHelperCondition(true, false, false, null);
+
+        final Slice slice = mMockProviderModelSlice.getSlice();
+
+        assertThat(slice).isNotNull();
+        verify(mListBuilder, times(1)).addRow(any(ListBuilder.RowBuilder.class));
+        final SliceItem sliceTitle =
+                SliceMetadata.from(mContext, slice).getListContent().getHeader().getTitleItem();
+        assertThat(sliceTitle.getText()).isEqualTo(
+                ResourcesUtils.getResourcesString(mContext, "wifi_settings"));
+    }
+
+    @Test
+    @UiThreadTest
+    public void getSlice_haveTwoWifiAndOneCarrier_getFiveRow() {
         mWifiList.clear();
         mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
                 WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
@@ -197,13 +212,13 @@
 
         assertThat(slice).isNotNull();
         verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
-        verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
+        verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
         assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
     }
 
     @Test
     @UiThreadTest
-    public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFourRow() {
+    public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFiveRow() {
         mWifiList.clear();
         mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
                 WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
@@ -220,13 +235,13 @@
         final Slice slice = mMockProviderModelSlice.getSlice();
 
         assertThat(slice).isNotNull();
-        verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
+        verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
         assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
     }
 
     @Test
     @UiThreadTest
-    public void getSlice_haveTwoDisconnectedWifiAndNoCarrier_getThreeRow() {
+    public void getSlice_haveTwoDisconnectedWifiAndNoCarrier_getFourRow() {
         mWifiList.clear();
         mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
                 WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
@@ -240,13 +255,13 @@
         final Slice slice = mMockProviderModelSlice.getSlice();
 
         assertThat(slice).isNotNull();
-        verify(mListBuilder, times(3)).addRow(any(ListBuilder.RowBuilder.class));
+        verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
         assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
     }
 
     @Test
     @UiThreadTest
-    public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getFiveRow() {
+    public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getSixRow() {
         mWifiList.clear();
         mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
                 WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
@@ -264,13 +279,13 @@
         assertThat(slice).isNotNull();
         assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
         verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
-        verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
+        verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
         assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
     }
 
     @Test
     @UiThreadTest
-    public void getSlice_haveEthernetAndCarrierAndConnectedWifiAndDisconnectedWifi_getFiveRow() {
+    public void getSlice_haveEthernetAndCarrierAndConnectedWifiAndDisconnectedWifi_getSixRow() {
         mWifiList.clear();
         mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
                 WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
@@ -288,7 +303,7 @@
         assertThat(slice).isNotNull();
         assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
         verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
-        verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
+        verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
         assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
     }
 
@@ -380,6 +395,11 @@
             return super.getSeeAllRow();
         }
 
+        @Override
+        public ListBuilder.RowBuilder getWifiSliceItemRow(WifiSliceItem wifiSliceItem) {
+            return super.getWifiSliceItemRow(wifiSliceItem);
+        }
+
         public boolean hasCreateEthernetRow() {
             return mHasCreateEthernetRow;
         }
@@ -420,29 +440,4 @@
 
         verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork();
     }
-
-    @Test
-    public void getWifiSliceItemRow_wifiNoInternetAccess_actionConnectToWifiSsid() {
-        when(mWifiSliceItem.getKey()).thenReturn("wifi_key");
-        when(mWifiSliceItem.getTitle()).thenReturn("wifi_ssid");
-        when(mWifiSliceItem.hasInternetAccess()).thenReturn(false);
-
-        ListBuilder.RowBuilder rowBuilder =
-                mMockProviderModelSlice.getWifiSliceItemRow(mWifiSliceItem);
-
-        assertThat(rowBuilder.getPrimaryAction().getTitle())
-                .isEqualTo("wifi_ssid");
-    }
-
-    @Test
-    public void getWifiSliceItemRow_wifiHasInternetAccess_actionConnectToCarrier() {
-        when(mWifiSliceItem.getTitle()).thenReturn("wifi_ssid");
-        when(mWifiSliceItem.hasInternetAccess()).thenReturn(true);
-
-        ListBuilder.RowBuilder rowBuilder =
-                mMockProviderModelSlice.getWifiSliceItemRow(mWifiSliceItem);
-
-        assertThat(rowBuilder.getPrimaryAction().getTitle())
-                .isEqualTo(ACTION_TITLE_CONNECT_TO_CARRIER);
-    }
 }
diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java
index e475e6f..9ad4a37 100644
--- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java
+++ b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java
@@ -18,12 +18,9 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -32,9 +29,7 @@
 import android.net.Uri;
 import android.net.wifi.ScanResult;
 import android.net.wifi.WifiManager;
-import android.os.Handler;
 
-import androidx.fragment.app.FragmentActivity;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
@@ -82,8 +77,6 @@
     @Rule
     public final MockitoRule mMocks = MockitoJUnit.rule();
     @Mock
-    Handler mMainThreadHandler;
-    @Mock
     PanelContentCallback mPanelContentCallback;
     @Mock
     InternetUpdater mInternetUpdater;
@@ -91,17 +84,34 @@
     private WifiManager mWifiManager;
     @Mock
     private ProviderModelSliceHelper mProviderModelSliceHelper;
-    @Mock
-    private FragmentActivity mPanelActivity;
 
     private Context mContext;
+    private FakeHandlerInjector mFakeHandlerInjector;
     private InternetConnectivityPanel mPanel;
 
+    private class FakeHandlerInjector extends InternetConnectivityPanel.HandlerInjector {
+
+        private Runnable mRunnable;
+
+        FakeHandlerInjector(Context context) {
+            super(context);
+        }
+
+        @Override
+        public void postDelay(Runnable runnable) {
+            mRunnable = runnable;
+        }
+
+        public Runnable getRunnable() {
+            return mRunnable;
+        }
+    }
+
     @Before
     public void setUp() {
         mContext = spy(ApplicationProvider.getApplicationContext());
+        mFakeHandlerInjector = new FakeHandlerInjector(mContext);
         when(mContext.getApplicationContext()).thenReturn(mContext);
-        when(mContext.getMainThreadHandler()).thenReturn(mMainThreadHandler);
         when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
 
         mPanel = InternetConnectivityPanel.create(mContext);
@@ -109,6 +119,7 @@
         mPanel.mIsProviderModelEnabled = true;
         mPanel.mInternetUpdater = mInternetUpdater;
         mPanel.mProviderModelSliceHelper = mProviderModelSliceHelper;
+        mPanel.mHandlerInjector = mFakeHandlerInjector;
     }
 
     @Test
@@ -204,20 +215,6 @@
     }
 
     @Test
-    public void getCustomizedButtonTitle_wifiOff_turnOnWifi() {
-        doReturn(false).when(mInternetUpdater).isWifiEnabled();
-
-        assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_TURN_ON_WIFI);
-    }
-
-    @Test
-    public void getCustomizedButtonTitle_wifiOn_turnOffWifi() {
-        doReturn(true).when(mInternetUpdater).isWifiEnabled();
-
-        assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_TURN_OFF_WIFI);
-    }
-
-    @Test
     public void getSlices_providerModelDisabled_containsNecessarySlices() {
         mPanel.mIsProviderModelEnabled = false;
         List<Uri> uris = mPanel.getSlices();
@@ -241,31 +238,6 @@
     }
 
     @Test
-    public void onClickCustomizedButton_wifiOn_setWifiOff() {
-        doReturn(true).when(mInternetUpdater).isWifiEnabled();
-
-        mPanel.onClickCustomizedButton(mPanelActivity);
-
-        verify(mWifiManager).setWifiEnabled(false);
-    }
-
-    @Test
-    public void onClickCustomizedButton_wifiOff_setWifiOn() {
-        doReturn(false).when(mInternetUpdater).isWifiEnabled();
-
-        mPanel.onClickCustomizedButton(mPanelActivity);
-
-        verify(mWifiManager).setWifiEnabled(true);
-    }
-
-    @Test
-    public void onClickCustomizedButton_shouldNotFinishActivity() {
-        mPanel.onClickCustomizedButton(mPanelActivity);
-
-        verify(mPanelActivity, never()).finish();
-    }
-
-    @Test
     public void updatePanelTitle_onHeaderChanged() {
         clearInvocations(mPanelContentCallback);
 
@@ -295,36 +267,41 @@
     }
 
     @Test
-    public void showProgressBar_wifiDisabled_hideProgress() {
+    public void updateProgressBar_wifiDisabled_hideProgress() {
         mPanel.mIsProgressBarVisible = true;
         doReturn(false).when(mInternetUpdater).isWifiEnabled();
         clearInvocations(mPanelContentCallback);
 
-        mPanel.showProgressBar();
+        mPanel.updateProgressBar();
 
         assertThat(mPanel.isProgressBarVisible()).isFalse();
         verify(mPanelContentCallback).onProgressBarVisibleChanged();
     }
 
     @Test
-    public void showProgressBar_noWifiScanResults_showProgressForever() {
+    public void updateProgressBar_noWifiScanResults_showProgressForever() {
+        mPanel.mIsScanningSubTitleShownOnce = false;
         mPanel.mIsProgressBarVisible = false;
         doReturn(true).when(mInternetUpdater).isWifiEnabled();
         List<ScanResult> noWifiScanResults = new ArrayList<>();
         doReturn(noWifiScanResults).when(mWifiManager).getScanResults();
         clearInvocations(mPanelContentCallback);
 
-        mPanel.showProgressBar();
+        mPanel.updateProgressBar();
 
-        assertThat(mPanel.isProgressBarVisible()).isTrue();
+        assertThat(mPanel.mIsProgressBarVisible).isTrue();
         verify(mPanelContentCallback).onProgressBarVisibleChanged();
         verify(mPanelContentCallback).onHeaderChanged();
-        verify(mMainThreadHandler, never())
-                .postDelayed(any() /* mHideProgressBarRunnable */, anyLong());
+
+        assertThat(mFakeHandlerInjector.getRunnable())
+                .isEqualTo(mPanel.mHideScanningSubTitleRunnable);
+        mFakeHandlerInjector.getRunnable().run();
+        assertThat(mPanel.mIsScanningSubTitleShownOnce).isTrue();
+        assertThat(mPanel.mIsProgressBarVisible).isTrue();
     }
 
     @Test
-    public void showProgressBar_hasWifiScanResults_showProgressDelayedHide() {
+    public void updateProgressBar_hasWifiScanResults_showProgressDelayedHide() {
         mPanel.mIsProgressBarVisible = false;
         doReturn(true).when(mInternetUpdater).isWifiEnabled();
         List<ScanResult> hasWifiScanResults = mock(ArrayList.class);
@@ -332,11 +309,15 @@
         doReturn(hasWifiScanResults).when(mWifiManager).getScanResults();
         clearInvocations(mPanelContentCallback);
 
-        mPanel.showProgressBar();
+        mPanel.updateProgressBar();
 
         assertThat(mPanel.isProgressBarVisible()).isTrue();
         verify(mPanelContentCallback).onProgressBarVisibleChanged();
-        verify(mMainThreadHandler).postDelayed(any() /* mHideProgressBarRunnable */, anyLong());
+
+        assertThat(mFakeHandlerInjector.getRunnable())
+                .isEqualTo(mPanel.mHideProgressBarRunnable);
+        mFakeHandlerInjector.getRunnable().run();
+        assertThat(mPanel.mIsProgressBarVisible).isFalse();
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
index 2199023..3b61a73 100644
--- a/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
+++ b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
@@ -27,10 +27,7 @@
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.android.settings.testutils.FeatureFlagUtilsRule;
-
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -39,9 +36,6 @@
 
     private static final String TEST_PACKAGENAME = "com.test.packagename";
 
-    @Rule
-    public final FeatureFlagUtilsRule mFeatureFlagUtilsRule = new FeatureFlagUtilsRule();
-
     private Context mContext;
     private PanelFeatureProviderImpl mProvider;
     private Bundle mBundle;
@@ -71,24 +65,4 @@
 
         assertThat(panel).isInstanceOf(VolumePanel.class);
     }
-
-    @Test
-    public void getPanel_wifi_returnsWifiPanelWhenProviderModelDisable() {
-        mFeatureFlagUtilsRule.setProviderModelEnabled(false);
-        mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_WIFI);
-
-        final PanelContent panel = mProvider.getPanel(mContext, mBundle);
-
-        assertThat(panel).isInstanceOf(WifiPanel.class);
-    }
-
-    @Test
-    public void getPanel_wifi_returnsInternetConnectivityPanelWhenProviderModelDisable() {
-        mFeatureFlagUtilsRule.setProviderModelEnabled(true);
-        mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_WIFI);
-
-        final PanelContent panel = mProvider.getPanel(mContext, mBundle);
-
-        assertThat(panel).isInstanceOf(InternetConnectivityPanel.class);
-    }
 }
diff --git a/tests/unit/src/com/android/settings/testutils/FeatureFlagUtilsRule.java b/tests/unit/src/com/android/settings/testutils/FeatureFlagUtilsRule.java
deleted file mode 100644
index 910073e..0000000
--- a/tests/unit/src/com/android/settings/testutils/FeatureFlagUtilsRule.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2020 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.settings.testutils;
-
-import android.content.Context;
-import android.util.FeatureFlagUtils;
-
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.rules.ExternalResource;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A test rule that is used to automatically recover the FeatureFlagUtils resource after testing.
- *
- * Example:
- * <pre class="code"><code class="java">
- * public class ExampleTest {
- *
- *     &#064;Rule
- *     public final FeatureFlagUtilsRule mFeatureFlagUtilsRule = new FeatureFlagUtilsRule();
- *
- * }
- * </code></pre>
- */
-public class FeatureFlagUtilsRule extends ExternalResource {
-
-    private Context mContext;
-    private Map<String, Boolean> mBackupFeatureFlags = new HashMap<String, Boolean>();
-
-    @Override
-    protected void before() throws Throwable {
-        mContext = ApplicationProvider.getApplicationContext();
-    }
-
-    @Override
-    protected void after() {
-        mBackupFeatureFlags.forEach((k, v) -> FeatureFlagUtils.setEnabled(mContext, k, v));
-    }
-
-    public void setEnabled(String feature, boolean enabled) {
-        if (enabled == FeatureFlagUtils.isEnabled(mContext, feature)) {
-            return;
-        }
-        mBackupFeatureFlags.putIfAbsent(feature, !enabled);
-        FeatureFlagUtils.setEnabled(mContext, feature, enabled);
-    }
-
-    public void setProviderModelEnabled(boolean enabled) {
-        setEnabled(FeatureFlagUtils.SETTINGS_PROVIDER_MODEL, enabled);
-    }
-}