diff --git a/README.md b/README.md
index f0dedf8..2fabcae 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 Modular Client Mod for Discord's Android app.
 
-**Latest supported Discord Android version:** 9.4.8 (948), released on 2019-08-27.
+**Latest supported Discord Android version:** 9.6.3 (963), released on 2019-10-01.
 
 New patch development will be done for the latest supported version.
 
diff --git a/patches/branding/963.patch b/patches/branding/963.patch
new file mode 100644
index 0000000..f070cf3
--- /dev/null
+++ b/patches/branding/963.patch
@@ -0,0 +1,238 @@
+diff -crB com.discord-963-base/AndroidManifest.xml com.discord-963/AndroidManifest.xml
+*** com.discord-963-base/AndroidManifest.xml	2019-10-01 22:10:01.214258768 +0300
+--- com.discord-963/AndroidManifest.xml	2019-10-01 22:40:49.236497113 +0300
+***************
+*** 1,4 ****
+! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="29" android:compileSdkVersionCodename="10" android:installLocation="auto" package="com.discord" platformBuildVersionCode="963" platformBuildVersionName="9.6.3">
+      <uses-feature android:name="android.hardware.camera" android:required="false"/>
+      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
+      <uses-feature android:name="android.hardware.faketouch" android:required="false"/>
+--- 1,4 ----
+! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="29" android:compileSdkVersionCodename="10" android:installLocation="auto" package="com.cutthecord.CTCBRANCH" platformBuildVersionCode="963CTCBUILD" platformBuildVersionName="9.6.3-cutthecord-CTCBUILD">
+      <uses-feature android:name="android.hardware.camera" android:required="false"/>
+      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
+      <uses-feature android:name="android.hardware.faketouch" android:required="false"/>
+***************
+*** 19,29 ****
+      <uses-permission android:name="android.permission.VIBRATE"/>
+      <uses-permission android:name="android.permission.WAKE_LOCK"/>
+      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+!     <permission android:description="@string/app_permission_connect_desc" android:label="@string/app_permission_connect_label" android:name="com.discord.permission.CONNECT" android:protectionLevel="dangerous"/>
+      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+      <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
+      <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
+!     <application android:allowBackup="false" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
+          <activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
+          <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
+          <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
+--- 19,29 ----
+      <uses-permission android:name="android.permission.VIBRATE"/>
+      <uses-permission android:name="android.permission.WAKE_LOCK"/>
+      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+!     <permission android:description="@string/app_permission_connect_desc" android:label="@string/app_permission_connect_label" android:name="com.cutthecord.permission.CONNECT" android:protectionLevel="dangerous"/>
+      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+      <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
+      <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
+!     <application android:allowBackup="true" android:debuggable="true" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:icon="@mipmap/ic_logo_square" android:label="@string/discord" android:largeHeap="true" android:name="com.discord.app.App" android:roundIcon="@mipmap/ic_logo_round" android:supportsRtl="true" android:theme="@style/AppTheme.Dark" android:usesCleartextTraffic="@bool/use_cleartext_traffic">
+          <activity android:name="com.discord.samsung.SamsungConnectActivity" android:theme="@style/AppTheme.Translucent"/>
+          <activity android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Dark" android:windowSoftInputMode="adjustResize|stateHidden"/>
+          <activity android:exported="true" android:launchMode="singleTask" android:name="com.discord.app.AppActivity$Main" android:screenOrientation="fullUser" android:theme="@style/AppTheme.Loading" android:windowSoftInputMode="adjustResize|stateHidden">
+***************
+*** 78,84 ****
+                  <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
+              </intent-filter>
+          </service>
+!         <service android:exported="true" android:name="com.discord.app.DiscordConnectService" android:permission="com.discord.permission.CONNECT">
+              <intent-filter>
+                  <action android:name="com.discord.intent.action.CONNECT"/>
+                  <data android:host="app" android:pathPattern="/connect/.*" android:scheme="discord"/>
+--- 78,84 ----
+                  <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
+              </intent-filter>
+          </service>
+!         <service android:exported="true" android:name="com.discord.app.DiscordConnectService" android:permission="com.cutthecord.permission.CONNECT">
+              <intent-filter>
+                  <action android:name="com.discord.intent.action.CONNECT"/>
+                  <data android:host="app" android:pathPattern="/connect/.*" android:scheme="discord"/>
+***************
+*** 108,121 ****
+          </receiver>
+          <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.analytics.CampaignTrackingService"/>
+          <service android:name="com.discord.utilities.voice.VoiceEngineForegroundService"/>
+!         <provider android:authorities="com.discord.file-provider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
+              <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
+          </provider>
+          <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
+          <meta-data android:name="io.fabric.ApiKey" android:value="eaccfe98b3572a0a8721a8c3b10f9909018f5ec6"/>
+          <meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="AIzaSyD-4L6bgKMixqBRtrG2UktVXK6IexXlsog"/>
+          <activity android:name="com.yalantis.ucrop.UCropActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
+!         <provider android:authorities="com.discord.workmanager-init" android:directBootAware="false" android:exported="false" android:multiprocess="true" android:name="androidx.work.impl.WorkManagerInitializer"/>
+          <service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
+          <service android:directBootAware="false" android:enabled="@bool/enable_system_job_service_default" android:exported="true" android:name="androidx.work.impl.background.systemjob.SystemJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
+          <receiver android:directBootAware="false" android:enabled="true" android:exported="false" android:name="androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver"/>
+--- 108,121 ----
+          </receiver>
+          <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.analytics.CampaignTrackingService"/>
+          <service android:name="com.discord.utilities.voice.VoiceEngineForegroundService"/>
+!         <provider android:authorities="com.cutthecord.CTCBRANCH.file-provider" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider">
+              <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
+          </provider>
+          <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
+          <meta-data android:name="io.fabric.ApiKey" android:value="eaccfe98b3572a0a8721a8c3b10f9909018f5ec6"/>
+          <meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="AIzaSyD-4L6bgKMixqBRtrG2UktVXK6IexXlsog"/>
+          <activity android:name="com.yalantis.ucrop.UCropActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
+!         <provider android:authorities="top.distok.cutthecord.CTCBRANCH.workmanager-init" android:directBootAware="false" android:exported="false" android:multiprocess="true" android:name="androidx.work.impl.WorkManagerInitializer"/>
+          <service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
+          <service android:directBootAware="false" android:enabled="@bool/enable_system_job_service_default" android:exported="true" android:name="androidx.work.impl.background.systemjob.SystemJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
+          <receiver android:directBootAware="false" android:enabled="true" android:exported="false" android:name="androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver"/>
+***************
+*** 178,184 ****
+                  <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
+              </intent-filter>
+          </receiver>
+!         <provider android:authorities="com.discord.firebaseinitprovider" android:exported="false" android:initOrder="100" android:name="com.google.firebase.provider.FirebaseInitProvider"/>
+          <activity android:exported="false" android:name="com.google.android.gms.common.api.GoogleApiActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
+          <receiver android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"/>
+          <receiver android:enabled="true" android:exported="true" android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" android:permission="android.permission.INSTALL_PACKAGES">
+--- 178,184 ----
+                  <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
+              </intent-filter>
+          </receiver>
+!         <provider android:authorities="top.distok.cutthecord.CTCBRANCH.firebaseinitprovider" android:exported="false" android:initOrder="100" android:name="com.google.firebase.provider.FirebaseInitProvider"/>
+          <activity android:exported="false" android:name="com.google.android.gms.common.api.GoogleApiActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
+          <receiver android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"/>
+          <receiver android:enabled="true" android:exported="true" android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" android:permission="android.permission.INSTALL_PACKAGES">
+***************
+*** 189,196 ****
+          <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/>
+          <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
+          <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
+!         <provider android:authorities="com.discord.lifecycle-process" android:exported="false" android:multiprocess="true" android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"/>
+!         <provider android:authorities="com.discord.crashlyticsinitprovider" android:exported="false" android:initOrder="90" android:name="com.crashlytics.android.CrashlyticsInitProvider"/>
+          <meta-data android:name="firebase_crashlytics_ndk_enabled" android:value="true"/>
+          <meta-data android:name="com.android.vending.derived.apk.id" android:value="1"/>
+      </application>
+--- 189,196 ----
+          <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/>
+          <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE"/>
+          <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
+!         <provider android:authorities="top.distok.cutthecord.CTCBRANCH.lifecycle-process" android:exported="false" android:multiprocess="true" android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"/>
+!         <provider android:authorities="top.distok.cutthecord.CTCBRANCH.crashlyticsinitprovider" android:exported="false" android:initOrder="90" android:name="com.crashlytics.android.CrashlyticsInitProvider"/>
+          <meta-data android:name="firebase_crashlytics_ndk_enabled" android:value="true"/>
+          <meta-data android:name="com.android.vending.derived.apk.id" android:value="1"/>
+      </application>
+Only in com.discord-963: AndroidManifest.xml.orig
+Only in com.discord-963: AndroidManifest.xml.rej
+diff -crB com.discord-963-base/apktool.yml com.discord-963/apktool.yml
+*** com.discord-963-base/apktool.yml	2019-10-01 22:09:25.290686590 +0300
+--- com.discord-963/apktool.yml	2019-10-01 22:40:05.296207118 +0300
+***************
+*** 181,185 ****
+    tag: null
+  version: 2.4.1-75e4c6-SNAPSHOT
+  versionInfo:
+!   versionCode: '963'
+!   versionName: 9.6.3
+--- 181,185 ----
+    tag: null
+  version: 2.4.1-75e4c6-SNAPSHOT
+  versionInfo:
+!   versionCode: '963CTCBUILD'
+!   versionName: 9.6.3-cutthecord-CTCBUILD
+diff -crB com.discord-963-base/res/values/strings.xml com.discord-963/res/values/strings.xml
+*** com.discord-963-base/res/values/strings.xml	2019-10-01 22:09:16.950631138 +0300
+--- com.discord-963/res/values/strings.xml	2019-10-01 22:40:05.296207118 +0300
+***************
+*** 1308,1314 ****
+      <string name="disconnect_account_body">Disconnecting your account might remove you from servers you joined via this account.</string>
+      <string name="disconnect_account_title">Disconnect %1$s</string>
+      <string name="disconnect_from_voice">Disconnect from Voice</string>
+!     <string name="discord">Discord</string>
+      <string name="discord_desc_long">Free and secure chat for gamers, works on both your desktop and your phone.</string>
+      <string name="discord_desc_short">Team voice &amp; text chat</string>
+      <string name="discord_gg">discord.gg/</string>
+--- 1308,1314 ----
+      <string name="disconnect_account_body">Disconnecting your account might remove you from servers you joined via this account.</string>
+      <string name="disconnect_account_title">Disconnect %1$s</string>
+      <string name="disconnect_from_voice">Disconnect from Voice</string>
+!     <string name="discord">CTCNAME</string>
+      <string name="discord_desc_long">Free and secure chat for gamers, works on both your desktop and your phone.</string>
+      <string name="discord_desc_short">Team voice &amp; text chat</string>
+      <string name="discord_gg">discord.gg/</string>
+***************
+*** 3185,3191 ****
+      <string name="notification_reply_failed">Failed to reply to %1$s</string>
+      <string name="notification_reply_success">Replied to %1$s</string>
+      <string name="notification_settings">Notification Settings</string>
+!     <string name="notification_title_discord">Discord</string>
+      <string name="notification_title_start_game">"Somebody Playin'"</string>
+      <string name="notification_voice_status_body">Join them: %1$s</string>
+      <string name="notification_voice_status_body_no_status">Join the party!</string>
+--- 3185,3191 ----
+      <string name="notification_reply_failed">Failed to reply to %1$s</string>
+      <string name="notification_reply_success">Replied to %1$s</string>
+      <string name="notification_settings">Notification Settings</string>
+!     <string name="notification_title_discord">CTCNAME</string>
+      <string name="notification_title_start_game">"Somebody Playin'"</string>
+      <string name="notification_voice_status_body">Join them: %1$s</string>
+      <string name="notification_voice_status_body_no_status">Join the party!</string>
+***************
+*** 4366,4372 ****
+      <string name="sub_enabled_servers">Sub Enabled Servers</string>
+      <string name="subscriber_information">Subscriber Information</string>
+      <string name="suggestions">Suggestions</string>
+!     <string name="support">Support</string>
+      <string name="suppress_all_embeds">Remove all embeds</string>
+      <string name="suppressed">Suppressed</string>
+      <string name="suppressed_afk_body">"It seems you've gone AFK on us. We've went ahead and moved you to the AFK channel."</string>
+--- 4366,4372 ----
+      <string name="sub_enabled_servers">Sub Enabled Servers</string>
+      <string name="subscriber_information">Subscriber Information</string>
+      <string name="suggestions">Suggestions</string>
+!     <string name="support">CutTheCord Repo</string>
+      <string name="suppress_all_embeds">Remove all embeds</string>
+      <string name="suppressed">Suppressed</string>
+      <string name="suppressed_afk_body">"It seems you've gone AFK on us. We've went ahead and moved you to the AFK channel."</string>
+Only in com.discord-963/res/values: strings.xml.orig
+diff -crB com.discord-963-base/smali/com/discord/app/e.smali com.discord-963/smali/com/discord/app/e.smali
+*** com.discord-963-base/smali/com/discord/app/e.smali	2019-10-01 22:09:20.530654941 +0300
+--- com.discord-963/smali/com/discord/app/e.smali	2019-10-01 22:40:05.296207118 +0300
+***************
+*** 56,62 ****
+      .line 17
+      sput-object v0, Lcom/discord/app/e;->ul:Ljava/lang/String;
+  
+!     const-string v0, "https://support.discordapp.com"
+  
+      .line 18
+      sput-object v0, Lcom/discord/app/e;->um:Ljava/lang/String;
+--- 56,62 ----
+      .line 17
+      sput-object v0, Lcom/discord/app/e;->ul:Ljava/lang/String;
+  
+!     const-string v0, "https://gitdab.com/distok/cutthecord"
+  
+      .line 18
+      sput-object v0, Lcom/discord/app/e;->um:Ljava/lang/String;
+Only in com.discord-963/smali/com/discord/app: e.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali com.discord-963/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali
+*** com.discord-963-base/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali	2019-10-01 22:09:20.870657202 +0300
+--- com.discord-963/smali/com/discord/utilities/captcha/CaptchaHelper$showCaptchaHelpDialog$$inlined$let$lambda$1.smali	2019-10-01 22:40:05.296207118 +0300
+***************
+*** 77,83 ****
+  
+      new-instance v0, Landroid/content/Intent;
+  
+!     const-string v1, "https://discordapp.com/app"
+  
+      invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
+  
+--- 77,83 ----
+  
+      new-instance v0, Landroid/content/Intent;
+  
+!     const-string v1, "https://gitdab.com/distok/cutthecord/issues/22#issuecomment-82"
+  
+      invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
+  
+
diff --git a/patches/branding/README.md b/patches/branding/README.md
index 4030038..31c0e11 100644
--- a/patches/branding/README.md
+++ b/patches/branding/README.md
@@ -60,4 +60,5 @@ You can use the following line to patch authorities:
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/compact/963.patch b/patches/compact/963.patch
new file mode 100644
index 0000000..5832b9a
--- /dev/null
+++ b/patches/compact/963.patch
@@ -0,0 +1,78 @@
+diff -crB from/res/layout/widget_chat_list_adapter_item_text.xml to/res/layout/widget_chat_list_adapter_item_text.xml
+*** from/res/layout/widget_chat_list_adapter_item_text.xml	2019-10-01 22:09:14.867283952 +0300
+--- to/res/layout/widget_chat_list_adapter_item_text.xml	2019-10-01 22:10:21.921063112 +0300
+***************
+*** 2,12 ****
+  <androidx.constraintlayout.widget.ConstraintLayout android:background="?selectableItemBackground" android:paddingTop="10.0dip" android:paddingRight="@dimen/chat_cell_horizontal_spacing_padding" android:layout_width="fill_parent" android:layout_height="wrap_content"
+    xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
+      <androidx.constraintlayout.widget.Guideline android:id="@id/uikit_chat_guideline" style="@style/UiKit.Chat.Guideline" />
+-     <com.facebook.drawee.view.SimpleDraweeView android:id="@id/chat_list_adapter_item_text_avatar" android:layout_marginLeft="8.0dip" android:importantForAccessibility="no" app:layout_constrainedWidth="true" app:layout_constraintEnd_toEndOf="@id/uikit_chat_guideline" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/uikit_chat_guideline" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/chat_list_adapter_item_text_header" style="@style/Avatar.Chat" />
+      <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/chat_list_adapter_item_text_header" android:layout_width="wrap_content" android:layout_height="0.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toRightOf="@id/uikit_chat_guideline" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@id/uikit_chat_guideline" app:layout_constraintTop_toTopOf="@id/chat_list_adapter_item_text_avatar">
+          <TextView android:textColor="?theme_chat_name" android:id="@id/chat_list_adapter_item_text_name" android:lineSpacingMultiplier="1.0" app:layout_constrainedWidth="true" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" style="@style/UiKit.TextView.Large.SingleLine" />
+          <TextView android:textSize="9.5sp" android:textColor="@color/white" android:id="@id/chat_list_adapter_item_text_bot" android:background="@drawable/drawable_button_purple_neutral" android:paddingLeft="3.0dip" android:paddingTop="0.5dip" android:paddingRight="3.0dip" android:paddingBottom="0.5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:text="BOT" android:singleLine="true" app:layout_constraintBottom_toBottomOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_name" style="@style/UiKit.TextView" />
+          <TextView android:textSize="@dimen/uikit_textsize_small" android:textColor="?theme_chat_timestamp" android:gravity="center_vertical" android:id="@id/chat_list_adapter_item_text_timestamp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:maxWidth="150.0dip" android:singleLine="true" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_bot" style="@style/UiKit.TextView" />
+      </androidx.constraintlayout.widget.ConstraintLayout>
+-     <com.discord.utilities.view.text.LinkifiedTextView android:id="@id/chat_list_adapter_item_text" android:layout_width="0.0dip" android:layout_marginTop="@dimen/uikit_spacing_xsmall" android:layout_marginRight="@dimen/uikit_spacing_small" android:layout_marginBottom="2.0dip" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toRightOf="@id/uikit_chat_guideline" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@id/uikit_chat_guideline" app:layout_constraintTop_toBottomOf="@id/chat_list_adapter_item_text_header" style="@style/UiKit.Chat.Text" />
+  </androidx.constraintlayout.widget.ConstraintLayout>
+\ No newline at end of file
+--- 2,11 ----
+  <androidx.constraintlayout.widget.ConstraintLayout android:background="?selectableItemBackground" android:paddingTop="10.0dip" android:paddingRight="@dimen/chat_cell_horizontal_spacing_padding" android:layout_width="fill_parent" android:layout_height="wrap_content"
+    xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
+      <androidx.constraintlayout.widget.Guideline android:id="@id/uikit_chat_guideline" style="@style/UiKit.Chat.Guideline" />
+      <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/chat_list_adapter_item_text_header" android:layout_width="wrap_content" android:layout_height="0.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toRightOf="@id/uikit_chat_guideline" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@id/uikit_chat_guideline" app:layout_constraintTop_toTopOf="@id/chat_list_adapter_item_text_avatar">
+          <TextView android:textColor="?theme_chat_name" android:id="@id/chat_list_adapter_item_text_name" android:lineSpacingMultiplier="1.0" app:layout_constrainedWidth="true" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" style="@style/UiKit.TextView.Large.SingleLine" />
+          <TextView android:textSize="9.5sp" android:textColor="@color/white" android:id="@id/chat_list_adapter_item_text_bot" android:background="@drawable/drawable_button_purple_neutral" android:paddingLeft="3.0dip" android:paddingTop="0.5dip" android:paddingRight="3.0dip" android:paddingBottom="0.5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:text="BOT" android:singleLine="true" app:layout_constraintBottom_toBottomOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_name" style="@style/UiKit.TextView" />
+          <TextView android:textSize="@dimen/uikit_textsize_small" android:textColor="?theme_chat_timestamp" android:gravity="center_vertical" android:id="@id/chat_list_adapter_item_text_timestamp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:maxWidth="150.0dip" android:singleLine="true" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_bot" style="@style/UiKit.TextView" />
++         <com.discord.utilities.view.text.LinkifiedTextView  android:id="@id/chat_list_adapter_item_text" app:layout_constrainedWidth="true" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:layout_marginStart="6.0dip" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toRightOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintRight_toRightOf="parent" style="@style/UiKit.Chat.Text" />
+      </androidx.constraintlayout.widget.ConstraintLayout>
+  </androidx.constraintlayout.widget.ConstraintLayout>
+\ No newline at end of file
+diff -crB from/res/layout-v17/widget_chat_list_adapter_item_text.xml to/res/layout-v17/widget_chat_list_adapter_item_text.xml
+*** from/res/layout-v17/widget_chat_list_adapter_item_text.xml	2019-10-01 22:09:13.297273514 +0300
+--- to/res/layout-v17/widget_chat_list_adapter_item_text.xml	2019-10-01 22:10:21.921063112 +0300
+***************
+*** 2,12 ****
+  <androidx.constraintlayout.widget.ConstraintLayout android:background="?selectableItemBackground" android:paddingTop="10.0dip" android:paddingRight="@dimen/chat_cell_horizontal_spacing_padding" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingEnd="@dimen/chat_cell_horizontal_spacing_padding"
+    xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
+      <androidx.constraintlayout.widget.Guideline android:id="@id/uikit_chat_guideline" style="@style/UiKit.Chat.Guideline" />
+-     <com.facebook.drawee.view.SimpleDraweeView android:id="@id/chat_list_adapter_item_text_avatar" android:layout_marginLeft="8.0dip" android:importantForAccessibility="no" android:layout_marginStart="8.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toEndOf="@id/uikit_chat_guideline" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/uikit_chat_guideline" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/chat_list_adapter_item_text_header" style="@style/Avatar.Chat" />
+      <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/chat_list_adapter_item_text_header" android:layout_width="wrap_content" android:layout_height="0.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toRightOf="@id/uikit_chat_guideline" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@id/uikit_chat_guideline" app:layout_constraintTop_toTopOf="@id/chat_list_adapter_item_text_avatar">
+          <TextView android:textColor="?theme_chat_name" android:id="@id/chat_list_adapter_item_text_name" android:lineSpacingMultiplier="1.0" app:layout_constrainedWidth="true" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" style="@style/UiKit.TextView.Large.SingleLine" />
+          <TextView android:textSize="9.5sp" android:textColor="@color/white" android:id="@id/chat_list_adapter_item_text_bot" android:background="@drawable/drawable_button_purple_neutral" android:paddingLeft="3.0dip" android:paddingTop="0.5dip" android:paddingRight="3.0dip" android:paddingBottom="0.5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:text="BOT" android:singleLine="true" android:layout_marginStart="6.0dip" app:layout_constraintBottom_toBottomOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_name" style="@style/UiKit.TextView" />
+          <TextView android:textSize="@dimen/uikit_textsize_small" android:textColor="?theme_chat_timestamp" android:gravity="center_vertical" android:id="@id/chat_list_adapter_item_text_timestamp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:maxWidth="150.0dip" android:singleLine="true" android:layout_marginStart="6.0dip" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_bot" style="@style/UiKit.TextView" />
+      </androidx.constraintlayout.widget.ConstraintLayout>
+-     <com.discord.utilities.view.text.LinkifiedTextView android:id="@id/chat_list_adapter_item_text" android:layout_width="0.0dip" android:layout_marginTop="@dimen/uikit_spacing_xsmall" android:layout_marginRight="@dimen/uikit_spacing_small" android:layout_marginBottom="2.0dip" android:layout_marginEnd="@dimen/uikit_spacing_small" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toRightOf="@id/uikit_chat_guideline" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@id/uikit_chat_guideline" app:layout_constraintTop_toBottomOf="@id/chat_list_adapter_item_text_header" style="@style/UiKit.Chat.Text" />
+  </androidx.constraintlayout.widget.ConstraintLayout>
+\ No newline at end of file
+--- 2,11 ----
+  <androidx.constraintlayout.widget.ConstraintLayout android:background="?selectableItemBackground" android:paddingTop="10.0dip" android:paddingRight="@dimen/chat_cell_horizontal_spacing_padding" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingEnd="@dimen/chat_cell_horizontal_spacing_padding"
+    xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
+      <androidx.constraintlayout.widget.Guideline android:id="@id/uikit_chat_guideline" style="@style/UiKit.Chat.Guideline" />
+      <androidx.constraintlayout.widget.ConstraintLayout android:id="@id/chat_list_adapter_item_text_header" android:layout_width="wrap_content" android:layout_height="0.0dip" app:layout_constrainedWidth="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toRightOf="@id/uikit_chat_guideline" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@id/uikit_chat_guideline" app:layout_constraintTop_toTopOf="@id/chat_list_adapter_item_text_avatar">
+          <TextView android:textColor="?theme_chat_name" android:id="@id/chat_list_adapter_item_text_name" android:lineSpacingMultiplier="1.0" app:layout_constrainedWidth="true" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_bot" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" style="@style/UiKit.TextView.Large.SingleLine" />
+          <TextView android:textSize="9.5sp" android:textColor="@color/white" android:id="@id/chat_list_adapter_item_text_bot" android:background="@drawable/drawable_button_purple_neutral" android:paddingLeft="3.0dip" android:paddingTop="0.5dip" android:paddingRight="3.0dip" android:paddingBottom="0.5dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:text="BOT" android:singleLine="true" android:layout_marginStart="6.0dip" app:layout_constraintBottom_toBottomOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toStartOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_name" style="@style/UiKit.TextView" />
+          <TextView android:textSize="@dimen/uikit_textsize_small" android:textColor="?theme_chat_timestamp" android:gravity="center_vertical" android:id="@id/chat_list_adapter_item_text_timestamp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:maxWidth="150.0dip" android:singleLine="true" android:layout_marginStart="6.0dip" app:layout_constraintBaseline_toBaselineOf="@id/chat_list_adapter_item_text_name" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_bot" style="@style/UiKit.TextView" />
++         <com.discord.utilities.view.text.LinkifiedTextView  android:id="@id/chat_list_adapter_item_text" app:layout_constrainedWidth="true" android:layout_marginLeft="6.0dip" android:layout_marginBottom="1.0dip" android:layout_marginStart="6.0dip" app:layout_constraintStart_toEndOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toRightOf="@id/chat_list_adapter_item_text_timestamp" app:layout_constraintRight_toRightOf="parent" style="@style/UiKit.Chat.Text" />
+      </androidx.constraintlayout.widget.ConstraintLayout>
+  </androidx.constraintlayout.widget.ConstraintLayout>
+\ No newline at end of file
+diff -crB from/res/values/dimens.xml to/res/values/dimens.xml
+*** from/res/values/dimens.xml	2019-10-01 22:09:16.847297117 +0300
+--- to/res/values/dimens.xml	2019-10-01 22:10:21.921063112 +0300
+***************
+*** 336,342 ****
+      <dimen name="uikit_btn_padding_vertical">4.0dip</dimen>
+      <dimen name="uikit_btn_stroke_width">1.0dip</dimen>
+      <dimen name="uikit_btn_wrapped_min_width">96.0dip</dimen>
+!     <dimen name="uikit_guideline_chat">58.0dip</dimen>
+      <dimen name="uikit_guideline_item_row">48.0dip</dimen>
+      <dimen name="uikit_guideline_sheet">72.0dip</dimen>
+      <dimen name="uikit_image_border_size">3.0dip</dimen>
+--- 336,342 ----
+      <dimen name="uikit_btn_padding_vertical">4.0dip</dimen>
+      <dimen name="uikit_btn_stroke_width">1.0dip</dimen>
+      <dimen name="uikit_btn_wrapped_min_width">96.0dip</dimen>
+!     <dimen name="uikit_guideline_chat">20.0dip</dimen>
+      <dimen name="uikit_guideline_item_row">48.0dip</dimen>
+      <dimen name="uikit_guideline_sheet">72.0dip</dimen>
+      <dimen name="uikit_image_border_size">3.0dip</dimen>
diff --git a/patches/compact/README.md b/patches/compact/README.md
index 0e0b785..4ed1a9c 100644
--- a/patches/compact/README.md
+++ b/patches/compact/README.md
@@ -44,4 +44,5 @@ This patch, when combined with `smalltime` patch, emulates the "compact"/"irc" t
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/customdefaultemoji/963.patch b/patches/customdefaultemoji/963.patch
new file mode 100644
index 0000000..48aa3bc
--- /dev/null
+++ b/patches/customdefaultemoji/963.patch
@@ -0,0 +1,80 @@
+diff -crB from/smali/com/discord/stores/StoreEmoji.smali to/smali/com/discord/stores/StoreEmoji.smali
+*** from/smali/com/discord/stores/StoreEmoji.smali	2019-10-01 22:09:20.710656138 +0300
+--- to/smali/com/discord/stores/StoreEmoji.smali	2019-10-01 22:10:14.464346867 +0300
+***************
+*** 100,136 ****
+  
+      const/4 v1, 0x0
+  
+!     const-string v2, "thinking"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x1
+  
+!     const-string v2, "ok_hand"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x2
+  
+!     const-string v2, "eyes"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x3
+  
+!     const-string v2, "sweat_drops"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x4
+  
+!     const-string v2, "joy"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x5
+  
+!     const-string v2, "pig"
+  
+      aput-object v2, v0, v1
+  
+--- 100,136 ----
+  
+      const/4 v1, 0x0
+  
+!     const-string v2, "star"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x1
+  
+!     const-string v2, "thinking"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x2
+  
+!     const-string v2, "ok_hand"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x3
+  
+!     const-string v2, "eyes"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x4
+  
+!     const-string v2, "sweat_drops"
+  
+      aput-object v2, v0, v1
+  
+      const/4 v1, 0x5
+  
+!     const-string v2, "joy"
+  
+      aput-object v2, v0, v1
+  
diff --git a/patches/customdefaultemoji/README.md b/patches/customdefaultemoji/README.md
index 824177b..1862c6e 100644
--- a/patches/customdefaultemoji/README.md
+++ b/patches/customdefaultemoji/README.md
@@ -26,4 +26,5 @@ This patch changes default list of custom emojis.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/customtheme/963.patch b/patches/customtheme/963.patch
new file mode 100644
index 0000000..1c5389e
--- /dev/null
+++ b/patches/customtheme/963.patch
@@ -0,0 +1,283 @@
+diff -crB com.discord-963-base/res/values/colors.xml com.discord-963/res/values/colors.xml
+*** com.discord-963-base/res/values/colors.xml	2019-10-01 22:09:17.390634063 +0300
+--- com.discord-963/res/values/colors.xml	2019-10-01 22:16:44.570273981 +0300
+***************
+*** 51,57 ****
+      <color name="cardview_shadow_start_color">#37000000</color>
+      <color name="code">#ff657b83</color>
+      <color name="colorPrimary">#ff333333</color>
+!     <color name="colorPrimaryDark">#ff1d1d1d</color>
+      <color name="color_clicked_darker">#40000000</color>
+      <color name="color_clicked_lighter">#40ffffff</color>
+      <color name="common_google_signin_btn_text_dark_default">@android:color/white</color>
+--- 51,57 ----
+      <color name="cardview_shadow_start_color">#37000000</color>
+      <color name="code">#ff657b83</color>
+      <color name="colorPrimary">#ff333333</color>
+!     <color name="colorPrimaryDark">#ff000000</color>
+      <color name="color_clicked_darker">#40000000</color>
+      <color name="color_clicked_lighter">#40ffffff</color>
+      <color name="common_google_signin_btn_text_dark_default">@android:color/white</color>
+***************
+*** 62,69 ****
+      <color name="common_google_signin_btn_text_light_disabled">#1f000000</color>
+      <color name="common_google_signin_btn_text_light_focused">#90000000</color>
+      <color name="common_google_signin_btn_text_light_pressed">#de000000</color>
+!     <color name="dark_grey_2">#ff36393e</color>
+!     <color name="dark_grey_2_alpha_10">#ff303337</color>
+      <color name="design_bottom_navigation_shadow_color">#14000000</color>
+      <color name="design_default_color_primary">#ff3f51b5</color>
+      <color name="design_default_color_primary_dark">#ff303f9f</color>
+--- 62,69 ----
+      <color name="common_google_signin_btn_text_light_disabled">#1f000000</color>
+      <color name="common_google_signin_btn_text_light_focused">#90000000</color>
+      <color name="common_google_signin_btn_text_light_pressed">#de000000</color>
+!     <color name="dark_grey_2">#ff000000</color>
+!     <color name="dark_grey_2_alpha_10">#ff000000</color>
+      <color name="design_bottom_navigation_shadow_color">#14000000</color>
+      <color name="design_default_color_primary">#ff3f51b5</color>
+      <color name="design_default_color_primary_dark">#ff303f9f</color>
+***************
+*** 97,105 ****
+      <color name="grey_6">#ff4f545c</color>
+      <color name="grey_6_alpha_05">#0d4f545c</color>
+      <color name="grey_6_alpha_30">#4d4f545c</color>
+!     <color name="grey_account">#ff282b30</color>
+!     <color name="grey_channels">#ff2e3136</color>
+!     <color name="grey_guilds">#ff1e2124</color>
+      <color name="grey_unread">#ff8a8e94</color>
+      <color name="highlighted_text_material_dark">#6680cbc4</color>
+      <color name="highlighted_text_material_light">#66009688</color>
+--- 97,105 ----
+      <color name="grey_6">#ff4f545c</color>
+      <color name="grey_6_alpha_05">#0d4f545c</color>
+      <color name="grey_6_alpha_30">#4d4f545c</color>
+!     <color name="grey_account">#ff000000</color>
+!     <color name="grey_channels">#ff000000</color>
+!     <color name="grey_guilds">#ff000000</color>
+      <color name="grey_unread">#ff8a8e94</color>
+      <color name="highlighted_text_material_dark">#6680cbc4</color>
+      <color name="highlighted_text_material_light">#66009688</color>
+***************
+*** 107,121 ****
+      <color name="hypesquad_house2">#fff47b67</color>
+      <color name="hypesquad_house3">#ff45ddc0</color>
+      <color name="league_of_legends">#ff021f25</color>
+!     <color name="link_100">#fff2fbfe</color>
+!     <color name="link_200">#ffcceffd</color>
+!     <color name="link_300">#ff99dffb</color>
+!     <color name="link_400">#ff33c0f6</color>
+!     <color name="link_500">#ff00b0f4</color>
+!     <color name="link_600">#ff0078a6</color>
+!     <color name="link_700">#ff004662</color>
+!     <color name="link_800">#ff003549</color>
+!     <color name="link_900">#ff00090c</color>
+      <color name="material_blue_grey_800">#ff37474f</color>
+      <color name="material_blue_grey_900">#ff263238</color>
+      <color name="material_blue_grey_950">#ff21272b</color>
+--- 107,121 ----
+      <color name="hypesquad_house2">#fff47b67</color>
+      <color name="hypesquad_house3">#ff45ddc0</color>
+      <color name="league_of_legends">#ff021f25</color>
+!     <color name="link_100">#ff8cf687</color>
+!     <color name="link_200">#ff7df577</color>
+!     <color name="link_300">#ff6ef368</color>
+!     <color name="link_400">#ff5ff258</color>
+!     <color name="link_500">#ff50f148</color>
+!     <color name="link_600">#ff41f038</color>
+!     <color name="link_700">#ff32ef28</color>
+!     <color name="link_800">#ff23ed19</color>
+!     <color name="link_900">#ff1be411</color>
+      <color name="material_blue_grey_800">#ff37474f</color>
+      <color name="material_blue_grey_900">#ff263238</color>
+      <color name="material_blue_grey_950">#ff21272b</color>
+***************
+*** 154,168 ****
+      <color name="primary_400">#ff72767d</color>
+      <color name="primary_400_alpha_30">#4d72767d</color>
+      <color name="primary_400_alpha_60">#9972767d</color>
+!     <color name="primary_500">#ff4f545c</color>
+!     <color name="primary_500_alpha_30">#4d4f545c</color>
+!     <color name="primary_500_alpha_60">#994f545c</color>
+      <color name="primary_560">#ff40444b</color>
+!     <color name="primary_600">#ff36393f</color>
+!     <color name="primary_600_alpha_60">#9936393f</color>
+!     <color name="primary_630">#ff2f3136</color>
+!     <color name="primary_630_alpha_60">#992f3136</color>
+!     <color name="primary_630_alpha_90">#e62f3136</color>
+      <color name="primary_660">#ff292b2f</color>
+      <color name="primary_700">#ff202225</color>
+      <color name="primary_700_alpha_60">#99202225</color>
+--- 154,168 ----
+      <color name="primary_400">#ff72767d</color>
+      <color name="primary_400_alpha_30">#4d72767d</color>
+      <color name="primary_400_alpha_60">#9972767d</color>
+!     <color name="primary_500">#ff0f0f0f</color>
+!     <color name="primary_500_alpha_30">#4d0f0f0f</color>
+!     <color name="primary_500_alpha_60">#990f0f0f</color>
+      <color name="primary_560">#ff40444b</color>
+!     <color name="primary_600">#ff000000</color>
+!     <color name="primary_600_alpha_60">#99000000</color>
+!     <color name="primary_630">#ff000000</color>
+!     <color name="primary_630_alpha_60">#99000000</color>
+!     <color name="primary_630_alpha_90">#e6000000</color>
+      <color name="primary_660">#ff292b2f</color>
+      <color name="primary_700">#ff202225</color>
+      <color name="primary_700_alpha_60">#99202225</color>
+***************
+*** 195,203 ****
+      <color name="primary_text_default_material_light">#de000000</color>
+      <color name="primary_text_disabled_material_dark">#4dffffff</color>
+      <color name="primary_text_disabled_material_light">#39000000</color>
+!     <color name="purple_brand">#ff738bd7</color>
+!     <color name="purple_brand_alpha_10">#1a738bd7</color>
+!     <color name="purple_brand_dark">#ff697ec4</color>
+      <color name="purple_brand_hint">#ffc9d2f0</color>
+      <color name="purple_brand_notification">#ff5161ff</color>
+      <color name="reaction_background_me_dark">#4d5c6a9e</color>
+--- 195,203 ----
+      <color name="primary_text_default_material_light">#de000000</color>
+      <color name="primary_text_disabled_material_dark">#4dffffff</color>
+      <color name="primary_text_disabled_material_light">#39000000</color>
+!     <color name="purple_brand">#ff9c4249</color>
+!     <color name="purple_brand_alpha_10">#1a9c4249</color>
+!     <color name="purple_brand_dark">#ff000000</color>
+      <color name="purple_brand_hint">#ffc9d2f0</color>
+      <color name="purple_brand_notification">#ff5161ff</color>
+      <color name="reaction_background_me_dark">#4d5c6a9e</color>
+***************
+*** 259,265 ****
+      <color name="switch_thumb_disabled_material_light">#ffbdbdbd</color>
+      <color name="switch_thumb_normal_material_dark">#ffbdbdbd</color>
+      <color name="switch_thumb_normal_material_light">#fff1f1f1</color>
+!     <color name="tooltip_background_dark">#e6616161</color>
+      <color name="tooltip_background_light">#e6ffffff</color>
+      <color name="transparent">@android:color/transparent</color>
+      <color name="twitch">#ff593695</color>
+--- 259,265 ----
+      <color name="switch_thumb_disabled_material_light">#ffbdbdbd</color>
+      <color name="switch_thumb_normal_material_dark">#ffbdbdbd</color>
+      <color name="switch_thumb_normal_material_light">#fff1f1f1</color>
+!     <color name="tooltip_background_dark">#e6000000</color>
+      <color name="tooltip_background_light">#e6ffffff</color>
+      <color name="transparent">@android:color/transparent</color>
+      <color name="twitch">#ff593695</color>
+diff -crB com.discord-963-base/res/values/styles.xml com.discord-963/res/values/styles.xml
+*** com.discord-963-base/res/values/styles.xml	2019-10-01 22:09:17.070631936 +0300
+--- com.discord-963/res/values/styles.xml	2019-10-01 22:12:52.288729561 +0300
+***************
+*** 114,120 ****
+          <item name="colorPrimary">@color/primary_600</item>
+          <item name="colorPrimaryBg">@drawable/drawable_uikit_primary_600_bg_dark</item>
+          <item name="colorPrimaryCircle">@drawable/drawable_uikit_primary_600_circle</item>
+!         <item name="colorPrimaryDark">#ff2b2e31</item>
+          <item name="colorPrimaryDivider">@color/primary_500_alpha_60</item>
+          <item name="colorPrimaryTabs">@color/black_alpha_05</item>
+          <item name="dialogTheme">@style/AppTheme.Dark.Notice</item>
+--- 114,120 ----
+          <item name="colorPrimary">@color/primary_600</item>
+          <item name="colorPrimaryBg">@drawable/drawable_uikit_primary_600_bg_dark</item>
+          <item name="colorPrimaryCircle">@drawable/drawable_uikit_primary_600_circle</item>
+!         <item name="colorPrimaryDark">@color/primary_630</item>
+          <item name="colorPrimaryDivider">@color/primary_500_alpha_60</item>
+          <item name="colorPrimaryTabs">@color/black_alpha_05</item>
+          <item name="dialogTheme">@style/AppTheme.Dark.Notice</item>
+***************
+*** 337,343 ****
+          <item name="tabTextColor">@color/white_alpha_40</item>
+          <item name="theme_backspace_icon">@drawable/ic_backspace_white_24dp</item>
+          <item name="theme_chat_block_quote_divider">@color/primary_500</item>
+!         <item name="theme_chat_blocked_bg">#ff34373c</item>
+          <item name="theme_chat_blocked_text">@color/grey_unread</item>
+          <item name="theme_chat_code">@color/grey_channels</item>
+          <item name="theme_chat_codeblock_border">@color/grey_account</item>
+--- 337,343 ----
+          <item name="tabTextColor">@color/white_alpha_40</item>
+          <item name="theme_backspace_icon">@drawable/ic_backspace_white_24dp</item>
+          <item name="theme_chat_block_quote_divider">@color/primary_500</item>
+!         <item name="theme_chat_blocked_bg">@color/primary_500</item>
+          <item name="theme_chat_blocked_text">@color/grey_unread</item>
+          <item name="theme_chat_code">@color/grey_channels</item>
+          <item name="theme_chat_codeblock_border">@color/grey_account</item>
+***************
+*** 351,362 ****
+          <item name="theme_chat_input_button_tint_colors">@color/chat_input_button_tint_colors_dark</item>
+          <item name="theme_chat_input_content_tab_bg">@drawable/drawable_rect_rounded_dark</item>
+          <item name="theme_chat_input_divider">@color/dark_grey_2_alpha_10</item>
+!         <item name="theme_chat_input_edit">#ff3e4145</item>
+          <item name="theme_chat_input_photo_selection_icon">@drawable/ic_img_selected_dark_theme</item>
+          <item name="theme_chat_input_text">@color/white_alpha_70</item>
+          <item name="theme_chat_input_text_placeholder">@color/white_alpha_20</item>
+          <item name="theme_chat_loading_spinner_color">@color/white</item>
+!         <item name="theme_chat_mentioned_me">#1afaa61a</item>
+          <item name="theme_chat_name">@color/white</item>
+          <item name="theme_chat_reaction_background">@drawable/drawable_bg_reaction_dark</item>
+          <item name="theme_chat_reaction_text_color">@drawable/drawable_reaction_text_color_dark</item>
+--- 351,362 ----
+          <item name="theme_chat_input_button_tint_colors">@color/chat_input_button_tint_colors_dark</item>
+          <item name="theme_chat_input_content_tab_bg">@drawable/drawable_rect_rounded_dark</item>
+          <item name="theme_chat_input_divider">@color/dark_grey_2_alpha_10</item>
+!         <item name="theme_chat_input_edit">@color/primary_600</item>
+          <item name="theme_chat_input_photo_selection_icon">@drawable/ic_img_selected_dark_theme</item>
+          <item name="theme_chat_input_text">@color/white_alpha_70</item>
+          <item name="theme_chat_input_text_placeholder">@color/white_alpha_20</item>
+          <item name="theme_chat_loading_spinner_color">@color/white</item>
+!         <item name="theme_chat_mentioned_me">@color/purple_brand_alpha_10</item>
+          <item name="theme_chat_name">@color/white</item>
+          <item name="theme_chat_reaction_background">@drawable/drawable_bg_reaction_dark</item>
+          <item name="theme_chat_reaction_text_color">@drawable/drawable_reaction_text_color_dark</item>
+***************
+*** 422,428 ****
+          <item name="colorControlActivated">@color/brand_500</item>
+          <item name="colorControlNormal">@color/primary_100</item>
+          <item name="colorPrimary">@color/primary_600</item>
+!         <item name="colorPrimaryDark">#ff2b2e31</item>
+      </style>
+      <style name="AppTheme.Dark.Evil" parent="@style/AppTheme.Dark">
+          <item name="colorAccent">@color/brand_600</item>
+--- 422,428 ----
+          <item name="colorControlActivated">@color/brand_500</item>
+          <item name="colorControlNormal">@color/primary_100</item>
+          <item name="colorPrimary">@color/primary_600</item>
+!         <item name="colorPrimaryDark">@color/primary_630</item>
+      </style>
+      <style name="AppTheme.Dark.Evil" parent="@style/AppTheme.Dark">
+          <item name="colorAccent">@color/brand_600</item>
+***************
+*** 448,454 ****
+          <item name="colorControlActivated">@color/brand_500</item>
+          <item name="colorControlNormal">@color/primary_100</item>
+          <item name="colorPrimary">@color/primary_600</item>
+!         <item name="colorPrimaryDark">#ff2b2e31</item>
+      </style>
+      <style name="AppTheme.Dark.Notice.PositiveRed" parent="@style/AppTheme.Dark.Notice">
+          <item name="buttonBarPositiveButtonStyle">@style/UiKit.Button.Red.Fit</item>
+--- 448,454 ----
+          <item name="colorControlActivated">@color/brand_500</item>
+          <item name="colorControlNormal">@color/primary_100</item>
+          <item name="colorPrimary">@color/primary_600</item>
+!         <item name="colorPrimaryDark">@color/primary_630</item>
+      </style>
+      <style name="AppTheme.Dark.Notice.PositiveRed" parent="@style/AppTheme.Dark.Notice">
+          <item name="buttonBarPositiveButtonStyle">@style/UiKit.Button.Red.Fit</item>
+diff -crB com.discord-963-base/smali/com/discord/app/AppActivity$d.smali com.discord-963/smali/com/discord/app/AppActivity$d.smali
+*** com.discord-963-base/smali/com/discord/app/AppActivity$d.smali	2019-10-01 22:09:20.523988230 +0300
+--- com.discord-963/smali/com/discord/app/AppActivity$d.smali	2019-10-01 22:34:04.187157223 +0300
+***************
+*** 113,119 ****
+  
+      check-cast v0, Landroid/app/Activity;
+  
+!     const v1, 0x7f060138
+  
+      invoke-static {v0, v1}, Lcom/discord/utilities/color/ColorCompat;->setStatusBarColorResourceId(Landroid/app/Activity;I)V
+  
+--- 113,119 ----
+  
+      check-cast v0, Landroid/app/Activity;
+  
+!     const v1, 0x7f060021
+  
+      invoke-static {v0, v1}, Lcom/discord/utilities/color/ColorCompat;->setStatusBarColorResourceId(Landroid/app/Activity;I)V
+  
+
diff --git a/patches/customtheme/README.md b/patches/customtheme/README.md
index 4b34964..c749924 100644
--- a/patches/customtheme/README.md
+++ b/patches/customtheme/README.md
@@ -54,6 +54,7 @@ Self note: Top bar color is set by `setStatusBarColorResourceId`
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
 #### Value reference
 
diff --git a/patches/customversion/963.patch b/patches/customversion/963.patch
new file mode 100644
index 0000000..c64732b
--- /dev/null
+++ b/patches/customversion/963.patch
@@ -0,0 +1,20 @@
+diff -crB from/smali/com/discord/widgets/settings/WidgetSettings.smali to/smali/com/discord/widgets/settings/WidgetSettings.smali
+*** from/smali/com/discord/widgets/settings/WidgetSettings.smali	2019-10-01 22:09:21.347327038 +0300
+--- to/smali/com/discord/widgets/settings/WidgetSettings.smali	2019-10-01 22:10:18.231038578 +0300
+***************
+*** 1657,1663 ****
+  
+      invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+!     const-string v0, " - 9.6.3 (963)"
+  
+      invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+--- 1657,1663 ----
+  
+      invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+!     const-string v0, " - 9.6.3 (963), with Cutthecord patches"
+  
+      invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
diff --git a/patches/customversion/README.md b/patches/customversion/README.md
index ebb3986..68f92d9 100644
--- a/patches/customversion/README.md
+++ b/patches/customversion/README.md
@@ -47,4 +47,5 @@ This patch replaces version string and adds mention of cutthecord in the user se
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/disable-mobileindicator/963.patch b/patches/disable-mobileindicator/963.patch
new file mode 100644
index 0000000..96b0857
--- /dev/null
+++ b/patches/disable-mobileindicator/963.patch
@@ -0,0 +1,20 @@
+diff -crB from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali
+*** from/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali	2019-10-01 22:09:20.860657135 +0300
+--- to/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali	2019-10-01 22:10:06.937630156 +0300
+***************
+*** 179,185 ****
+  
+      const-string v1, "browser"
+  
+!     const-string v2, "Discord Android"
+  
+      .line 64
+      invoke-static {v1, v2}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+--- 179,185 ----
+  
+      const-string v1, "browser"
+  
+!     const-string v2, "Discord Client"
+  
+      .line 64
+      invoke-static {v1, v2}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
diff --git a/patches/disable-mobileindicator/README.md b/patches/disable-mobileindicator/README.md
index fe514d2..c60ee20 100644
--- a/patches/disable-mobileindicator/README.md
+++ b/patches/disable-mobileindicator/README.md
@@ -48,4 +48,5 @@ However, this causes some issues. See the `Bugs / Side effects` list below.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/experiments/963.patch b/patches/experiments/963.patch
new file mode 100644
index 0000000..14b6609
--- /dev/null
+++ b/patches/experiments/963.patch
@@ -0,0 +1,199 @@
+diff -crB com.discord-963-base/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali com.discord-963/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali
+*** com.discord-963-base/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali	2019-10-01 22:09:20.713989493 +0300
+--- com.discord-963/smali/com/discord/stores/StoreExperiments$getExperimentalAlpha$1.smali	2019-10-01 22:41:50.796903956 +0300
+***************
+*** 80,108 ****
+  
+  .method public final call(Lcom/discord/models/domain/ModelUser;Lcom/discord/models/domain/ModelGuild;)Z
+      .locals 1
+- 
+-     const-string v0, "meUser"
+- 
+-     .line 98
+-     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+- 
+-     invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->isStaff()Z
+- 
+-     move-result p1
+- 
+-     if-nez p1, :cond_1
+- 
+-     if-eqz p2, :cond_0
+- 
+-     goto :goto_0
+- 
+-     :cond_0
+-     const/4 p1, 0x0
+- 
+-     return p1
+- 
+-     :cond_1
+-     :goto_0
+      const/4 p1, 0x1
+  
+      return p1
+--- 80,85 ----
+diff -crB com.discord-963-base/smali/com/discord/stores/StoreExperiments.smali com.discord-963/smali/com/discord/stores/StoreExperiments.smali
+*** com.discord-963-base/smali/com/discord/stores/StoreExperiments.smali	2019-10-01 22:09:20.717322849 +0300
+--- com.discord-963/smali/com/discord/stores/StoreExperiments.smali	2019-10-01 22:41:50.796903956 +0300
+***************
+*** 1236,1296 ****
+  .end method
+  
+  .method public final isExperimentalAlpha()Z
+!     .locals 4
+! 
+!     .line 91
+!     iget-boolean v0, p0, Lcom/discord/stores/StoreExperiments;->initialized:Z
+! 
+!     const/4 v1, 0x1
+! 
+!     if-eqz v0, :cond_0
+! 
+!     iget-object v0, p0, Lcom/discord/stores/StoreExperiments;->stream:Lcom/discord/stores/StoreStream;
+! 
+!     invoke-virtual {v0}, Lcom/discord/stores/StoreStream;->getUsers$app_productionDiscordExternalRelease()Lcom/discord/stores/StoreUser;
+! 
+!     move-result-object v0
+! 
+!     iget-object v0, v0, Lcom/discord/stores/StoreUser;->me:Lcom/discord/models/domain/ModelUser$Me;
+! 
+!     if-eqz v0, :cond_0
+! 
+!     invoke-virtual {v0}, Lcom/discord/models/domain/ModelUser$Me;->isStaff()Z
+! 
+!     move-result v0
+! 
+!     if-eq v0, v1, :cond_1
+! 
+!     :cond_0
+!     iget-object v0, p0, Lcom/discord/stores/StoreExperiments;->stream:Lcom/discord/stores/StoreStream;
+! 
+!     invoke-virtual {v0}, Lcom/discord/stores/StoreStream;->getGuilds$app_productionDiscordExternalRelease()Lcom/discord/stores/StoreGuilds;
+! 
+!     move-result-object v0
+! 
+!     iget-object v0, v0, Lcom/discord/stores/StoreGuilds;->guilds:Ljava/util/Map;
+! 
+!     const-string v2, "stream.guilds.guilds"
+! 
+!     invoke-static {v0, v2}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const-wide v2, 0x2bc056ab0800006L
+! 
+!     invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
+! 
+!     move-result-object v2
+! 
+!     invoke-interface {v0, v2}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
+! 
+!     move-result v0
+! 
+!     if-eqz v0, :cond_2
+! 
+!     :cond_1
+!     return v1
+! 
+!     :cond_2
+!     const/4 v0, 0x0
+  
+      return v0
+  .end method
+--- 1236,1243 ----
+  .end method
+  
+  .method public final isExperimentalAlpha()Z
+!     .locals 1
+!     const/4 v0, 0x1
+  
+      return v0
+  .end method
+diff -crB com.discord-963-base/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali com.discord-963/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali
+*** com.discord-963-base/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali	2019-10-01 22:09:21.340660327 +0300
+--- com.discord-963/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali	2019-10-01 22:41:50.796903956 +0300
+***************
+*** 77,87 ****
+      const-string v0, "meUser"
+  
+      .line 186
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->isStaff()Z
+! 
+!     move-result v2
+  
+      const-string v1, "fontScale"
+  
+--- 77,83 ----
+      const-string v0, "meUser"
+  
+      .line 186
+!     const/4 v2, 0x1
+  
+      const-string v1, "fontScale"
+  
+***************
+*** 95,105 ****
+      const-string p3, "isAlphaTesterOrStaff"
+  
+      .line 188
+!     invoke-static {p4, p3}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     invoke-virtual {p4}, Ljava/lang/Boolean;->booleanValue()Z
+! 
+!     move-result v4
+  
+      .line 189
+      invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+--- 91,97 ----
+      const-string p3, "isAlphaTesterOrStaff"
+  
+      .line 188
+!     const/4 v4, 0x1
+  
+      .line 189
+      invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+diff -crB com.discord-963-base/smali/com/discord/widgets/settings/WidgetSettings.smali com.discord-963/smali/com/discord/widgets/settings/WidgetSettings.smali
+*** com.discord-963-base/smali/com/discord/widgets/settings/WidgetSettings.smali	2019-10-01 22:09:21.347327038 +0300
+--- com.discord-963/smali/com/discord/widgets/settings/WidgetSettings.smali	2019-10-01 22:42:28.187151887 +0300
+***************
+*** 877,885 ****
+      if-eqz p1, :cond_1
+  
+      .line 133
+!     invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->isStaff()Z
+! 
+!     move-result v2
+  
+      if-eq v2, v0, :cond_0
+  
+--- 877,883 ----
+      if-eqz p1, :cond_1
+  
+      .line 133
+!     const/4 v2, 0x1
+  
+      if-eq v2, v0, :cond_0
+  
+***************
+*** 898,906 ****
+      if-eqz p1, :cond_2
+  
+      .line 134
+!     invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->isVerified()Z
+! 
+!     move-result v3
+  
+      if-ne v3, v0, :cond_2
+  
+--- 896,902 ----
+      if-eqz p1, :cond_2
+  
+      .line 134
+!     const/4 v3, 0x1
+  
+      if-ne v3, v0, :cond_2
+  
+Only in com.discord-963/smali/com/discord/widgets/settings: WidgetSettings.smali.orig
+Only in com.discord-963/smali/com/discord/widgets/settings: WidgetSettings.smali.rej
+
diff --git a/patches/experiments/README.md b/patches/experiments/README.md
index 5967fad..3a02920 100644
--- a/patches/experiments/README.md
+++ b/patches/experiments/README.md
@@ -51,4 +51,5 @@ This patch enables developer options (empty), mobile experiments (of which there
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/litecord/963.patch b/patches/litecord/963.patch
new file mode 100644
index 0000000..4499bcf
--- /dev/null
+++ b/patches/litecord/963.patch
@@ -0,0 +1,298 @@
+diff -crB com.discord-963-base/smali/com/discord/app/App.smali com.discord-963/smali/com/discord/app/App.smali
+*** com.discord-963-base/smali/com/discord/app/App.smali	2019-10-01 22:09:20.523988230 +0300
+--- com.discord-963/smali/com/discord/app/App.smali	2019-10-01 22:45:15.508261371 +0300
+***************
+*** 221,227 ****
+  
+      invoke-virtual {v1, v2, v3}, Lcom/discord/utilities/view/text/LinkifiedTextView$Companion;->init(Lcom/discord/utilities/logging/Logger;Lkotlin/jvm/functions/Function2;)Lkotlin/Unit;
+  
+!     const-string v1, "https://cdn.discordapp.com"
+  
+      .line 75
+      invoke-static {v1}, Lcom/discord/models/domain/emoji/ModelEmojiCustom;->setCdnUri(Ljava/lang/String;)V
+--- 221,227 ----
+  
+      invoke-virtual {v1, v2, v3}, Lcom/discord/utilities/view/text/LinkifiedTextView$Companion;->init(Lcom/discord/utilities/logging/Logger;Lkotlin/jvm/functions/Function2;)Lkotlin/Unit;
+  
+!     const-string v1, "https://dev.litecord.top"
+  
+      .line 75
+      invoke-static {v1}, Lcom/discord/models/domain/emoji/ModelEmojiCustom;->setCdnUri(Ljava/lang/String;)V
+Only in com.discord-963/smali/com/discord/app: App.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/BuildConfig.smali com.discord-963/smali/com/discord/BuildConfig.smali
+*** com.discord-963-base/smali/com/discord/BuildConfig.smali	2019-10-01 22:09:20.520654875 +0300
+--- com.discord-963/smali/com/discord/BuildConfig.smali	2019-10-01 22:45:15.508261371 +0300
+***************
+*** 18,32 ****
+  
+  .field public static final FLAVOR_vendor:Ljava/lang/String; = "discord"
+  
+! .field public static final HOST:Ljava/lang/String; = "https://discordapp.com"
+  
+! .field public static final HOST_API:Ljava/lang/String; = "https://discordapp.com/api/"
+  
+! .field public static final HOST_CDN:Ljava/lang/String; = "https://cdn.discordapp.com"
+  
+  .field public static final HOST_GIFT:Ljava/lang/String; = "https://discord.gift"
+  
+! .field public static final HOST_INVITE:Ljava/lang/String; = "https://discord.gg"
+  
+  .field public static final LOCAL_IP:Ljava/lang/String; = ""
+  
+--- 18,32 ----
+  
+  .field public static final FLAVOR_vendor:Ljava/lang/String; = "discord"
+  
+! .field public static final HOST:Ljava/lang/String; = "https://dev.litecord.top"
+  
+! .field public static final HOST_API:Ljava/lang/String; = "https://dev.litecord.top/api/"
+  
+! .field public static final HOST_CDN:Ljava/lang/String; = "https://dev.litecord.top"
+  
+  .field public static final HOST_GIFT:Ljava/lang/String; = "https://discord.gift"
+  
+! .field public static final HOST_INVITE:Ljava/lang/String; = "https://dev.litecord.top"
+  
+  .field public static final LOCAL_IP:Ljava/lang/String; = ""
+  
+diff -crB com.discord-963-base/smali/com/discord/gateway/GatewaySocket.smali com.discord-963/smali/com/discord/gateway/GatewaySocket.smali
+*** com.discord-963-base/smali/com/discord/gateway/GatewaySocket.smali	2019-10-01 22:09:20.573988563 +0300
+--- com.discord-963/smali/com/discord/gateway/GatewaySocket.smali	2019-10-01 22:45:36.571734373 +0300
+***************
+*** 42,48 ****
+      .end annotation
+  .end field
+  
+! .field private static final GATEWAY_COMPRESSION:Ljava/lang/String; = "zlib-stream"
+  
+  .field private static final GATEWAY_ENCODING:Ljava/lang/String; = "json"
+  
+--- 42,48 ----
+      .end annotation
+  .end field
+  
+! .field private static final GATEWAY_COMPRESSION:Ljava/lang/String; = ""
+  
+  .field private static final GATEWAY_ENCODING:Ljava/lang/String; = "json"
+  
+***************
+*** 1050,1056 ****
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+!     const-string p1, "/?encoding=json&v=7&compress=zlib-stream"
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+--- 1050,1056 ----
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+!     const-string p1, "/?encoding=json&v=7"
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+Only in com.discord-963/smali/com/discord/gateway: GatewaySocket.smali.orig
+Only in com.discord-963/smali/com/discord/gateway: GatewaySocket.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali com.discord-963/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali
+*** com.discord-963-base/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali	2019-10-01 22:09:20.550655074 +0300
+--- com.discord-963/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali	2019-10-01 22:45:27.125005067 +0300
+***************
+*** 66,71 ****
+--- 66,73 ----
+  
+      iput p2, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->large_threshold:I
+  
++     const/4 p3, 0x0
++ 
+      iput-boolean p3, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->compress:Z
+  
+      iput-object p4, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->properties:Ljava/util/Map;
+Only in com.discord-963/smali/com/discord/gateway/io: OutgoingPayload$Identify.smali.orig
+Only in com.discord-963/smali/com/discord/gateway/io: OutgoingPayload$Identify.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/stores/StoreGatewayConnection.smali com.discord-963/smali/com/discord/stores/StoreGatewayConnection.smali
+*** com.discord-963-base/smali/com/discord/stores/StoreGatewayConnection.smali	2019-10-01 22:09:20.777323248 +0300
+--- com.discord-963/smali/com/discord/stores/StoreGatewayConnection.smali	2019-10-01 22:45:15.511594726 +0300
+***************
+*** 1409,1415 ****
+  
+      check-cast v2, Lcom/discord/restapi/RequiredHeadersInterceptor$HeadersProvider;
+  
+!     const-string v3, "https://discordapp.com/api/"
+  
+      invoke-direct {v9, v3, v2, v0}, Lcom/discord/gateway/rest/RestConfig;-><init>(Ljava/lang/String;Lcom/discord/restapi/RequiredHeadersInterceptor$HeadersProvider;Ljava/util/List;)V
+  
+--- 1409,1415 ----
+  
+      check-cast v2, Lcom/discord/restapi/RequiredHeadersInterceptor$HeadersProvider;
+  
+!     const-string v3, "https://dev.litecord.top/api/"
+  
+      invoke-direct {v9, v3, v2, v0}, Lcom/discord/gateway/rest/RestConfig;-><init>(Ljava/lang/String;Lcom/discord/restapi/RequiredHeadersInterceptor$HeadersProvider;Ljava/util/List;)V
+  
+Only in com.discord-963/smali/com/discord/stores: StoreGatewayConnection.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/utilities/icon/IconUtils.smali com.discord-963/smali/com/discord/utilities/icon/IconUtils.smali
+*** com.discord-963-base/smali/com/discord/utilities/icon/IconUtils.smali	2019-10-01 22:09:20.903990757 +0300
+--- com.discord-963/smali/com/discord/utilities/icon/IconUtils.smali	2019-10-01 22:45:15.511594726 +0300
+***************
+*** 448,454 ****
+      goto :goto_2
+  
+      :cond_1
+!     const-string p3, "https://cdn.discordapp.com"
+  
+      .line 117
+      check-cast p3, Ljava/lang/CharSequence;
+--- 448,454 ----
+      goto :goto_2
+  
+      :cond_1
+!     const-string p3, "https://dev.litecord.top"
+  
+      .line 117
+      check-cast p3, Ljava/lang/CharSequence;
+***************
+*** 496,502 ****
+      :cond_3
+      new-instance p3, Ljava/lang/StringBuilder;
+  
+!     const-string v0, "https://cdn.discordapp.com/channel-icons/"
+  
+      invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+--- 496,502 ----
+      :cond_3
+      new-instance p3, Ljava/lang/StringBuilder;
+  
+!     const-string v0, "https://dev.litecord.top/channel-icons/"
+  
+      invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+***************
+*** 816,822 ****
+      goto :goto_2
+  
+      :cond_0
+!     const-string p2, "https://cdn.discordapp.com"
+  
+      .line 151
+      check-cast p2, Ljava/lang/CharSequence;
+--- 816,822 ----
+      goto :goto_2
+  
+      :cond_0
+!     const-string p2, "https://dev.litecord.top"
+  
+      .line 151
+      check-cast p2, Ljava/lang/CharSequence;
+***************
+*** 893,899 ****
+      :goto_1
+      new-instance p3, Ljava/lang/StringBuilder;
+  
+!     const-string v0, "https://cdn.discordapp.com/icons/"
+  
+      invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+--- 893,899 ----
+      :goto_1
+      new-instance p3, Ljava/lang/StringBuilder;
+  
+!     const-string v0, "https://dev.litecord.top/icons/"
+  
+      invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+***************
+*** 1112,1118 ****
+      :cond_0
+      if-eqz p1, :cond_4
+  
+!     const-string p2, "https://cdn.discordapp.com"
+  
+      .line 96
+      check-cast p2, Ljava/lang/CharSequence;
+--- 1112,1118 ----
+      :cond_0
+      if-eqz p1, :cond_4
+  
+!     const-string p2, "https://dev.litecord.top"
+  
+      .line 96
+      check-cast p2, Ljava/lang/CharSequence;
+***************
+*** 1179,1185 ****
+      :goto_1
+      new-instance p3, Ljava/lang/StringBuilder;
+  
+!     const-string v0, "https://cdn.discordapp.com/avatars/"
+  
+      invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+--- 1179,1185 ----
+      :goto_1
+      new-instance p3, Ljava/lang/StringBuilder;
+  
+!     const-string v0, "https://dev.litecord.top/avatars/"
+  
+      invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+***************
+*** 2093,2099 ****
+      .line 194
+      new-instance v0, Ljava/lang/StringBuilder;
+  
+!     const-string v1, "https://cdn.discordapp.com/app-assets/"
+  
+      invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+--- 2093,2099 ----
+      .line 194
+      new-instance v0, Ljava/lang/StringBuilder;
+  
+!     const-string v1, "https://dev.litecord.top/app-assets/"
+  
+      invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+Only in com.discord-963/smali/com/discord/utilities/icon: IconUtils.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/utilities/rest/RestAPI$Companion.smali com.discord-963/smali/com/discord/utilities/rest/RestAPI$Companion.smali
+*** com.discord-963-base/smali/com/discord/utilities/rest/RestAPI$Companion.smali	2019-10-01 22:09:20.943991023 +0300
+--- com.discord-963/smali/com/discord/utilities/rest/RestAPI$Companion.smali	2019-10-01 22:45:15.511594726 +0300
+***************
+*** 307,313 ****
+  
+      check-cast v6, Lokhttp3/m;
+  
+!     const-string v9, "https://discordapp.com/api/"
+  
+      invoke-direct {v0, v9, v6}, Lcom/discord/restapi/RestAPIBuilder;-><init>(Ljava/lang/String;Lokhttp3/m;)V
+  
+--- 307,313 ----
+  
+      check-cast v6, Lokhttp3/m;
+  
+!     const-string v9, "https://dev.litecord.top/api/"
+  
+      invoke-direct {v0, v9, v6}, Lcom/discord/restapi/RestAPIBuilder;-><init>(Ljava/lang/String;Lokhttp3/m;)V
+  
+Only in com.discord-963/smali/com/discord/utilities/rest: RestAPI$Companion.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali com.discord-963/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali
+*** com.discord-963-base/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali	2019-10-01 22:09:21.137325641 +0300
+--- com.discord-963/smali/com/discord/widgets/chat/list/WidgetChatListAdapterItemGameInvite.smali	2019-10-01 22:45:15.511594726 +0300
+***************
+*** 606,612 ****
+      .line 106
+      new-instance v1, Ljava/lang/StringBuilder;
+  
+!     const-string v6, "https://cdn.discordapp.com/app-icons/"
+  
+      invoke-direct {v1, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+--- 606,612 ----
+      .line 106
+      new-instance v1, Ljava/lang/StringBuilder;
+  
+!     const-string v6, "https://dev.litecord.top/app-icons/"
+  
+      invoke-direct {v1, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+
diff --git a/patches/litecord/README.md b/patches/litecord/README.md
index 2e0c433..b6ade0b 100644
--- a/patches/litecord/README.md
+++ b/patches/litecord/README.md
@@ -51,4 +51,5 @@ Please keep in mind that litecord is free (gratis and libre) software, provided
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/mutant/963.patch b/patches/mutant/963.patch
new file mode 100644
index 0000000..40c55a9
--- /dev/null
+++ b/patches/mutant/963.patch
@@ -0,0 +1,1909 @@
+diff -crB com.discord-963-base/assets/data/emojis.json com.discord-963/assets/data/emojis.json
+*** com.discord-963-base/assets/data/emojis.json	2019-10-01 22:09:24.037344924 +0300
+--- com.discord-963/assets/data/emojis.json	2019-10-01 22:36:37.594836344 +0300
+***************
+*** 549,554 ****
+--- 549,568 ----
+      },
+      {
+        "names": [
++         "raised_hands_paw"
++       ],
++       "surrogates": "🙌􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "raised_hands_claw"
++       ],
++       "surrogates": "🙌􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "clap"
+        ],
+        "surrogates": "👏",
+***************
+*** 556,561 ****
+--- 570,589 ----
+      },
+      {
+        "names": [
++         "clap_paw"
++       ],
++       "surrogates": "👏􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "clap_claw"
++       ],
++       "surrogates": "👏􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "wave"
+        ],
+        "surrogates": "👋",
+***************
+*** 563,568 ****
+--- 591,610 ----
+      },
+      {
+        "names": [
++         "wave_paw"
++       ],
++       "surrogates": "👋􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "wave_claw"
++       ],
++       "surrogates": "👋􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "thumbsup",
+          "+1",
+          "thumbup"
+***************
+*** 572,577 ****
+--- 614,637 ----
+      },
+      {
+        "names": [
++         "thumbsup_paw",
++         "+1_paw",
++         "thumbup_paw"
++       ],
++       "surrogates": "👍􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "thumbsup_claw",
++         "+1_claw",
++         "thumbup_claw"
++       ],
++       "surrogates": "👍􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "thumbsdown",
+          "-1",
+          "thumbdown"
+***************
+*** 581,586 ****
+--- 641,664 ----
+      },
+      {
+        "names": [
++         "thumbsdown_paw",
++         "-1_paw",
++         "thumbdown_paw"
++       ],
++       "surrogates": "👎􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "thumbsdown_claw",
++         "-1_claw",
++         "thumbdown_claw"
++       ],
++       "surrogates": "👎􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "punch"
+        ],
+        "surrogates": "👊",
+***************
+*** 588,593 ****
+--- 666,685 ----
+      },
+      {
+        "names": [
++         "punch_paw"
++       ],
++       "surrogates": "👊􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "punch_claw"
++       ],
++       "surrogates": "👊􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "fist"
+        ],
+        "surrogates": "✊",
+***************
+*** 595,600 ****
+--- 687,706 ----
+      },
+      {
+        "names": [
++         "fist_paw"
++       ],
++       "surrogates": "✊􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "fist_claw"
++       ],
++       "surrogates": "✊􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "v"
+        ],
+        "surrogates": "✌",
+***************
+*** 602,607 ****
+--- 708,727 ----
+      },
+      {
+        "names": [
++         "v_paw"
++       ],
++       "surrogates": "✌􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "v_claw"
++       ],
++       "surrogates": "✌􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "ok_hand"
+        ],
+        "surrogates": "👌",
+***************
+*** 609,614 ****
+--- 729,748 ----
+      },
+      {
+        "names": [
++         "ok_hand_paw"
++       ],
++       "surrogates": "👌􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "ok_hand_claw"
++       ],
++       "surrogates": "👌􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "raised_hand"
+        ],
+        "surrogates": "✋",
+***************
+*** 616,621 ****
+--- 750,769 ----
+      },
+      {
+        "names": [
++         "raised_hand_paw"
++       ],
++       "surrogates": "✋􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "raised_hand_claw"
++       ],
++       "surrogates": "✋􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "open_hands"
+        ],
+        "surrogates": "👐",
+***************
+*** 623,628 ****
+--- 771,790 ----
+      },
+      {
+        "names": [
++         "open_hands_paw"
++       ],
++       "surrogates": "👐􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "open_hands_claw"
++       ],
++       "surrogates": "👐􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "muscle"
+        ],
+        "surrogates": "💪",
+***************
+*** 630,635 ****
+--- 792,811 ----
+      },
+      {
+        "names": [
++         "muscle_paw"
++       ],
++       "surrogates": "💪􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "muscle_claw"
++       ],
++       "surrogates": "💪􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "pray"
+        ],
+        "surrogates": "🙏",
+***************
+*** 637,642 ****
+--- 813,832 ----
+      },
+      {
+        "names": [
++         "pray_paw"
++       ],
++       "surrogates": "🙏􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "pray_claw"
++       ],
++       "surrogates": "🙏􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "point_up"
+        ],
+        "surrogates": "☝",
+***************
+*** 644,649 ****
+--- 834,853 ----
+      },
+      {
+        "names": [
++         "point_up_paw"
++       ],
++       "surrogates": "☝􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "point_up_claw"
++       ],
++       "surrogates": "☝􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "point_up_2"
+        ],
+        "surrogates": "👆",
+***************
+*** 651,656 ****
+--- 855,874 ----
+      },
+      {
+        "names": [
++         "point_up_2_paw"
++       ],
++       "surrogates": "👆􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "point_up_2_claw"
++       ],
++       "surrogates": "👆􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "point_down"
+        ],
+        "surrogates": "👇",
+***************
+*** 658,663 ****
+--- 876,895 ----
+      },
+      {
+        "names": [
++         "point_down_paw"
++       ],
++       "surrogates": "👇􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "point_down_claw"
++       ],
++       "surrogates": "👇􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "point_left"
+        ],
+        "surrogates": "👈",
+***************
+*** 665,670 ****
+--- 897,916 ----
+      },
+      {
+        "names": [
++         "point_left_paw"
++       ],
++       "surrogates": "👈􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "point_left_claw"
++       ],
++       "surrogates": "👈􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "point_right"
+        ],
+        "surrogates": "👉",
+***************
+*** 672,677 ****
+--- 918,937 ----
+      },
+      {
+        "names": [
++         "point_right_paw"
++       ],
++       "surrogates": "👉􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "point_right_claw"
++       ],
++       "surrogates": "👉􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "middle_finger",
+          "reversed_hand_with_middle_finger_extended"
+        ],
+***************
+*** 680,685 ****
+--- 940,961 ----
+      },
+      {
+        "names": [
++         "middle_finger_paw",
++         "reversed_hand_with_middle_finger_extended_paw"
++       ],
++       "surrogates": "🖕􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "middle_finger_claw",
++         "reversed_hand_with_middle_finger_extended_claw"
++       ],
++       "surrogates": "🖕􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "hand_splayed",
+          "raised_hand_with_fingers_splayed"
+        ],
+***************
+*** 688,693 ****
+--- 964,977 ----
+      },
+      {
+        "names": [
++         "hand_splayed_claw",
++         "raised_hand_with_fingers_splayed_claw"
++       ],
++       "surrogates": "🖐􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "metal",
+          "sign_of_the_horns"
+        ],
+***************
+*** 696,701 ****
+--- 980,1001 ----
+      },
+      {
+        "names": [
++         "metal_paw",
++         "sign_of_the_horns_paw"
++       ],
++       "surrogates": "🤘􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "metal_claw",
++         "sign_of_the_horns_claw"
++       ],
++       "surrogates": "🤘􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "vulcan",
+          "raised_hand_with_part_between_middle_and_ring_fingers"
+        ],
+***************
+*** 704,709 ****
+--- 1004,1025 ----
+      },
+      {
+        "names": [
++         "vulcan_paw",
++         "raised_hand_with_part_between_middle_and_ring_fingers_paw"
++       ],
++       "surrogates": "🖖􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "vulcan_claw",
++         "raised_hand_with_part_between_middle_and_ring_fingers_claw"
++       ],
++       "surrogates": "🖖􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "writing_hand"
+        ],
+        "surrogates": "✍",
+***************
+*** 711,716 ****
+--- 1027,1046 ----
+      },
+      {
+        "names": [
++         "writing_hand_paw"
++       ],
++       "surrogates": "✍􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "writing_hand_claw"
++       ],
++       "surrogates": "✍􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "nail_care"
+        ],
+        "surrogates": "💅",
+***************
+*** 718,723 ****
+--- 1048,1067 ----
+      },
+      {
+        "names": [
++         "nail_care_paw"
++       ],
++       "surrogates": "💅􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "nail_care_claw"
++       ],
++       "surrogates": "💅􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "lips"
+        ],
+        "surrogates": "👄"
+***************
+*** 1417,1422 ****
+--- 1761,1780 ----
+      },
+      {
+        "names": [
++         "selfie_paw"
++       ],
++       "surrogates": "🤳􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "selfie_claw"
++       ],
++       "surrogates": "🤳􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "man_dancing",
+          "male_dancer"
+        ],
+***************
+*** 1433,1438 ****
+--- 1791,1812 ----
+      },
+      {
+        "names": [
++         "call_me_paw",
++         "call_me_hand_paw"
++       ],
++       "surrogates": "🤙􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "call_me_claw",
++         "call_me_hand_claw"
++       ],
++       "surrogates": "🤙􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "raised_back_of_hand",
+          "back_of_hand"
+        ],
+***************
+*** 1441,1446 ****
+--- 1815,1836 ----
+      },
+      {
+        "names": [
++         "raised_back_of_hand_paw",
++         "back_of_hand_paw"
++       ],
++       "surrogates": "🤚􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "raised_back_of_hand_claw",
++         "back_of_hand_claw"
++       ],
++       "surrogates": "🤚􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "left_facing_fist",
+          "left_fist"
+        ],
+***************
+*** 1449,1454 ****
+--- 1839,1860 ----
+      },
+      {
+        "names": [
++         "left_facing_fist_paw",
++         "left_fist_paw"
++       ],
++       "surrogates": "🤛􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "left_facing_fist_claw",
++         "left_fist_claw"
++       ],
++       "surrogates": "🤛􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "right_facing_fist",
+          "right_fist"
+        ],
+***************
+*** 1457,1462 ****
+--- 1863,1884 ----
+      },
+      {
+        "names": [
++         "right_facing_fist_paw",
++         "right_fist_paw"
++       ],
++       "surrogates": "🤜􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "right_facing_fist_claw",
++         "right_fist_claw"
++       ],
++       "surrogates": "🤜􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
+          "handshake",
+          "shaking_hands"
+        ],
+***************
+*** 1464,1474 ****
+--- 1886,2100 ----
+      },
+      {
+        "names": [
++         "handshake_paw",
++         "shaking_hands_paw"
++       ],
++       "surrogates": "🤝􁙐"
++     },
++     {
++       "names": [
++         "handshake_claw",
++         "shaking_hands_claw"
++       ],
++       "surrogates": "🤝􁙑"
++     },
++     {
++       "names": [
+          "fingers_crossed",
+          "hand_with_index_and_middle_finger_crossed"
+        ],
+        "surrogates": "🤞",
+        "hasDiversity": true
++     },
++     {
++       "names": [
++         "fingers_crossed_paw",
++         "hand_with_index_and_middle_finger_crossed_paw"
++       ],
++       "surrogates": "🤞􁙐",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "fingers_crossed_claw",
++         "hand_with_index_and_middle_finger_crossed_claw"
++       ],
++       "surrogates": "🤞􁙑",
++       "hasDiversity": true
++     },
++     {
++       "names": [
++         "pilot"
++       ],
++       "surrogates": "🧑✈"
++     },
++     {
++       "names": [
++         "health_worker"
++       ],
++       "surrogates": "🧑⚕"
++     },
++     {
++       "names": [
++         "firefighter"
++       ],
++       "surrogates": "🧑🥢"
++     },
++     {
++       "names": [
++         "astronaut"
++       ],
++       "surrogates": "🧑🚀"
++     },
++     {
++       "names": [
++         "scientist"
++       ],
++       "surrogates": "🧑🔬"
++     },
++     {
++       "names": [
++         "mechanic"
++       ],
++       "surrogates": "🧑🔧"
++     },
++     {
++       "names": [
++         "technologist"
++       ],
++       "surrogates": "🧑💻"
++     },
++     {
++       "names": [
++         "chef"
++       ],
++       "surrogates": "🧑🍳"
++     },
++     {
++       "names": [
++         "monocle"
++       ],
++       "surrogates": "🧐"
++     },
++     {
++       "names": [
++         "pleading"
++       ],
++       "surrogates": "🥺"
++     },
++     {
++       "names": [
++         "cold"
++       ],
++       "surrogates": "🥶"
++     },
++     {
++       "names": [
++         "hot"
++       ],
++       "surrogates": "🥵"
++     },
++     {
++       "names": [
++         "woozy"
++       ],
++       "surrogates": "🥴"
++     },
++     {
++       "names": [
++         "party_face"
++       ],
++       "surrogates": "🥳"
++     },
++     {
++       "names": [
++         "smile_hearts"
++       ],
++       "surrogates": "🥰"
++     },
++     {
++       "names": [
++         "mind_blown"
++       ],
++       "surrogates": "🤯"
++     },
++     {
++       "names": [
++         "vomiting"
++       ],
++       "surrogates": "🤮"
++     },
++     {
++       "names": [
++         "hand_over_mouth"
++       ],
++       "surrogates": "🤭"
++     },
++     {
++       "names": [
++         "swearing"
++       ],
++       "surrogates": "🤬"
++     },
++     {
++       "names": [
++         "shush"
++       ],
++       "surrogates": "🤫"
++     },
++     {
++       "names": [
++         "crazy"
++       ],
++       "surrogates": "🤪"
++     },
++     {
++       "names": [
++         "starry_eyes"
++       ],
++       "surrogates": "🤩"
++     },
++     {
++       "names": [
++         "raised_eyebrow"
++       ],
++       "surrogates": "🤨"
++     },
++     {
++       "names": [
++         "detective"
++       ],
++       "surrogates": "🕵􁘫"
++     },
++     {
++       "names": [
++         "massage"
++       ],
++       "surrogates": "💆􁘫"
++     },
++     {
++       "names": [
++         "tipping_hand"
++       ],
++       "surrogates": "💁􁘫"
++     },
++     {
++       "names": [
++         "hot_shit"
++       ],
++       "surrogates": "􁚐"
++     },
++     {
++       "names": [
++         "headpats"
++       ],
++       "surrogates": "􁚗"
++     },
++     {
++       "names": [
++         "merperson"
++       ],
++       "surrogates": "🧜"
+      }
+    ],
+    "nature": [
+***************
+*** 2453,2458 ****
+--- 3079,3140 ----
+          "squid"
+        ],
+        "surrogates": "🦑"
++     },
++     {
++       "names": [
++         "furry_pride",
++         "rainbow_paw"
++       ],
++       "surrogates": "􁚛🌈"
++     },
++     {
++       "names": [
++         "paw"
++       ],
++       "surrogates": "􁚛"
++     },
++     {
++       "names": [
++         "awoo"
++       ],
++       "surrogates": "􁚘"
++     },
++     {
++       "names": [
++         "dont_awoo",
++         "no_awoo"
++       ],
++       "surrogates": "􁚙"
++     },
++     {
++       "names": [
++         "elf"
++       ],
++       "surrogates": "🧝"
++     },
++     {
++       "names": [
++         "raccoon"
++       ],
++       "surrogates": "🦝"
++     },
++     {
++       "names": [
++         "parrot"
++       ],
++       "surrogates": "🦜"
++     },
++     {
++       "names": [
++         "peacock"
++       ],
++       "surrogates": "🦚"
++     },
++     {
++       "names": [
++         "demon"
++       ],
++       "surrogates": "􁙦"
+      }
+    ],
+    "food": [
+***************
+*** 2980,2985 ****
+--- 3662,3673 ----
+          "pancakes"
+        ],
+        "surrogates": "🥞"
++     },
++     {
++       "names": [
++         "cannabis_leaf"
++       ],
++       "surrogates": "􁚑"
+      }
+    ],
+    "activity": [
+***************
+*** 5271,5276 ****
+--- 5959,6018 ----
+          "shopping_trolley"
+        ],
+        "surrogates": "🛒"
++     },
++     {
++       "names": [
++         "toilet_paper"
++       ],
++       "surrogates": "🧻"
++     },
++     {
++       "names": [
++         "brick"
++       ],
++       "surrogates": "🧱"
++     },
++     {
++       "names": [
++         "firecracker"
++       ],
++       "surrogates": "🧨"
++     },
++     {
++       "names": [
++         "bone"
++       ],
++       "surrogates": "🦴"
++     },
++     {
++       "names": [
++         "d20"
++       ],
++       "surrogates": "􁚖"
++     },
++     {
++       "names": [
++         "d12"
++       ],
++       "surrogates": "􁚕"
++     },
++     {
++       "names": [
++         "d10"
++       ],
++       "surrogates": "􁚔"
++     },
++     {
++       "names": [
++         "d8"
++       ],
++       "surrogates": "􁚓"
++     },
++     {
++       "names": [
++         "d4"
++       ],
++       "surrogates": "􁚒"
+      }
+    ],
+    "symbols": [
+***************
+*** 7082,7087 ****
+--- 7824,7934 ----
+          "regional_indicator_a"
+        ],
+        "surrogates": "🇦"
++     },
++     {
++       "names": [
++         "queer_100"
++       ],
++       "surrogates": "💯🌈"
++     },
++     {
++       "names": [
++         "dont_at",
++         "no_at",
++         "no_mention",
++         "dont_mention"
++       ],
++       "surrogates": "􁚚"
++     },
++     {
++       "names": [
++         "neuter_symbol"
++       ],
++       "surrogates": "⚲"
++     },
++     {
++       "names": [
++         "androgyne_symbol"
++       ],
++       "surrogates": "⚨"
++     },
++     {
++       "names": [
++         "transgender_symbol"
++       ],
++       "surrogates": "⚧"
++     },
++     {
++       "names": [
++         "male_female_symbol"
++       ],
++       "surrogates": "⚥"
++     },
++     {
++       "names": [
++         "male_and_female_symbol"
++       ],
++       "surrogates": "⚤"
++     },
++     {
++       "names": [
++         "two_male_symbols"
++       ],
++       "surrogates": "⚣"
++     },
++     {
++       "names": [
++         "two_female_symbols"
++       ],
++       "surrogates": "⚢"
++     },
++     {
++       "names": [
++         "red_heart"
++       ],
++       "surrogates": "♴"
++     },
++     {
++       "names": [
++         "male_symbol"
++       ],
++       "surrogates": "♂"
++     },
++     {
++       "names": [
++         "female_symbol"
++       ],
++       "surrogates": "♀"
++     },
++     {
++       "names": [
++         "orange_heart"
++       ],
++       "surrogates": "🧡"
++     },
++     {
++       "names": [
++         "labrys_symbol"
++       ],
++       "surrogates": "􁚅"
++     },
++     {
++       "names": [
++         "bisexual_triangles"
++       ],
++       "surrogates": "􁚄"
++     },
++     {
++       "names": [
++         "black_triangle"
++       ],
++       "surrogates": "􁚃"
++     },
++     {
++       "names": [
++         "pink_triangle"
++       ],
++       "surrogates": "􁚂"
+      }
+    ],
+    "flags": [
+***************
+*** 8633,8638 ****
+          "rainbow_flag"
+        ],
+        "surrogates": "🏳️‍🌈"
+      }
+    ]
+! }
+\ No newline at end of file
+--- 9480,9917 ----
+          "rainbow_flag"
+        ],
+        "surrogates": "🏳️‍🌈"
++     },
++     {
++       "names": [
++         "pirate_flag"
++       ],
++       "surrogates": "🏴️"
++     },
++     {
++       "names": [
++         "transgender_flag"
++       ],
++       "surrogates": "􁚁"
++     },
++     {
++       "names": [
++         "polysexual_flag"
++       ],
++       "surrogates": "􁚀"
++     },
++     {
++       "names": [
++         "polyamory_flag"
++       ],
++       "surrogates": "􁙿"
++     },
++     {
++       "names": [
++         "pansexual_flag"
++       ],
++       "surrogates": "􁙾"
++     },
++     {
++       "names": [
++         "nonbinary_flag"
++       ],
++       "surrogates": "􁙽"
++     },
++     {
++       "names": [
++         "neutrois_flag"
++       ],
++       "surrogates": "􁙼"
++     },
++     {
++       "names": [
++         "intersex_flag"
++       ],
++       "surrogates": "􁙻"
++     },
++     {
++       "names": [
++         "genderqueer_flag"
++       ],
++       "surrogates": "􁙺"
++     },
++     {
++       "names": [
++         "genderfluid_flag"
++       ],
++       "surrogates": "􁙹"
++     },
++     {
++       "names": [
++         "deminonbinary_flag"
++       ],
++       "surrogates": "􁙸"
++     },
++     {
++       "names": [
++         "demigirl_flag"
++       ],
++       "surrogates": "􁙷"
++     },
++     {
++       "names": [
++         "demiguy_flag"
++       ],
++       "surrogates": "􁙶"
++     },
++     {
++       "names": [
++         "bisexual_flag"
++       ],
++       "surrogates": "􁙵"
++     },
++     {
++       "names": [
++         "bigender_flag"
++       ],
++       "surrogates": "􁙴"
++     },
++     {
++       "names": [
++         "bear_flag"
++       ],
++       "surrogates": "􁙳"
++     },
++     {
++       "names": [
++         "asexual_flag"
++       ],
++       "surrogates": "􁙲"
++     },
++     {
++       "names": [
++         "aromantic_flag"
++       ],
++       "surrogates": "􁙱"
++     },
++     {
++       "names": [
++         "agender_flag"
++       ],
++       "surrogates": "􁙰"
++     },
++     {
++       "names": [
++         "lesbian_flag"
++       ],
++       "surrogates": "􁚆"
++     },
++     {
++       "names": [
++         "paw-modifier"
++       ],
++       "surrogates": "􁙐"
++     },
++     {
++       "names": [
++         "claw-modifier"
++       ],
++       "surrogates": "􁙑"
++     },
++     {
++       "names": [
++         "skin-tone-1"
++       ],
++       "surrogates": "🏻"
++     },
++     {
++       "names": [
++         "skin-tone-2"
++       ],
++       "surrogates": "🏼"
++     },
++     {
++       "names": [
++         "skin-tone-3"
++       ],
++       "surrogates": "🏽"
++     },
++     {
++       "names": [
++         "skin-tone-4"
++       ],
++       "surrogates": "🏾"
++     },
++     {
++       "names": [
++         "skin-tone-5"
++       ],
++       "surrogates": "🏿"
++     },
++     {
++       "names": [
++         "skin-tone-6"
++       ],
++       "surrogates": "􁘀"
++     },
++     {
++       "names": [
++         "skin-tone-7"
++       ],
++       "surrogates": "􁘁"
++     },
++     {
++       "names": [
++         "skin-tone-8"
++       ],
++       "surrogates": "􁘂"
++     },
++     {
++       "names": [
++         "skin-tone-9"
++       ],
++       "surrogates": "􁘃"
++     },
++     {
++       "names": [
++         "skin-tone-10"
++       ],
++       "surrogates": "􁘄"
++     },
++     {
++       "names": [
++         "skin-tone-11"
++       ],
++       "surrogates": "􁘅"
++     },
++     {
++       "names": [
++         "skin-tone-12"
++       ],
++       "surrogates": "􁘆"
++     },
++     {
++       "names": [
++         "skin-tone-13"
++       ],
++       "surrogates": "􁘇"
++     },
++     {
++       "names": [
++         "skin-tone-14"
++       ],
++       "surrogates": "􁘈"
++     },
++     {
++       "names": [
++         "skin-tone-15"
++       ],
++       "surrogates": "􁘉"
++     },
++     {
++       "names": [
++         "skin-tone-16"
++       ],
++       "surrogates": "􁘊"
++     },
++     {
++       "names": [
++         "skin-tone-17"
++       ],
++       "surrogates": "􁘋"
++     },
++     {
++       "names": [
++         "skin-tone-18"
++       ],
++       "surrogates": "􁘌"
++     },
++     {
++       "names": [
++         "skin-tone-19"
++       ],
++       "surrogates": "􁘍"
++     },
++     {
++       "names": [
++         "skin-tone-20"
++       ],
++       "surrogates": "􁘎"
++     },
++     {
++       "names": [
++         "skin-tone-21"
++       ],
++       "surrogates": "􁘏"
++     },
++     {
++       "names": [
++         "skin-tone-22"
++       ],
++       "surrogates": "􁘐"
++     },
++     {
++       "names": [
++         "skin-tone-23"
++       ],
++       "surrogates": "􁘑"
++     },
++     {
++       "names": [
++         "skin-tone-24"
++       ],
++       "surrogates": "􁘒"
++     },
++     {
++       "names": [
++         "skin-tone-25"
++       ],
++       "surrogates": "􁘓"
++     },
++     {
++       "names": [
++         "skin-tone-26"
++       ],
++       "surrogates": "􁘔"
++     },
++     {
++       "names": [
++         "skin-tone-27"
++       ],
++       "surrogates": "􁘕"
++     },
++     {
++       "names": [
++         "skin-tone-28"
++       ],
++       "surrogates": "􁘖"
++     },
++     {
++       "names": [
++         "skin-tone-29"
++       ],
++       "surrogates": "􁘗"
++     },
++     {
++       "names": [
++         "skin-tone-30"
++       ],
++       "surrogates": "􁘘"
++     },
++     {
++       "names": [
++         "skin-tone-31"
++       ],
++       "surrogates": "􁘙"
++     },
++     {
++       "names": [
++         "skin-tone-32"
++       ],
++       "surrogates": "􁘚"
++     },
++     {
++       "names": [
++         "skin-tone-33"
++       ],
++       "surrogates": "􁘛"
++     },
++     {
++       "names": [
++         "skin-tone-34"
++       ],
++       "surrogates": "􁘜"
++     },
++     {
++       "names": [
++         "skin-tone-35"
++       ],
++       "surrogates": "􁘝"
++     },
++     {
++       "names": [
++         "skin-tone-36"
++       ],
++       "surrogates": "􁘞"
++     },
++     {
++       "names": [
++         "skin-tone-37"
++       ],
++       "surrogates": "􁘟"
++     },
++     {
++       "names": [
++         "skin-tone-38"
++       ],
++       "surrogates": "􁘠"
++     },
++     {
++       "names": [
++         "skin-tone-39"
++       ],
++       "surrogates": "􁘡"
++     },
++     {
++       "names": [
++         "skin-tone-40"
++       ],
++       "surrogates": "􁘢"
++     },
++     {
++       "names": [
++         "skin-tone-41"
++       ],
++       "surrogates": "􁘣"
++     },
++     {
++       "names": [
++         "skin-tone-42"
++       ],
++       "surrogates": "􁘤"
++     },
++     {
++       "names": [
++         "skin-tone-43"
++       ],
++       "surrogates": "􁘥"
++     },
++     {
++       "names": [
++         "skin-tone-44"
++       ],
++       "surrogates": "􁘦"
++     },
++     {
++       "names": [
++         "skin-tone-45"
++       ],
++       "surrogates": "􁘧"
++     },
++     {
++       "names": [
++         "skin-tone-46"
++       ],
++       "surrogates": "􁘨"
++     },
++     {
++       "names": [
++         "skin-tone-47"
++       ],
++       "surrogates": "􁘩"
++     },
++     {
++       "names": [
++         "skin-tone-48"
++       ],
++       "surrogates": "􁘪"
++     },
++     {
++       "names": [
++         "skin-tone-49"
++       ],
++       "surrogates": "􁘫"
++     },
++     {
++       "names": [
++         "skin-tone-50"
++       ],
++       "surrogates": "􁘬"
+      }
+    ]
+! }
+diff -crB com.discord-963-base/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali com.discord-963/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali
+*** com.discord-963-base/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali	2019-10-01 22:09:20.613988829 +0300
+--- com.discord-963/smali/com/discord/models/domain/emoji/ModelEmojiUnicode.smali	2019-10-01 22:38:21.222186924 +0300
+***************
+*** 65,71 ****
+  .method static constructor <clinit>()V
+      .locals 3
+  
+!     const/4 v0, 0x5
+  
+      new-array v0, v0, [Ljava/lang/String;
+  
+--- 65,71 ----
+  .method static constructor <clinit>()V
+      .locals 3
+  
+!     const/16 v0, 0x32
+  
+      new-array v0, v0, [Ljava/lang/String;
+  
+***************
+*** 99,104 ****
+--- 99,374 ----
+  
+      aput-object v2, v0, v1
+  
++     const-string v2, "􁘀"
++ 
++     const/16 v1, 0x5
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘁"
++ 
++     const/16 v1, 0x6
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘂"
++ 
++     const/16 v1, 0x7
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘃"
++ 
++     const/16 v1, 0x8
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘄"
++ 
++     const/16 v1, 0x9
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘅"
++ 
++     const/16 v1, 0xa
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘆"
++ 
++     const/16 v1, 0xb
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘇"
++ 
++     const/16 v1, 0xc
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘈"
++ 
++     const/16 v1, 0xd
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘉"
++ 
++     const/16 v1, 0xe
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘊"
++ 
++     const/16 v1, 0xf
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘋"
++ 
++     const/16 v1, 0x10
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘌"
++ 
++     const/16 v1, 0x11
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘍"
++ 
++     const/16 v1, 0x12
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘎"
++ 
++     const/16 v1, 0x13
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘏"
++ 
++     const/16 v1, 0x14
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘐"
++ 
++     const/16 v1, 0x15
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘑"
++ 
++     const/16 v1, 0x16
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘒"
++ 
++     const/16 v1, 0x17
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘓"
++ 
++     const/16 v1, 0x18
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘔"
++ 
++     const/16 v1, 0x19
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘕"
++ 
++     const/16 v1, 0x1a
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘖"
++ 
++     const/16 v1, 0x1b
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘗"
++ 
++     const/16 v1, 0x1c
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘘"
++ 
++     const/16 v1, 0x1d
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘙"
++ 
++     const/16 v1, 0x1e
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘚"
++ 
++     const/16 v1, 0x1f
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘛"
++ 
++     const/16 v1, 0x20
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘜"
++ 
++     const/16 v1, 0x21
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘝"
++ 
++     const/16 v1, 0x22
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘞"
++ 
++     const/16 v1, 0x23
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘟"
++ 
++     const/16 v1, 0x24
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘠"
++ 
++     const/16 v1, 0x25
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘡"
++ 
++     const/16 v1, 0x26
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘢"
++ 
++     const/16 v1, 0x27
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘣"
++ 
++     const/16 v1, 0x28
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘤"
++ 
++     const/16 v1, 0x29
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘥"
++ 
++     const/16 v1, 0x2a
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘦"
++ 
++     const/16 v1, 0x2b
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘧"
++ 
++     const/16 v1, 0x2c
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘨"
++ 
++     const/16 v1, 0x2d
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘩"
++ 
++     const/16 v1, 0x2e
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘪"
++ 
++     const/16 v1, 0x2f
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘫"
++ 
++     const/16 v1, 0x30
++ 
++     aput-object v2, v0, v1
++ 
++     const-string v2, "􁘬"
++ 
++     const/16 v1, 0x31
++ 
++     aput-object v2, v0, v1
++ 
+      .line 37
+      sput-object v0, Lcom/discord/models/domain/emoji/ModelEmojiUnicode;->DIVERSITY_MODIFIERS:[Ljava/lang/String;
+  
+
diff --git a/patches/mutant/README.md b/patches/mutant/README.md
index 3d624fb..2b5d938 100644
--- a/patches/mutant/README.md
+++ b/patches/mutant/README.md
@@ -59,6 +59,7 @@ Various scripts are provided to help building of custom patches easier.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
 #### Disclaimer
 
diff --git a/patches/necessary/963.patch b/patches/necessary/963.patch
new file mode 100644
index 0000000..65e3b63
--- /dev/null
+++ b/patches/necessary/963.patch
@@ -0,0 +1,14 @@
+diff -crB from/AndroidManifest.xml to/AndroidManifest.xml
+*** from/AndroidManifest.xml	2019-10-01 22:09:11.817263673 +0300
+--- to/AndroidManifest.xml	2019-10-01 22:10:00.197585341 +0300
+***************
+*** 1,4 ****
+! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="29" android:compileSdkVersionCodename="10" android:installLocation="auto" package="com.discord" platformBuildVersionCode="29" platformBuildVersionName="10">
+      <uses-feature android:name="android.hardware.camera" android:required="false"/>
+      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
+      <uses-feature android:name="android.hardware.faketouch" android:required="false"/>
+--- 1,4 ----
+! <?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="29" android:compileSdkVersionCodename="10" android:installLocation="auto" package="com.discord" platformBuildVersionCode="963" platformBuildVersionName="9.6.3">
+      <uses-feature android:name="android.hardware.camera" android:required="false"/>
+      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
+      <uses-feature android:name="android.hardware.faketouch" android:required="false"/>
diff --git a/patches/noblocked/963.patch b/patches/noblocked/963.patch
new file mode 100644
index 0000000..985a85f
--- /dev/null
+++ b/patches/noblocked/963.patch
@@ -0,0 +1,18 @@
+diff -crB -x dist -x build com.discord-835-base/res/layout/widget_chat_list_adapter_item_blocked.xml com.discord-835/res/layout/widget_chat_list_adapter_item_blocked.xml
+*** com.discord-835-base/res/layout/widget_chat_list_adapter_item_blocked.xml   2019-01-25 10:57:34.359248256 +0300
+--- com.discord-835/res/layout/widget_chat_list_adapter_item_blocked.xml    2019-01-27 00:08:22.929085528 +0300
+***************
+*** 1,5 ****
+  <?xml version="1.0" encoding="utf-8"?>
+! <RelativeLayout android:background="?selectableItemBackground" android:paddingLeft="@dimen/chat_cell_horizontal_spacing_padding" android:paddingTop="@dimen/chat_cell_vertical_spacing_padding" android:paddingRight="@dimen/chat_cell_horizontal_spacing_padding" android:paddingBottom="@dimen/chat_cell_vertical_spacing_padding" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/chat_cell_horizontal_spacing_margin" android:layout_marginRight="@dimen/chat_cell_horizontal_spacing_margin"
+    xmlns:android="http://schemas.android.com/apk/res/android">
+!     <TextView android:textSize="11.0sp" android:textColor="?theme_chat_blocked_text" android:gravity="center" android:id="@id/chat_list_adapter_item_blocked" android:background="?theme_chat_blocked_bg" android:paddingTop="7.5dip" android:paddingBottom="7.5dip" android:layout_width="fill_parent" style="@style/UiKit.TextView" />
+  </RelativeLayout>
+\ No newline at end of file
+--- 1,5 ----
+  <?xml version="1.0" encoding="utf-8"?>
+! <RelativeLayout android:background="?selectableItemBackground" android:paddingLeft="0px" android:paddingTop="0px" android:paddingRight="0px" android:paddingBottom="@dimen/chat_cell_vertical_spacing_padding" android:layout_width="0px" android:layout_height="0px" android:layout_marginLeft="0px" android:layout_marginRight="@dimen/chat_cell_horizontal_spacing_margin"
+    xmlns:android="http://schemas.android.com/apk/res/android">
+!     <TextView android:textSize="0sp" android:textColor="?theme_chat_blocked_text" android:gravity="center" android:id="@id/chat_list_adapter_item_blocked" android:background="?theme_chat_blocked_bg" android:paddingTop="0dip" android:paddingBottom="0dip" android:layout_width="fill_parent" style="@style/UiKit.TextView" />
+  </RelativeLayout>
+\ No newline at end of file
\ No newline at end of file
diff --git a/patches/noblocked/README.md b/patches/noblocked/README.md
index 593b552..c40d519 100644
--- a/patches/noblocked/README.md
+++ b/patches/noblocked/README.md
@@ -42,4 +42,5 @@ This patch completely hides the "# Blocked Message(s)" thing.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/nonearby/963.patch b/patches/nonearby/963.patch
new file mode 100644
index 0000000..725ce31
--- /dev/null
+++ b/patches/nonearby/963.patch
@@ -0,0 +1,100 @@
+diff -crB from/smali/com/discord/widgets/friends/NearbyManager.smali to/smali/com/discord/widgets/friends/NearbyManager.smali
+*** from/smali/com/discord/widgets/friends/NearbyManager.smali	2019-10-01 22:09:21.200659396 +0300
+--- to/smali/com/discord/widgets/friends/NearbyManager.smali	2019-10-01 22:10:03.627608148 +0300
+***************
+*** 443,514 ****
+  
+  # virtual methods
+  .method public final activateNearby()V
+!     .locals 9
+! 
+!     .line 58
+!     iget-object v0, p0, Lcom/discord/widgets/friends/NearbyManager;->messagesClient:Lcom/google/android/gms/nearby/messages/MessagesClient;
+! 
+!     if-nez v0, :cond_0
+! 
+!     return-void
+! 
+!     .line 59
+!     :cond_0
+!     iget-object v1, p0, Lcom/discord/widgets/friends/NearbyManager;->outboundMessage:Lcom/google/android/gms/nearby/messages/Message;
+! 
+!     if-nez v1, :cond_1
+! 
+!     return-void
+! 
+!     .line 60
+!     :cond_1
+!     iget-object v2, p0, Lcom/discord/widgets/friends/NearbyManager;->messagePublishOptions:Lcom/google/android/gms/nearby/messages/PublishOptions;
+! 
+!     if-nez v2, :cond_2
+! 
+!     return-void
+! 
+!     .line 61
+!     :cond_2
+!     iget-object v3, p0, Lcom/discord/widgets/friends/NearbyManager;->messageListener:Lcom/google/android/gms/nearby/messages/MessageListener;
+! 
+!     if-nez v3, :cond_3
+! 
+!     return-void
+! 
+!     .line 62
+!     :cond_3
+!     iget-object v4, p0, Lcom/discord/widgets/friends/NearbyManager;->subscribeOptions:Lcom/google/android/gms/nearby/messages/SubscribeOptions;
+! 
+!     if-nez v4, :cond_4
+! 
+!     return-void
+! 
+!     .line 64
+!     :cond_4
+!     iget-object v5, p0, Lcom/discord/widgets/friends/NearbyManager;->nearbyStateSubject:Lrx/subjects/BehaviorSubject;
+! 
+!     new-instance v6, Lcom/discord/widgets/friends/NearbyManager$NearbyState$Connected;
+! 
+!     new-instance v7, Ljava/util/HashSet;
+! 
+!     iget-object v8, p0, Lcom/discord/widgets/friends/NearbyManager;->nearbyUserIds:Ljava/util/HashSet;
+! 
+!     check-cast v8, Ljava/util/Collection;
+! 
+!     invoke-direct {v7, v8}, Ljava/util/HashSet;-><init>(Ljava/util/Collection;)V
+! 
+!     check-cast v7, Ljava/util/Set;
+! 
+!     invoke-direct {v6, v7}, Lcom/discord/widgets/friends/NearbyManager$NearbyState$Connected;-><init>(Ljava/util/Set;)V
+! 
+!     invoke-virtual {v5, v6}, Lrx/subjects/BehaviorSubject;->onNext(Ljava/lang/Object;)V
+! 
+!     .line 66
+!     invoke-virtual {v0, v1, v2}, Lcom/google/android/gms/nearby/messages/MessagesClient;->a(Lcom/google/android/gms/nearby/messages/Message;Lcom/google/android/gms/nearby/messages/PublishOptions;)Lcom/google/android/gms/tasks/Task;
+! 
+!     .line 67
+!     invoke-virtual {v0, v3, v4}, Lcom/google/android/gms/nearby/messages/MessagesClient;->a(Lcom/google/android/gms/nearby/messages/MessageListener;Lcom/google/android/gms/nearby/messages/SubscribeOptions;)Lcom/google/android/gms/tasks/Task;
+  
+      return-void
+  .end method
+--- 443,449 ----
+  
+  # virtual methods
+  .method public final activateNearby()V
+!     .locals 0
+  
+      return-void
+  .end method
+***************
+*** 608,619 ****
+  
+  .method public final initialize(J)V
+      .locals 0
+- 
+-     .line 34
+-     invoke-direct {p0, p1, p2}, Lcom/discord/widgets/friends/NearbyManager;->setupBroadcaster(J)V
+- 
+-     .line 35
+-     invoke-direct {p0}, Lcom/discord/widgets/friends/NearbyManager;->setupListener()V
+- 
+      return-void
+  .end method
+--- 543,547 ----
diff --git a/patches/nonearby/README.md b/patches/nonearby/README.md
index e45616d..8de1f40 100644
--- a/patches/nonearby/README.md
+++ b/patches/nonearby/README.md
@@ -45,4 +45,5 @@ This patch nulls a bunch of nearby friends features for privacy.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/noprofilestrip/963.patch b/patches/noprofilestrip/963.patch
new file mode 100644
index 0000000..400dc30
--- /dev/null
+++ b/patches/noprofilestrip/963.patch
@@ -0,0 +1,55 @@
+diff -crB com.discord-910-base/smali/com/discord/widgets/user/WidgetUserProfileStrip.smali com.discord-910/smali/com/discord/widgets/user/WidgetUserProfileStrip.smali
+*** com.discord-910-base/smali/com/discord/widgets/user/WidgetUserProfileStrip.smali	2019-06-25 14:39:18.242542912 +0300
+--- com.discord-910/smali/com/discord/widgets/user/WidgetUserProfileStrip.smali	2019-06-25 14:44:50.891235106 +0300
+***************
+*** 440,454 ****
+  
+      move-result-object v2
+  
+!     invoke-virtual {p1}, Lcom/discord/widgets/user/WidgetUserProfileStrip$Model;->getUser()Lcom/discord/models/domain/ModelUser;
+! 
+!     move-result-object v4
+! 
+!     invoke-virtual {v4}, Lcom/discord/models/domain/ModelUser;->getUsername()Ljava/lang/String;
+! 
+!     move-result-object v4
+! 
+!     check-cast v4, Ljava/lang/CharSequence;
+  
+      invoke-virtual {v2, v4}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
+  
+--- 440,446 ----
+  
+      move-result-object v2
+  
+!     const-string v4, ""
+  
+      invoke-virtual {v2, v4}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
+  
+***************
+*** 457,471 ****
+  
+      move-result-object v2
+  
+!     invoke-virtual {p1}, Lcom/discord/widgets/user/WidgetUserProfileStrip$Model;->getUser()Lcom/discord/models/domain/ModelUser;
+! 
+!     move-result-object p1
+! 
+!     invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->getDiscriminatorWithPadding()Ljava/lang/String;
+! 
+!     move-result-object p1
+! 
+!     check-cast p1, Ljava/lang/CharSequence;
+  
+      invoke-virtual {v2, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
+  
+--- 449,455 ----
+  
+      move-result-object v2
+  
+!     const-string p1, ""
+  
+      invoke-virtual {v2, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
+  
+Only in com.discord-910/smali/com/discord/widgets/user: WidgetUserProfileStrip.smali.orig
+Only in com.discord-910/smali/com/discord/widgets/user: WidgetUserProfileStrip.smali.rej
diff --git a/patches/noprofilestrip/README.md b/patches/noprofilestrip/README.md
index 677c7c4..e091465 100644
--- a/patches/noprofilestrip/README.md
+++ b/patches/noprofilestrip/README.md
@@ -40,4 +40,5 @@ This patch removes the "profile strip" from the left side menu, helping remove P
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/nospoiler/963.patch b/patches/nospoiler/963.patch
new file mode 100644
index 0000000..3bde8f1
--- /dev/null
+++ b/patches/nospoiler/963.patch
@@ -0,0 +1,64 @@
+diff -crB from/smali/com/discord/models/domain/ModelMessageEmbed.smali to/smali/com/discord/models/domain/ModelMessageEmbed.smali
+*** from/smali/com/discord/models/domain/ModelMessageEmbed.smali	2019-10-01 22:09:20.587321985 +0300
+--- to/smali/com/discord/models/domain/ModelMessageEmbed.smali	2019-10-01 22:10:10.570987647 +0300
+***************
+*** 1897,1926 ****
+  .end method
+  
+  .method public isSpoilerAttachment()Z
+!     .locals 2
+! 
+!     .line 135
+!     invoke-virtual {p0}, Lcom/discord/models/domain/ModelMessageEmbed;->isAttachment()Z
+! 
+!     move-result v0
+! 
+!     if-eqz v0, :cond_0
+! 
+!     iget-object v0, p0, Lcom/discord/models/domain/ModelMessageEmbed;->title:Ljava/lang/String;
+! 
+!     const-string v1, "SPOILER_"
+! 
+!     invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+! 
+!     move-result v0
+! 
+!     if-eqz v0, :cond_0
+! 
+!     const/4 v0, 0x1
+! 
+!     return v0
+! 
+!     :cond_0
+      const/4 v0, 0x0
+  
+      return v0
+--- 1897,1903 ----
+  .end method
+  
+  .method public isSpoilerAttachment()Z
+!     .locals 0
+      const/4 v0, 0x0
+  
+      return v0
+diff -crB from/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali to/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali
+*** from/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali	2019-10-01 22:09:20.983991289 +0300
+--- to/smali/com/discord/utilities/textprocessing/node/SpoilerNode.smali	2019-10-01 22:10:10.570987647 +0300
+***************
+*** 204,211 ****
+  .method public final isRevealed()Z
+      .locals 1
+  
+!     .line 23
+!     iget-boolean v0, p0, Lcom/discord/utilities/textprocessing/node/SpoilerNode;->isRevealed:Z
+  
+      return v0
+  .end method
+--- 204,210 ----
+  .method public final isRevealed()Z
+      .locals 1
+  
+!     const/4 v0, 0x1
+  
+      return v0
+  .end method
diff --git a/patches/nospoiler/README.md b/patches/nospoiler/README.md
index 9e057d7..c72f138 100644
--- a/patches/nospoiler/README.md
+++ b/patches/nospoiler/README.md
@@ -42,4 +42,5 @@ I personally won't be using it as I like to use them as CWs, but I do acknowledg
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/notrack/963.patch b/patches/notrack/963.patch
new file mode 100644
index 0000000..09fbe30
--- /dev/null
+++ b/patches/notrack/963.patch
@@ -0,0 +1,3078 @@
+diff -crB com.discord-963-base/AndroidManifest.xml com.discord-963/AndroidManifest.xml
+*** com.discord-963-base/AndroidManifest.xml	2019-10-01 22:10:01.214258768 +0300
+--- com.discord-963/AndroidManifest.xml	2019-10-01 22:57:45.859903528 +0300
+***************
+*** 112,119 ****
+              <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
+          </provider>
+          <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
+!         <meta-data android:name="io.fabric.ApiKey" android:value="eaccfe98b3572a0a8721a8c3b10f9909018f5ec6"/>
+!         <meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="AIzaSyD-4L6bgKMixqBRtrG2UktVXK6IexXlsog"/>
+          <activity android:name="com.yalantis.ucrop.UCropActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
+          <provider android:authorities="com.discord.workmanager-init" android:directBootAware="false" android:exported="false" android:multiprocess="true" android:name="androidx.work.impl.WorkManagerInitializer"/>
+          <service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
+--- 112,119 ----
+              <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
+          </provider>
+          <meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
+!         <meta-data android:name="io.fabric.ApiKey" android:value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"/>
+!         <meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"/>
+          <activity android:name="com.yalantis.ucrop.UCropActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
+          <provider android:authorities="com.discord.workmanager-init" android:directBootAware="false" android:exported="false" android:multiprocess="true" android:name="androidx.work.impl.WorkManagerInitializer"/>
+          <service android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:name="androidx.work.impl.background.systemalarm.SystemAlarmService"/>
+diff -crB com.discord-963-base/res/values/strings.xml com.discord-963/res/values/strings.xml
+*** com.discord-963-base/res/values/strings.xml	2019-10-01 22:09:16.950631138 +0300
+--- com.discord-963/res/values/strings.xml	2019-10-01 22:57:45.863236883 +0300
+***************
+*** 1008,1014 ****
+      <string name="cloud_sync_modal_error_header">Unable to sync cloud saves</string>
+      <string name="cloud_sync_modal_or">OR</string>
+      <string name="collapse_category">Collapse Category</string>
+!     <string name="com.crashlytics.android.build_id">840df02b-cf80-4d6b-a87d-a2661a9d07da</string>
+      <string name="coming_soon">Coming Soon</string>
+      <string name="coming_soon_notifications">Granular notification control only works on desktop apps at the moment. For now use the iOS notification settings.</string>
+      <string name="coming_soon_title">COMING SOON!</string>
+--- 1008,1014 ----
+      <string name="cloud_sync_modal_error_header">Unable to sync cloud saves</string>
+      <string name="cloud_sync_modal_or">OR</string>
+      <string name="collapse_category">Collapse Category</string>
+!     <string name="com.crashlytics.android.build_id">00000000-0000-0000-0000-000000000000</string>
+      <string name="coming_soon">Coming Soon</string>
+      <string name="coming_soon_notifications">Granular notification control only works on desktop apps at the moment. For now use the iOS notification settings.</string>
+      <string name="coming_soon_title">COMING SOON!</string>
+Only in com.discord-963/res/values: strings.xml.orig
+diff -crB com.discord-963-base/smali/com/crashlytics/android/answers/ab.smali com.discord-963/smali/com/crashlytics/android/answers/ab.smali
+*** com.discord-963-base/smali/com/crashlytics/android/answers/ab.smali	2019-10-01 22:09:20.407320788 +0300
+--- com.discord-963/smali/com/crashlytics/android/answers/ab.smali	2019-10-01 22:57:52.643281841 +0300
+***************
+*** 38,205 ****
+  
+  # virtual methods
+  .method public final h(Ljava/util/List;)Z
+!     .locals 9
+!     .annotation system Ldalvik/annotation/Signature;
+!         value = {
+!             "(",
+!             "Ljava/util/List<",
+!             "Ljava/io/File;",
+!             ">;)Z"
+!         }
+!     .end annotation
+  
+!     .line 34
+!     invoke-virtual {p0}, Lcom/crashlytics/android/answers/ab;->CI()Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     const-string v1, "X-CRASHLYTICS-API-CLIENT-TYPE"
+! 
+!     const-string v2, "android"
+! 
+!     .line 38
+!     invoke-virtual {v0, v1, v2}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     iget-object v1, p0, Lcom/crashlytics/android/answers/ab;->oR:Lio/fabric/sdk/android/i;
+! 
+!     .line 39
+!     invoke-virtual {v1}, Lio/fabric/sdk/android/i;->getVersion()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "X-CRASHLYTICS-API-CLIENT-VERSION"
+! 
+!     invoke-virtual {v0, v2, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     iget-object v1, p0, Lcom/crashlytics/android/answers/ab;->pO:Ljava/lang/String;
+! 
+!     const-string v2, "X-CRASHLYTICS-API-KEY"
+! 
+!     .line 40
+!     invoke-virtual {v0, v2, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 44
+!     invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
+! 
+!     move-result-object v1
+! 
+!     const/4 v2, 0x0
+! 
+!     const/4 v3, 0x0
+! 
+!     :goto_0
+!     invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
+! 
+!     move-result v4
+! 
+!     const/4 v5, 0x1
+! 
+!     if-eqz v4, :cond_0
+! 
+!     invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+! 
+!     move-result-object v4
+! 
+!     check-cast v4, Ljava/io/File;
+! 
+!     .line 45
+!     invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+! 
+!     move-result-object v6
+! 
+!     const-string v7, "session_analytics_file_"
+! 
+!     invoke-virtual {v7, v6}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v6
+! 
+!     invoke-virtual {v4}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v7
+! 
+!     const-string v8, "application/vnd.crashlytics.android.events"
+! 
+!     invoke-virtual {v0, v6, v7, v8, v4}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     add-int/2addr v3, v5
+! 
+!     goto :goto_0
+! 
+!     .line 49
+!     :cond_0
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v1
+! 
+!     new-instance v3, Ljava/lang/StringBuilder;
+! 
+!     const-string v4, "Sending "
+! 
+!     invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 50
+!     invoke-interface {p1}, Ljava/util/List;->size()I
+! 
+!     move-result p1
+! 
+!     invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
+! 
+!     const-string p1, " analytics files to "
+! 
+!     invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     .line 1100
+!     iget-object p1, p0, Lio/fabric/sdk/android/a/b/a;->url:Ljava/lang/String;
+! 
+!     .line 50
+!     invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object p1
+! 
+!     const-string v3, "Answers"
+! 
+!     .line 49
+!     invoke-interface {v1, v3, p1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 51
+!     invoke-virtual {v0}, Lio/fabric/sdk/android/a/e/d;->Dv()I
+! 
+!     move-result p1
+! 
+!     .line 52
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v0
+! 
+!     invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v4, "Response code for analytics file send is "
+! 
+!     invoke-virtual {v4, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     invoke-interface {v0, v3, v1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 55
+!     invoke-static {p1}, Lio/fabric/sdk/android/a/b/v;->di(I)I
+! 
+!     move-result p1
+! 
+!     if-nez p1, :cond_1
+! 
+!     return v5
+! 
+!     :cond_1
+!     return v2
+  .end method
+--- 38,44 ----
+  
+  # virtual methods
+  .method public final h(Ljava/util/List;)Z
+!     .locals 0
+  
+!     return-void
+  .end method
+Only in com.discord-963/smali/com/crashlytics/android/answers: ab.smali.orig
+Only in com.discord-963/smali/com/crashlytics/android/answers: ab.smali.rej
+diff -crB com.discord-963-base/smali/com/crashlytics/android/core/ah.smali com.discord-963/smali/com/crashlytics/android/core/ah.smali
+*** com.discord-963-base/smali/com/crashlytics/android/core/ah.smali	2019-10-01 22:09:20.440654343 +0300
+--- com.discord-963/smali/com/crashlytics/android/core/ah.smali	2019-10-01 22:57:59.346659623 +0300
+***************
+*** 29,465 ****
+  .end method
+  
+  .method private static a(Lio/fabric/sdk/android/a/e/d;Lcom/crashlytics/android/core/aq;)Lio/fabric/sdk/android/a/e/d;
+!     .locals 6
+  
+!     .line 62
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getIdentifier()Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     const-string v1, "report_id"
+! 
+!     const/4 v2, 0x0
+! 
+!     .line 3530
+!     invoke-virtual {p0, v1, v2, v0}, Lio/fabric/sdk/android/a/e/d;->k(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     .line 63
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->cU()[Ljava/io/File;
+! 
+!     move-result-object p1
+! 
+!     array-length v0, p1
+! 
+!     const/4 v1, 0x0
+! 
+!     :goto_0
+!     if-ge v1, v0, :cond_a
+! 
+!     aget-object v2, p1, v1
+! 
+!     .line 64
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v4, "minidump"
+! 
+!     invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     const-string v4, "application/octet-stream"
+! 
+!     if-eqz v3, :cond_0
+! 
+!     .line 66
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "minidump_file"
+! 
+!     .line 65
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto/16 :goto_1
+! 
+!     .line 67
+!     :cond_0
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "metadata"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_1
+! 
+!     .line 69
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "crash_meta_file"
+! 
+!     .line 68
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto/16 :goto_1
+! 
+!     .line 70
+!     :cond_1
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "binaryImages"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_2
+! 
+!     .line 72
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "binary_images_file"
+! 
+!     .line 71
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto/16 :goto_1
+! 
+!     .line 73
+!     :cond_2
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "session"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_3
+! 
+!     .line 75
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "session_meta_file"
+! 
+!     .line 74
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto/16 :goto_1
+! 
+!     .line 76
+!     :cond_3
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "app"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_4
+! 
+!     .line 78
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "app_meta_file"
+! 
+!     .line 77
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto :goto_1
+! 
+!     .line 79
+!     :cond_4
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "device"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_5
+! 
+!     .line 81
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "device_meta_file"
+! 
+!     .line 80
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto :goto_1
+! 
+!     .line 82
+!     :cond_5
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "os"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_6
+! 
+!     .line 84
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "os_meta_file"
+! 
+!     .line 83
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto :goto_1
+! 
+!     .line 85
+!     :cond_6
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "user"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_7
+! 
+!     .line 87
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "user_meta_file"
+! 
+!     .line 86
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto :goto_1
+! 
+!     .line 88
+!     :cond_7
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "logs"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_8
+! 
+!     .line 90
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "logs_file"
+! 
+!     .line 89
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     goto :goto_1
+! 
+!     .line 91
+!     :cond_8
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "keys"
+! 
+!     invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v3
+! 
+!     if-eqz v3, :cond_9
+! 
+!     .line 93
+!     invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v5, "keys_file"
+! 
+!     .line 92
+!     invoke-virtual {p0, v5, v3, v4, v2}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     :cond_9
+!     :goto_1
+!     add-int/lit8 v1, v1, 0x1
+! 
+!     goto/16 :goto_0
+! 
+!     :cond_a
+!     return-object p0
+  .end method
+  
+  
+  # virtual methods
+  .method public final a(Lcom/crashlytics/android/core/u;)Z
+!     .locals 5
+! 
+!     .line 36
+!     invoke-virtual {p0}, Lcom/crashlytics/android/core/ah;->CI()Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 39
+!     iget-object v1, p1, Lcom/crashlytics/android/core/u;->pO:Ljava/lang/String;
+! 
+!     .line 3052
+!     new-instance v2, Ljava/lang/StringBuilder;
+! 
+!     const-string v3, "Crashlytics Android SDK/"
+! 
+!     invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     iget-object v3, p0, Lcom/crashlytics/android/core/ah;->oR:Lio/fabric/sdk/android/i;
+! 
+!     .line 3054
+!     invoke-virtual {v3}, Lio/fabric/sdk/android/i;->getVersion()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v2
+! 
+!     const-string v3, "User-Agent"
+! 
+!     .line 3053
+!     invoke-virtual {v0, v3, v2}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v2
+! 
+!     const-string v3, "X-CRASHLYTICS-API-CLIENT-TYPE"
+! 
+!     const-string v4, "android"
+! 
+!     .line 3055
+!     invoke-virtual {v2, v3, v4}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v2
+! 
+!     iget-object v3, p0, Lcom/crashlytics/android/core/ah;->oR:Lio/fabric/sdk/android/i;
+! 
+!     .line 3056
+!     invoke-virtual {v3}, Lio/fabric/sdk/android/i;->getVersion()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     const-string v4, "X-CRASHLYTICS-API-CLIENT-VERSION"
+! 
+!     invoke-virtual {v2, v4, v3}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v2
+! 
+!     const-string v3, "X-CRASHLYTICS-API-KEY"
+! 
+!     .line 3057
+!     invoke-virtual {v2, v3, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     .line 40
+!     iget-object p1, p1, Lcom/crashlytics/android/core/u;->rZ:Lcom/crashlytics/android/core/aq;
+! 
+!     invoke-static {v0, p1}, Lcom/crashlytics/android/core/ah;->a(Lio/fabric/sdk/android/a/e/d;Lcom/crashlytics/android/core/aq;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object p1
+! 
+!     .line 42
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v0
+! 
+!     new-instance v1, Ljava/lang/StringBuilder;
+! 
+!     const-string v2, "Sending report to: "
+! 
+!     invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 3100
+!     iget-object v2, p0, Lio/fabric/sdk/android/a/b/a;->url:Ljava/lang/String;
+! 
+!     .line 42
+!     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "CrashlyticsCore"
+! 
+!     invoke-interface {v0, v2, v1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 44
+!     invoke-virtual {p1}, Lio/fabric/sdk/android/a/e/d;->Dv()I
+! 
+!     move-result p1
+! 
+!     .line 46
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v0
+! 
+!     invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v3, "Result was: "
+! 
+!     invoke-virtual {v3, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     invoke-interface {v0, v2, v1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 48
+!     invoke-static {p1}, Lio/fabric/sdk/android/a/b/v;->di(I)I
+! 
+!     move-result p1
+! 
+!     if-nez p1, :cond_0
+! 
+!     const/4 p1, 0x1
+! 
+!     return p1
+! 
+!     :cond_0
+!     const/4 p1, 0x0
+  
+!     return p1
+  .end method
+--- 29,43 ----
+  .end method
+  
+  .method private static a(Lio/fabric/sdk/android/a/e/d;Lcom/crashlytics/android/core/aq;)Lio/fabric/sdk/android/a/e/d;
+!     .locals 0
+  
+!     return-void
+  .end method
+  
+  
+  # virtual methods
+  .method public final a(Lcom/crashlytics/android/core/u;)Z
+!     .locals 0
+  
+!     return-void
+  .end method
+Only in com.discord-963/smali/com/crashlytics/android/core: ah.smali.orig
+Only in com.discord-963/smali/com/crashlytics/android/core: ah.smali.rej
+diff -crB com.discord-963-base/smali/com/crashlytics/android/core/x.smali com.discord-963/smali/com/crashlytics/android/core/x.smali
+*** com.discord-963-base/smali/com/crashlytics/android/core/x.smali	2019-10-01 22:09:20.467321187 +0300
+--- com.discord-963/smali/com/crashlytics/android/core/x.smali	2019-10-01 22:58:05.906703122 +0300
+***************
+*** 31,371 ****
+  
+  # virtual methods
+  .method public final a(Lcom/crashlytics/android/core/u;)Z
+!     .locals 14
+  
+!     .line 59
+!     invoke-virtual {p0}, Lcom/crashlytics/android/core/x;->CI()Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 3075
+!     iget-object v1, p1, Lcom/crashlytics/android/core/u;->pO:Ljava/lang/String;
+! 
+!     const-string v2, "X-CRASHLYTICS-API-KEY"
+! 
+!     invoke-virtual {v0, v2, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     const-string v1, "X-CRASHLYTICS-API-CLIENT-TYPE"
+! 
+!     const-string v2, "android"
+! 
+!     .line 3076
+!     invoke-virtual {v0, v1, v2}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     iget-object v1, p0, Lcom/crashlytics/android/core/x;->oR:Lio/fabric/sdk/android/i;
+! 
+!     .line 3077
+!     invoke-virtual {v1}, Lio/fabric/sdk/android/i;->getVersion()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "X-CRASHLYTICS-API-CLIENT-VERSION"
+! 
+!     invoke-virtual {v0, v2, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 3080
+!     iget-object v1, p1, Lcom/crashlytics/android/core/u;->rZ:Lcom/crashlytics/android/core/aq;
+! 
+!     invoke-interface {v1}, Lcom/crashlytics/android/core/aq;->cV()Ljava/util/Map;
+! 
+!     move-result-object v1
+! 
+!     .line 3082
+!     invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
+! 
+!     move-result-object v1
+! 
+!     invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
+! 
+!     move-result-object v1
+! 
+!     :goto_0
+!     invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
+! 
+!     move-result v2
+! 
+!     if-eqz v2, :cond_0
+! 
+!     invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+! 
+!     move-result-object v2
+! 
+!     check-cast v2, Ljava/util/Map$Entry;
+! 
+!     .line 3868
+!     invoke-interface {v2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
+! 
+!     move-result-object v3
+! 
+!     check-cast v3, Ljava/lang/String;
+! 
+!     invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
+! 
+!     move-result-object v2
+! 
+!     check-cast v2, Ljava/lang/String;
+! 
+!     invoke-virtual {v0, v3, v2}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     goto :goto_0
+! 
+!     .line 61
+!     :cond_0
+!     iget-object p1, p1, Lcom/crashlytics/android/core/u;->rZ:Lcom/crashlytics/android/core/aq;
+! 
+!     .line 4089
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getIdentifier()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const/4 v2, 0x0
+! 
+!     const-string v3, "report[identifier]"
+! 
+!     .line 4530
+!     invoke-virtual {v0, v3, v2, v1}, Lio/fabric/sdk/android/a/e/d;->k(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     .line 4091
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->cU()[Ljava/io/File;
+! 
+!     move-result-object v1
+! 
+!     array-length v1, v1
+! 
+!     const-string v2, "application/octet-stream"
+! 
+!     const-string v3, " to report "
+! 
+!     const/4 v4, 0x0
+! 
+!     const/4 v5, 0x1
+! 
+!     const-string v6, "CrashlyticsCore"
+! 
+!     if-ne v1, v5, :cond_1
+! 
+!     .line 4092
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v1
+! 
+!     new-instance v7, Ljava/lang/StringBuilder;
+! 
+!     const-string v8, "Adding single file "
+! 
+!     invoke-direct {v7, v8}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getFileName()Ljava/lang/String;
+! 
+!     move-result-object v8
+! 
+!     invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     .line 4093
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getIdentifier()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v3
+! 
+!     .line 4092
+!     invoke-interface {v1, v6, v3}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 4094
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getFileName()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     .line 4095
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getFile()Ljava/io/File;
+! 
+!     move-result-object p1
+! 
+!     const-string v3, "report[file]"
+! 
+!     .line 4094
+!     invoke-virtual {v0, v3, v1, v2, p1}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     goto :goto_2
+! 
+!     .line 4099
+!     :cond_1
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->cU()[Ljava/io/File;
+! 
+!     move-result-object v1
+! 
+!     array-length v7, v1
+! 
+!     const/4 v8, 0x0
+! 
+!     const/4 v9, 0x0
+! 
+!     :goto_1
+!     if-ge v8, v7, :cond_2
+! 
+!     aget-object v10, v1, v8
+! 
+!     .line 4100
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v11
+! 
+!     new-instance v12, Ljava/lang/StringBuilder;
+! 
+!     const-string v13, "Adding file "
+! 
+!     invoke-direct {v12, v13}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     invoke-virtual {v10}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v13
+! 
+!     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v12, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     .line 4101
+!     invoke-interface {p1}, Lcom/crashlytics/android/core/aq;->getIdentifier()Ljava/lang/String;
+! 
+!     move-result-object v13
+! 
+!     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v12
+! 
+!     .line 4100
+!     invoke-interface {v11, v6, v12}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 4102
+!     new-instance v11, Ljava/lang/StringBuilder;
+! 
+!     const-string v12, "report[file"
+! 
+!     invoke-direct {v11, v12}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     invoke-virtual {v11, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
+! 
+!     const-string v12, "]"
+! 
+!     invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v11
+! 
+!     invoke-virtual {v10}, Ljava/io/File;->getName()Ljava/lang/String;
+! 
+!     move-result-object v12
+! 
+!     invoke-virtual {v0, v11, v12, v2, v10}, Lio/fabric/sdk/android/a/e/d;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     add-int/2addr v9, v5
+! 
+!     add-int/lit8 v8, v8, 0x1
+! 
+!     goto :goto_1
+! 
+!     .line 63
+!     :cond_2
+!     :goto_2
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object p1
+! 
+!     new-instance v1, Ljava/lang/StringBuilder;
+! 
+!     const-string v2, "Sending report to: "
+! 
+!     invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 5100
+!     iget-object v2, p0, Lio/fabric/sdk/android/a/b/a;->url:Ljava/lang/String;
+! 
+!     .line 63
+!     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     invoke-interface {p1, v6, v1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 65
+!     invoke-virtual {v0}, Lio/fabric/sdk/android/a/e/d;->Dv()I
+! 
+!     move-result p1
+! 
+!     .line 67
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v1
+! 
+!     new-instance v2, Ljava/lang/StringBuilder;
+! 
+!     const-string v3, "Create report request ID: "
+! 
+!     invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     const-string v3, "X-REQUEST-ID"
+! 
+!     .line 68
+!     invoke-virtual {v0, v3}, Lio/fabric/sdk/android/a/e/d;->dI(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     .line 67
+!     invoke-interface {v1, v6, v0}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 69
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v0
+! 
+!     invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "Result was: "
+! 
+!     invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     invoke-interface {v0, v6, v1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 71
+!     invoke-static {p1}, Lio/fabric/sdk/android/a/b/v;->di(I)I
+! 
+!     move-result p1
+! 
+!     if-nez p1, :cond_3
+! 
+!     return v5
+! 
+!     :cond_3
+!     return v4
+  .end method
+--- 31,37 ----
+  
+  # virtual methods
+  .method public final a(Lcom/crashlytics/android/core/u;)Z
+!     .locals 0
+  
+!     return-void
+  .end method
+Only in com.discord-963/smali/com/crashlytics/android/core: x.smali.orig
+Only in com.discord-963/smali/com/crashlytics/android/core: x.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/utilities/analytics/AdjustConfig$AdjustLifecycleListener.smali com.discord-963/smali/com/discord/utilities/analytics/AdjustConfig$AdjustLifecycleListener.smali
+*** com.discord-963-base/smali/com/discord/utilities/analytics/AdjustConfig$AdjustLifecycleListener.smali	2019-10-01 22:09:20.857323780 +0300
+--- com.discord-963/smali/com/discord/utilities/analytics/AdjustConfig$AdjustLifecycleListener.smali	2019-10-01 22:57:45.863236883 +0300
+***************
+*** 42,95 ****
+  .end method
+  
+  .method public final onActivityPaused(Landroid/app/Activity;)V
+!     .locals 1
+  
+-     .line 1050
+-     invoke-static {}, Lcom/adjust/sdk/e;->W()Lcom/adjust/sdk/k;
+- 
+-     move-result-object p1
+- 
+-     const/4 v0, 0x0
+- 
+-     .line 1396
+-     invoke-virtual {p1, v0}, Lcom/adjust/sdk/k;->e(Ljava/lang/String;)Z
+- 
+-     move-result v0
+- 
+-     if-eqz v0, :cond_0
+- 
+-     .line 1094
+-     iget-object p1, p1, Lcom/adjust/sdk/k;->dk:Lcom/adjust/sdk/v;
+- 
+-     invoke-interface {p1}, Lcom/adjust/sdk/v;->onPause()V
+- 
+-     :cond_0
+      return-void
+  .end method
+  
+  .method public final onActivityResumed(Landroid/app/Activity;)V
+!     .locals 1
+! 
+!     .line 2045
+!     invoke-static {}, Lcom/adjust/sdk/e;->W()Lcom/adjust/sdk/k;
+! 
+!     move-result-object p1
+! 
+!     const/4 v0, 0x0
+! 
+!     .line 2396
+!     invoke-virtual {p1, v0}, Lcom/adjust/sdk/k;->e(Ljava/lang/String;)Z
+! 
+!     move-result v0
+! 
+!     if-eqz v0, :cond_0
+! 
+!     .line 2083
+!     iget-object p1, p1, Lcom/adjust/sdk/k;->dk:Lcom/adjust/sdk/v;
+! 
+!     invoke-interface {p1}, Lcom/adjust/sdk/v;->onResume()V
+  
+-     :cond_0
+      return-void
+  .end method
+  
+--- 42,55 ----
+  .end method
+  
+  .method public final onActivityPaused(Landroid/app/Activity;)V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+  .method public final onActivityResumed(Landroid/app/Activity;)V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+diff -crB com.discord-963-base/smali/com/discord/utilities/analytics/AdjustConfig.smali com.discord-963/smali/com/discord/utilities/analytics/AdjustConfig.smali
+*** com.discord-963-base/smali/com/discord/utilities/analytics/AdjustConfig.smali	2019-10-01 22:09:20.857323780 +0300
+--- com.discord-963/smali/com/discord/utilities/analytics/AdjustConfig.smali	2019-10-01 22:57:45.863236883 +0300
+***************
+*** 12,18 ****
+  
+  
+  # static fields
+! .field private static final ADJUST_APP_TOKEN:Ljava/lang/String; = "d8fcx8xdmrr4"
+  
+  .field private static final ADJUST_ENVIRONMENT:Ljava/lang/String;
+  
+--- 12,18 ----
+  
+  
+  # static fields
+! .field private static final ADJUST_APP_TOKEN:Ljava/lang/String; = "aaaaaaaaaaaa"
+  
+  .field private static final ADJUST_ENVIRONMENT:Ljava/lang/String;
+  
+***************
+*** 50,168 ****
+  
+  # virtual methods
+  .method public final init(Landroid/app/Application;Z)V
+!     .locals 3
+! 
+!     const-string v0, "application"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     if-eqz p2, :cond_0
+! 
+!     return-void
+! 
+!     .line 26
+!     :cond_0
+!     new-instance p2, Lcom/adjust/sdk/f;
+! 
+!     move-object v0, p1
+! 
+!     check-cast v0, Landroid/content/Context;
+! 
+!     sget-object v1, Lcom/discord/utilities/analytics/AdjustConfig;->ADJUST_ENVIRONMENT:Ljava/lang/String;
+! 
+!     const-string v2, "d8fcx8xdmrr4"
+! 
+!     invoke-direct {p2, v0, v2, v1}, Lcom/adjust/sdk/f;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 27
+!     sget-object v1, Lcom/discord/utilities/analytics/AdjustConfig$init$1;->INSTANCE:Lcom/discord/utilities/analytics/AdjustConfig$init$1;
+! 
+!     check-cast v1, Lcom/adjust/sdk/af;
+! 
+!     .line 1098
+!     iput-object v1, p2, Lcom/adjust/sdk/f;->cN:Lcom/adjust/sdk/af;
+! 
+!     .line 2035
+!     invoke-static {}, Lcom/adjust/sdk/e;->W()Lcom/adjust/sdk/k;
+! 
+!     move-result-object v1
+! 
+!     .line 2047
+!     iget-object v2, v1, Lcom/adjust/sdk/k;->dk:Lcom/adjust/sdk/v;
+! 
+!     if-eqz v2, :cond_1
+! 
+!     .line 2048
+!     invoke-static {}, Lcom/adjust/sdk/j;->X()Lcom/adjust/sdk/x;
+! 
+!     move-result-object p2
+! 
+!     const/4 v1, 0x0
+! 
+!     new-array v1, v1, [Ljava/lang/Object;
+! 
+!     const-string v2, "Adjust already initialized"
+! 
+!     invoke-interface {p2, v2, v1}, Lcom/adjust/sdk/x;->f(Ljava/lang/String;[Ljava/lang/Object;)V
+! 
+!     goto :goto_0
+! 
+!     .line 2052
+!     :cond_1
+!     iget-object v2, v1, Lcom/adjust/sdk/k;->cX:Ljava/util/List;
+! 
+!     iput-object v2, p2, Lcom/adjust/sdk/f;->cX:Ljava/util/List;
+! 
+!     .line 2053
+!     iget-object v2, v1, Lcom/adjust/sdk/k;->pushToken:Ljava/lang/String;
+! 
+!     iput-object v2, p2, Lcom/adjust/sdk/f;->pushToken:Ljava/lang/String;
+! 
+!     .line 2054
+!     iget-object v2, v1, Lcom/adjust/sdk/k;->cZ:Ljava/lang/Boolean;
+! 
+!     iput-object v2, p2, Lcom/adjust/sdk/f;->cZ:Ljava/lang/Boolean;
+! 
+!     .line 2055
+!     iget-boolean v2, v1, Lcom/adjust/sdk/k;->da:Z
+! 
+!     iput-boolean v2, p2, Lcom/adjust/sdk/f;->da:Z
+! 
+!     .line 2057
+!     invoke-static {p2}, Lcom/adjust/sdk/j;->b(Lcom/adjust/sdk/f;)Lcom/adjust/sdk/v;
+! 
+!     move-result-object v2
+! 
+!     iput-object v2, v1, Lcom/adjust/sdk/k;->dk:Lcom/adjust/sdk/v;
+! 
+!     .line 2059
+!     iget-object p2, p2, Lcom/adjust/sdk/f;->context:Landroid/content/Context;
+! 
+!     .line 2472
+!     new-instance v2, Lcom/adjust/sdk/k$2;
+! 
+!     invoke-direct {v2, v1, p2}, Lcom/adjust/sdk/k$2;-><init>(Lcom/adjust/sdk/k;Landroid/content/Context;)V
+! 
+!     .line 2480
+!     invoke-static {v2}, Lcom/adjust/sdk/az;->a(Ljava/lang/Runnable;)V
+! 
+!     .line 35
+!     :goto_0
+!     sget-object p2, Lcom/discord/utilities/analytics/AdjustConfig$init$2;->INSTANCE:Lcom/discord/utilities/analytics/AdjustConfig$init$2;
+! 
+!     check-cast p2, Lcom/adjust/sdk/ah;
+! 
+!     .line 3125
+!     invoke-static {v0, p2}, Lcom/adjust/sdk/az;->a(Landroid/content/Context;Lcom/adjust/sdk/ah;)V
+! 
+!     .line 41
+!     new-instance p2, Lcom/discord/utilities/analytics/AdjustConfig$AdjustLifecycleListener;
+! 
+!     invoke-direct {p2}, Lcom/discord/utilities/analytics/AdjustConfig$AdjustLifecycleListener;-><init>()V
+! 
+!     check-cast p2, Landroid/app/Application$ActivityLifecycleCallbacks;
+! 
+!     invoke-virtual {p1, p2}, Landroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
+  
+      return-void
+  .end method
+--- 50,56 ----
+  
+  # virtual methods
+  .method public final init(Landroid/app/Application;Z)V
+!     .locals 0
+  
+      return-void
+  .end method
+diff -crB com.discord-963-base/smali/com/discord/utilities/analytics/AnalyticsTracker$AdjustEventTracker.smali com.discord-963/smali/com/discord/utilities/analytics/AnalyticsTracker$AdjustEventTracker.smali
+*** com.discord-963-base/smali/com/discord/utilities/analytics/AnalyticsTracker$AdjustEventTracker.smali	2019-10-01 22:09:20.860657135 +0300
+--- com.discord-963/smali/com/discord/utilities/analytics/AnalyticsTracker$AdjustEventTracker.smali	2019-10-01 22:58:15.256765121 +0300
+***************
+*** 15,23 ****
+  
+  
+  # static fields
+! .field private static final EVENT_TOKEN_LOGIN:Ljava/lang/String; = "ctt5aq"
+  
+! .field private static final EVENT_TOKEN_REGISTER:Ljava/lang/String; = "ebn8ke"
+  
+  .field public static final INSTANCE:Lcom/discord/utilities/analytics/AnalyticsTracker$AdjustEventTracker;
+  
+--- 15,23 ----
+  
+  
+  # static fields
+! .field private static final EVENT_TOKEN_LOGIN:Ljava/lang/String; = "aaaaaa"
+  
+! .field private static final EVENT_TOKEN_REGISTER:Ljava/lang/String; = "aaaaaa"
+  
+  .field public static final INSTANCE:Lcom/discord/utilities/analytics/AnalyticsTracker$AdjustEventTracker;
+  
+***************
+*** 48,78 ****
+  
+  # virtual methods
+  .method public final trackLogin()V
+!     .locals 2
+! 
+!     .line 1009
+!     new-instance v0, Lcom/adjust/sdk/g;
+! 
+!     const-string v1, "ctt5aq"
+! 
+!     invoke-direct {v0, v1}, Lcom/adjust/sdk/g;-><init>(Ljava/lang/String;)V
+! 
+!     invoke-static {v0}, Lcom/adjust/sdk/e;->a(Lcom/adjust/sdk/g;)V
+  
+      return-void
+  .end method
+  
+  .method public final trackRegister()V
+!     .locals 2
+! 
+!     .line 1007
+!     new-instance v0, Lcom/adjust/sdk/g;
+! 
+!     const-string v1, "ebn8ke"
+! 
+!     invoke-direct {v0, v1}, Lcom/adjust/sdk/g;-><init>(Ljava/lang/String;)V
+! 
+!     invoke-static {v0}, Lcom/adjust/sdk/e;->a(Lcom/adjust/sdk/g;)V
+  
+      return-void
+  .end method
+--- 48,60 ----
+  
+  # virtual methods
+  .method public final trackLogin()V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+  .method public final trackRegister()V
+!     .locals 0
+  
+      return-void
+  .end method
+Only in com.discord-963/smali/com/discord/utilities/analytics: AnalyticsTracker$AdjustEventTracker.smali.orig
+Only in com.discord-963/smali/com/discord/utilities/analytics: AnalyticsTracker$AdjustEventTracker.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali com.discord-963/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali
+*** com.discord-963-base/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali	2019-10-01 22:09:20.860657135 +0300
+--- com.discord-963/smali/com/discord/utilities/analytics/AnalyticSuperProperties.smali	2019-10-01 23:00:19.560922352 +0300
+***************
+*** 173,179 ****
+  .method private final setBaselineProperties()V
+      .locals 3
+  
+!     const/16 v0, 0x8
+  
+      new-array v0, v0, [Lkotlin/Pair;
+  
+--- 173,179 ----
+  .method private final setBaselineProperties()V
+      .locals 3
+  
+!     const/16 v0, 0x4
+  
+      new-array v0, v0, [Lkotlin/Pair;
+  
+***************
+*** 233,312 ****
+  
+      aput-object v1, v0, v2
+  
+-     .line 68
+-     new-instance v1, Ljava/lang/StringBuilder;
+- 
+-     invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
+- 
+-     sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String;
+- 
+-     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+- 
+-     const-string v2, ", "
+- 
+-     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+- 
+-     sget-object v2, Landroid/os/Build;->PRODUCT:Ljava/lang/String;
+- 
+-     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+- 
+-     invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+- 
+-     move-result-object v1
+- 
+-     const-string v2, "device"
+- 
+-     invoke-static {v2, v1}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+- 
+-     move-result-object v1
+- 
+-     const/4 v2, 0x4
+- 
+-     aput-object v1, v0, v2
+- 
+-     const-string v1, "os"
+- 
+-     const-string v2, "Android"
+- 
+-     .line 69
+-     invoke-static {v1, v2}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+- 
+-     move-result-object v1
+- 
+-     const/4 v2, 0x5
+- 
+-     aput-object v1, v0, v2
+- 
+-     .line 70
+-     sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
+- 
+-     invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+- 
+-     move-result-object v1
+- 
+-     const-string v2, "os_sdk_version"
+- 
+-     invoke-static {v2, v1}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+- 
+-     move-result-object v1
+- 
+-     const/4 v2, 0x6
+- 
+-     aput-object v1, v0, v2
+- 
+-     .line 71
+-     sget-object v1, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String;
+- 
+-     const-string v2, "os_version"
+- 
+-     invoke-static {v2, v1}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+- 
+-     move-result-object v1
+- 
+-     const/4 v2, 0x7
+- 
+-     aput-object v1, v0, v2
+- 
+      .line 63
+      invoke-static {v0}, Lkotlin/a/ad;->a([Lkotlin/Pair;)Ljava/util/Map;
+  
+--- 233,238 ----
+***************
+*** 436,858 ****
+  .end method
+  
+  .method public final setAdvertiserId(Ljava/lang/String;)V
+!     .locals 1
+! 
+!     const-string v0, "advertiserId"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const-string v0, "device_advertiser_id"
+! 
+!     .line 29
+!     invoke-static {v0, p1}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+! 
+!     move-result-object p1
+! 
+!     invoke-static {p1}, Lkotlin/a/ad;->a(Lkotlin/Pair;)Ljava/util/Map;
+! 
+!     move-result-object p1
+! 
+!     invoke-direct {p0, p1}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V
+  
+      return-void
+  .end method
+  
+  .method public final setCampaignProperties(Landroid/content/Intent;)V
+!     .locals 7
+! 
+!     const-string v0, "intent"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     .line 33
+!     invoke-virtual {p1}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
+! 
+!     move-result-object p1
+! 
+!     if-eqz p1, :cond_9
+! 
+!     const-string v0, "referrer"
+! 
+!     invoke-virtual {p1, v0}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object p1
+! 
+!     if-nez p1, :cond_0
+! 
+!     goto/16 :goto_8
+! 
+!     :cond_0
+!     const-string v1, "intent.extras?.getString\u2026PERTY_REFERRER) ?: return"
+! 
+!     invoke-static {p1, v1}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const/4 v1, 0x1
+! 
+!     new-array v2, v1, [Lkotlin/Pair;
+! 
+!     .line 34
+!     invoke-static {v0, p1}, Lkotlin/q;->m(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
+! 
+!     move-result-object v0
+! 
+!     const/4 v3, 0x0
+! 
+!     aput-object v0, v2, v3
+! 
+!     invoke-static {v2}, Lkotlin/a/ad;->b([Lkotlin/Pair;)Ljava/util/Map;
+! 
+!     move-result-object v0
+! 
+!     .line 36
+!     check-cast p1, Ljava/lang/CharSequence;
+! 
+!     new-array v2, v1, [Ljava/lang/String;
+! 
+!     const-string v4, "&"
+! 
+!     aput-object v4, v2, v3
+! 
+!     .line 2199
+!     invoke-static {p1, v2, v3, v3}, Lkotlin/text/l;->b(Ljava/lang/CharSequence;[Ljava/lang/String;ZI)Ljava/util/List;
+! 
+!     move-result-object p1
+! 
+!     .line 37
+!     check-cast p1, Ljava/lang/Iterable;
+! 
+!     .line 101
+!     new-instance v2, Ljava/util/ArrayList;
+! 
+!     const/16 v4, 0xa
+! 
+!     invoke-static {p1, v4}, Lkotlin/a/m;->a(Ljava/lang/Iterable;I)I
+! 
+!     move-result v4
+! 
+!     invoke-direct {v2, v4}, Ljava/util/ArrayList;-><init>(I)V
+! 
+!     check-cast v2, Ljava/util/Collection;
+! 
+!     .line 102
+!     invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+! 
+!     move-result-object p1
+! 
+!     :goto_0
+!     invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
+! 
+!     move-result v4
+! 
+!     if-eqz v4, :cond_1
+! 
+!     invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+! 
+!     move-result-object v4
+! 
+!     .line 103
+!     check-cast v4, Ljava/lang/String;
+! 
+!     .line 38
+!     check-cast v4, Ljava/lang/CharSequence;
+! 
+!     new-array v5, v1, [Ljava/lang/String;
+! 
+!     const-string v6, "="
+! 
+!     aput-object v6, v5, v3
+! 
+!     .line 3199
+!     invoke-static {v4, v5, v3, v3}, Lkotlin/text/l;->b(Ljava/lang/CharSequence;[Ljava/lang/String;ZI)Ljava/util/List;
+! 
+!     move-result-object v4
+! 
+!     .line 38
+!     invoke-interface {v2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
+! 
+!     goto :goto_0
+! 
+!     .line 104
+!     :cond_1
+!     check-cast v2, Ljava/util/List;
+! 
+!     check-cast v2, Ljava/lang/Iterable;
+  
+-     .line 105
+-     new-instance p1, Ljava/util/ArrayList;
+- 
+-     invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
+- 
+-     check-cast p1, Ljava/util/Collection;
+- 
+-     .line 106
+-     invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+- 
+-     move-result-object v2
+- 
+-     :cond_2
+-     :goto_1
+-     invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
+- 
+-     move-result v4
+- 
+-     if-eqz v4, :cond_4
+- 
+-     invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+- 
+-     move-result-object v4
+- 
+-     move-object v5, v4
+- 
+-     check-cast v5, Ljava/util/List;
+- 
+-     .line 39
+-     invoke-interface {v5}, Ljava/util/List;->size()I
+- 
+-     move-result v5
+- 
+-     const/4 v6, 0x2
+- 
+-     if-ne v5, v6, :cond_3
+- 
+-     const/4 v5, 0x1
+- 
+-     goto :goto_2
+- 
+-     :cond_3
+-     const/4 v5, 0x0
+- 
+-     :goto_2
+-     if-eqz v5, :cond_2
+- 
+-     invoke-interface {p1, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
+- 
+-     goto :goto_1
+- 
+-     .line 107
+-     :cond_4
+-     check-cast p1, Ljava/util/List;
+- 
+-     check-cast p1, Ljava/lang/Iterable;
+- 
+-     .line 108
+-     new-instance v2, Ljava/util/ArrayList;
+- 
+-     invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
+- 
+-     check-cast v2, Ljava/util/Collection;
+- 
+-     .line 109
+-     invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+- 
+-     move-result-object p1
+- 
+-     :cond_5
+-     :goto_3
+-     invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
+- 
+-     move-result v4
+- 
+-     if-eqz v4, :cond_7
+- 
+-     invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+- 
+-     move-result-object v4
+- 
+-     move-object v5, v4
+- 
+-     check-cast v5, Ljava/util/List;
+- 
+-     .line 41
+-     invoke-interface {v5, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
+- 
+-     move-result-object v5
+- 
+-     check-cast v5, Ljava/lang/String;
+- 
+-     .line 42
+-     invoke-virtual {v5}, Ljava/lang/String;->hashCode()I
+- 
+-     move-result v6
+- 
+-     sparse-switch v6, :sswitch_data_0
+- 
+-     goto :goto_5
+- 
+-     :sswitch_0
+-     const-string v6, "utm_source"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_1
+-     const-string v6, "location"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_2
+-     const-string v6, "utm_medium"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_3
+-     const-string v6, "search_engine"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_4
+-     const-string v6, "mp_keyword"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_5
+-     const-string v6, "utm_term"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_6
+-     const-string v6, "utm_campaign"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_7
+-     const-string v6, "referring_domain"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     goto :goto_4
+- 
+-     :sswitch_8
+-     const-string v6, "utm_content"
+- 
+-     invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+- 
+-     move-result v5
+- 
+-     if-eqz v5, :cond_6
+- 
+-     :goto_4
+-     const/4 v5, 0x1
+- 
+-     goto :goto_6
+- 
+-     :cond_6
+-     :goto_5
+-     const/4 v5, 0x0
+- 
+-     :goto_6
+-     if-eqz v5, :cond_5
+- 
+-     .line 55
+-     invoke-interface {v2, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
+- 
+-     goto :goto_3
+- 
+-     .line 110
+-     :cond_7
+-     check-cast v2, Ljava/util/List;
+- 
+-     check-cast v2, Ljava/lang/Iterable;
+- 
+-     .line 111
+-     invoke-interface {v2}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
+- 
+-     move-result-object p1
+- 
+-     :goto_7
+-     invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
+- 
+-     move-result v2
+- 
+-     if-eqz v2, :cond_8
+- 
+-     invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
+- 
+-     move-result-object v2
+- 
+-     .line 112
+-     check-cast v2, Ljava/util/List;
+- 
+-     .line 57
+-     invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
+- 
+-     move-result-object v4
+- 
+-     check-cast v4, Ljava/lang/String;
+- 
+-     invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
+- 
+-     move-result-object v2
+- 
+-     check-cast v2, Ljava/lang/String;
+- 
+-     invoke-interface {v0, v4, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+- 
+-     goto :goto_7
+- 
+-     .line 59
+-     :cond_8
+-     invoke-direct {p0, v0}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->updateSuperProperties(Ljava/util/Map;)V
+- 
+-     :cond_9
+-     :goto_8
+      return-void
+- 
+-     :sswitch_data_0
+-     .sparse-switch
+-         -0x5bc8ed18 -> :sswitch_8
+-         -0x40f32acd -> :sswitch_7
+-         -0x3db0f7f -> :sswitch_6
+-         0x31ad945d -> :sswitch_5
+-         0x3d3a7f4d -> :sswitch_4
+-         0x3f4764b9 -> :sswitch_3
+-         0x70a1a726 -> :sswitch_2
+-         0x714f9fb5 -> :sswitch_1
+-         0x7b737fcc -> :sswitch_0
+-     .end sparse-switch
+  .end method
+--- 362,374 ----
+  .end method
+  
+  .method public final setAdvertiserId(Ljava/lang/String;)V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+  .method public final setCampaignProperties(Landroid/content/Intent;)V
+!     .locals 0
+  
+      return-void
+  .end method
+Only in com.discord-963/smali/com/discord/utilities/analytics: AnalyticSuperProperties.smali.orig
+Only in com.discord-963/smali/com/discord/utilities/analytics: AnalyticSuperProperties.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali com.discord-963/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali
+*** com.discord-963-base/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali	2019-10-01 22:09:20.863990491 +0300
+--- com.discord-963/smali/com/discord/utilities/analytics/AnalyticsUtils$Tracker.smali	2019-10-01 22:59:59.060786487 +0300
+***************
+*** 71,79 ****
+  .method public static final synthetic access$drainEventsQueue(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;)V
+      .locals 0
+  
+-     .line 65
+-     invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->drainEventsQueue()V
+- 
+      return-void
+  .end method
+  
+--- 71,76 ----
+***************
+*** 87,184 ****
+  .end method
+  
+  .method private final declared-synchronized drainEventsQueue()V
+!     .locals 5
+! 
+!     monitor-enter p0
+! 
+!     .line 196
+!     :try_start_0
+!     invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->getCanDrain()Z
+! 
+!     move-result v0
+!     :try_end_0
+!     .catchall {:try_start_0 .. :try_end_0} :catchall_0
+! 
+!     if-nez v0, :cond_0
+! 
+!     .line 197
+!     monitor-exit p0
+! 
+!     return-void
+! 
+!     .line 200
+!     :cond_0
+!     :try_start_1
+!     new-instance v0, Ljava/util/ArrayList;
+! 
+!     iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
+! 
+!     check-cast v1, Ljava/util/Collection;
+! 
+!     invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
+! 
+!     .line 202
+!     iget-object v1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
+! 
+!     invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->clear()V
+! 
+!     .line 204
+!     sget-object v1, Lcom/discord/utilities/rest/RestAPI;->Companion:Lcom/discord/utilities/rest/RestAPI$Companion;
+! 
+!     invoke-virtual {v1}, Lcom/discord/utilities/rest/RestAPI$Companion;->getApi()Lcom/discord/utilities/rest/RestAPI;
+! 
+!     move-result-object v1
+! 
+!     .line 206
+!     new-instance v2, Lcom/discord/restapi/RestAPIParams$Track;
+! 
+!     iget-object v3, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->analyticsToken:Ljava/lang/String;
+! 
+!     move-object v4, v0
+! 
+!     check-cast v4, Ljava/util/List;
+! 
+!     invoke-direct {v2, v3, v4}, Lcom/discord/restapi/RestAPIParams$Track;-><init>(Ljava/lang/String;Ljava/util/List;)V
+! 
+!     invoke-virtual {v1, v2}, Lcom/discord/utilities/rest/RestAPI;->track(Lcom/discord/restapi/RestAPIParams$Track;)Lrx/Observable;
+! 
+!     move-result-object v1
+! 
+!     .line 207
+!     invoke-static {}, Lcom/discord/app/i;->dz()Lrx/Observable$c;
+! 
+!     move-result-object v2
+! 
+!     invoke-virtual {v1, v2}, Lrx/Observable;->a(Lrx/Observable$c;)Lrx/Observable;
+! 
+!     move-result-object v1
+! 
+!     .line 208
+!     sget-object v2, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$1;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$1;
+! 
+!     check-cast v2, Lrx/functions/Action1;
+! 
+!     new-instance v3, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$2;
+! 
+!     invoke-direct {v3, p0, v0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$drainEventsQueue$2;-><init>(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/util/ArrayList;)V
+! 
+!     check-cast v3, Lrx/functions/Action1;
+! 
+!     invoke-virtual {v1, v2, v3}, Lrx/Observable;->a(Lrx/functions/Action1;Lrx/functions/Action1;)Lrx/Subscription;
+!     :try_end_1
+!     .catchall {:try_start_1 .. :try_end_1} :catchall_0
+! 
+!     .line 211
+!     monitor-exit p0
+  
+      return-void
+- 
+-     :catchall_0
+-     move-exception v0
+- 
+-     monitor-exit p0
+- 
+-     throw v0
+  .end method
+  
+  .method private final getCanDrain()Z
+--- 84,92 ----
+  .end method
+  
+  .method private final declared-synchronized drainEventsQueue()V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+  .method private final getCanDrain()Z
+***************
+*** 408,441 ****
+  .method public static synthetic setTrackingData$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/lang/String;ZILjava/lang/Object;)V
+      .locals 0
+  
+-     and-int/lit8 p3, p3, 0x2
+- 
+-     if-eqz p3, :cond_0
+- 
+-     const/4 p2, 0x0
+- 
+-     .line 106
+-     :cond_0
+-     invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->setTrackingData(Ljava/lang/String;Z)V
+- 
+      return-void
+  .end method
+  
+  .method public static synthetic track$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
+      .locals 0
+  
+-     and-int/lit8 p3, p3, 0x2
+- 
+-     if-eqz p3, :cond_0
+- 
+-     .line 133
+-     invoke-static {}, Lkotlin/a/ad;->emptyMap()Ljava/util/Map;
+- 
+-     move-result-object p2
+- 
+-     :cond_0
+-     invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Ljava/lang/String;Ljava/util/Map;)V
+- 
+      return-void
+  .end method
+  
+--- 316,327 ----
+***************
+*** 576,816 ****
+  .method public final declared-synchronized setTrackingData(Ljava/lang/String;Z)V
+      .locals 0
+  
+-     monitor-enter p0
+- 
+-     .line 107
+-     :try_start_0
+-     invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->drainEventsQueue()V
+- 
+-     .line 109
+-     iput-object p1, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->analyticsToken:Ljava/lang/String;
+- 
+-     .line 110
+-     iput-boolean p2, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->fingerprinted:Z
+- 
+-     .line 112
+-     invoke-direct {p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->drainEventsQueue()V
+-     :try_end_0
+-     .catchall {:try_start_0 .. :try_end_0} :catchall_0
+- 
+-     .line 113
+-     monitor-exit p0
+- 
+      return-void
+- 
+-     :catchall_0
+-     move-exception p1
+- 
+-     monitor-exit p0
+- 
+-     throw p1
+  .end method
+  
+  .method public final track(Ljava/lang/String;Ljava/util/Map;)V
+!     .locals 2
+!     .annotation system Ldalvik/annotation/Signature;
+!         value = {
+!             "(",
+!             "Ljava/lang/String;",
+!             "Ljava/util/Map<",
+!             "Ljava/lang/String;",
+!             "+",
+!             "Ljava/lang/Object;",
+!             ">;)V"
+!         }
+!     .end annotation
+! 
+!     const-string v0, "event"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const-string v0, "properties"
+! 
+!     invoke-static {p2, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     .line 134
+!     iget-object v0, p0, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->eventsQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
+! 
+!     new-instance v1, Lcom/discord/restapi/RestAPIParams$Track$Event;
+! 
+!     invoke-direct {v1, p1, p2}, Lcom/discord/restapi/RestAPIParams$Track$Event;-><init>(Ljava/lang/String;Ljava/util/Map;)V
+! 
+!     invoke-virtual {v0, v1}, Ljava/util/concurrent/ConcurrentLinkedQueue;->add(Ljava/lang/Object;)Z
+! 
+!     .line 136
+!     sget-object p1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
+! 
+!     const-wide/16 v0, 0x5dc
+! 
+!     invoke-static {v0, v1, p1}, Lrx/Observable;->g(JLjava/util/concurrent/TimeUnit;)Lrx/Observable;
+! 
+!     move-result-object p1
+! 
+!     .line 137
+!     new-instance p2, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$track$1;
+! 
+!     invoke-direct {p2, p0}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker$track$1;-><init>(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;)V
+! 
+!     check-cast p2, Lrx/functions/Action1;
+! 
+!     invoke-virtual {p1, p2}, Lrx/Observable;->b(Lrx/functions/Action1;)Lrx/Subscription;
+  
+      return-void
+  .end method
+  
+  .method public final track(Lkotlin/Pair;JLkotlin/jvm/functions/Function0;)V
+!     .locals 7
+!     .annotation system Ldalvik/annotation/Signature;
+!         value = {
+!             "(",
+!             "Lkotlin/Pair<",
+!             "Ljava/lang/String;",
+!             "Ljava/lang/Long;",
+!             ">;J",
+!             "Lkotlin/jvm/functions/Function0<",
+!             "+",
+!             "Ljava/util/Map<",
+!             "Ljava/lang/String;",
+!             "+",
+!             "Ljava/lang/Object;",
+!             ">;>;)V"
+!         }
+!     .end annotation
+! 
+!     const-string v0, "throttleKey"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const-string v0, "lazyPropertyProvider"
+! 
+!     invoke-static {p4, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     .line 125
+!     invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
+! 
+!     move-result-object v3
+! 
+!     const/4 v4, 0x0
+! 
+!     const/4 v5, 0x4
+! 
+!     const/4 v6, 0x0
+! 
+!     move-object v1, p0
+! 
+!     move-object v2, p1
+! 
+!     invoke-static/range {v1 .. v6}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->isEventThrottled$default(Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;Lkotlin/Pair;Ljava/lang/Long;ZILjava/lang/Object;)Z
+! 
+!     move-result p2
+! 
+!     if-eqz p2, :cond_0
+! 
+!     return-void
+! 
+!     .line 1000
+!     :cond_0
+!     iget-object p1, p1, Lkotlin/Pair;->first:Ljava/lang/Object;
+! 
+!     .line 129
+!     check-cast p1, Ljava/lang/String;
+! 
+!     .line 130
+!     invoke-interface {p4}, Lkotlin/jvm/functions/Function0;->invoke()Ljava/lang/Object;
+! 
+!     move-result-object p2
+! 
+!     check-cast p2, Ljava/util/Map;
+! 
+!     invoke-virtual {p0, p1, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->track(Ljava/lang/String;Ljava/util/Map;)V
+  
+      return-void
+  .end method
+  
+  .method public final trackFireBase(Ljava/lang/String;Ljava/util/Map;)V
+!     .locals 9
+!     .annotation system Ldalvik/annotation/Signature;
+!         value = {
+!             "(",
+!             "Ljava/lang/String;",
+!             "Ljava/util/Map<",
+!             "Ljava/lang/String;",
+!             "+",
+!             "Ljava/lang/Object;",
+!             ">;)V"
+!         }
+!     .end annotation
+! 
+!     const-string v0, "event"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const-string v0, "properties"
+! 
+!     invoke-static {p2, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     .line 144
+!     new-instance v0, Landroid/os/Bundle;
+! 
+!     invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
+! 
+!     invoke-direct {p0, v0, p2}, Lcom/discord/utilities/analytics/AnalyticsUtils$Tracker;->putMap(Landroid/os/Bundle;Ljava/util/Map;)Landroid/os/Bundle;
+! 
+!     move-result-object v4
+! 
+!     .line 145
+!     sget-object p2, Lcom/discord/utilities/analytics/AnalyticsUtils;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticsUtils;
+! 
+!     invoke-static {p2}, Lcom/discord/utilities/analytics/AnalyticsUtils;->access$getFireBaseInstance$p(Lcom/discord/utilities/analytics/AnalyticsUtils;)Lcom/google/firebase/analytics/FirebaseAnalytics;
+! 
+!     move-result-object p2
+! 
+!     if-eqz p2, :cond_1
+! 
+!     .line 1014
+!     iget-boolean v0, p2, Lcom/google/firebase/analytics/FirebaseAnalytics;->aDr:Z
+! 
+!     if-eqz v0, :cond_0
+! 
+!     .line 1015
+!     iget-object p2, p2, Lcom/google/firebase/analytics/FirebaseAnalytics;->aTC:Lcom/google/android/gms/internal/measurement/lw;
+! 
+!     const/4 v0, 0x0
+! 
+!     const/4 v1, 0x0
+! 
+!     .line 1084
+!     invoke-virtual {p2, v0, p1, v4, v1}, Lcom/google/android/gms/internal/measurement/lw;->a(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Z)V
+! 
+!     return-void
+! 
+!     .line 1016
+!     :cond_0
+!     iget-object p2, p2, Lcom/google/firebase/analytics/FirebaseAnalytics;->aDp:Lcom/google/android/gms/measurement/internal/ek;
+! 
+!     invoke-virtual {p2}, Lcom/google/android/gms/measurement/internal/ek;->vA()Lcom/google/android/gms/measurement/internal/fr;
+! 
+!     move-result-object v1
+! 
+!     const/4 v5, 0x0
+! 
+!     const/4 v6, 0x1
+! 
+!     .line 2080
+!     invoke-virtual {v1}, Lcom/google/android/gms/measurement/internal/fh;->vH()Lcom/google/android/gms/common/util/e;
+! 
+!     move-result-object p2
+! 
+!     invoke-interface {p2}, Lcom/google/android/gms/common/util/e;->currentTimeMillis()J
+! 
+!     move-result-wide v7
+! 
+!     const-string v2, "app"
+! 
+!     move-object v3, p1
+! 
+!     invoke-virtual/range {v1 .. v8}, Lcom/google/android/gms/measurement/internal/fr;->logEvent(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ZZJ)V
+  
+-     :cond_1
+      return-void
+  .end method
+--- 462,484 ----
+  .method public final declared-synchronized setTrackingData(Ljava/lang/String;Z)V
+      .locals 0
+  
+      return-void
+  .end method
+  
+  .method public final track(Ljava/lang/String;Ljava/util/Map;)V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+  .method public final track(Lkotlin/Pair;JLkotlin/jvm/functions/Function0;)V
+!     .locals 0
+  
+      return-void
+  .end method
+  
+  .method public final trackFireBase(Ljava/lang/String;Ljava/util/Map;)V
+!     .locals 0
+  
+      return-void
+  .end method
+Only in com.discord-963/smali/com/discord/utilities/analytics: AnalyticsUtils$Tracker.smali.orig
+Only in com.discord-963/smali/com/discord/utilities/analytics: AnalyticsUtils$Tracker.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali com.discord-963/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali
+*** com.discord-963-base/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali	2019-10-01 22:09:20.900657401 +0300
+--- com.discord-963/smali/com/discord/utilities/integrations/SpotifyHelper$openPlayStoreForSpotify$1.smali	2019-10-01 22:57:45.866570239 +0300
+***************
+*** 43,49 ****
+  
+      new-instance v1, Ljava/lang/StringBuilder;
+  
+!     const-string v2, "https://app.adjust.com/ndjczk?campaign="
+  
+      invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+--- 43,49 ----
+  
+      new-instance v1, Ljava/lang/StringBuilder;
+  
+!     const-string v2, "https://play.google.com/store/apps/details?id=com.spotify.music&trash="
+  
+      invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+  
+diff -crB com.discord-963-base/smali/com/discord/utilities/receiver/CampaignReceiver.smali com.discord-963/smali/com/discord/utilities/receiver/CampaignReceiver.smali
+*** com.discord-963-base/smali/com/discord/utilities/receiver/CampaignReceiver.smali	2019-10-01 22:09:20.940657667 +0300
+--- com.discord-963/smali/com/discord/utilities/receiver/CampaignReceiver.smali	2019-10-01 22:57:45.866570239 +0300
+***************
+*** 16,49 ****
+  
+  # virtual methods
+  .method public final onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+!     .locals 1
+! 
+!     const-string v0, "context"
+! 
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     const-string v0, "intent"
+! 
+!     invoke-static {p2, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     .line 23
+!     new-instance v0, Lcom/adjust/sdk/l;
+! 
+!     invoke-direct {v0}, Lcom/adjust/sdk/l;-><init>()V
+! 
+!     invoke-virtual {v0, p1, p2}, Lcom/adjust/sdk/l;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+! 
+!     .line 24
+!     new-instance v0, Lcom/google/android/gms/analytics/a;
+! 
+!     invoke-direct {v0}, Lcom/google/android/gms/analytics/a;-><init>()V
+! 
+!     invoke-virtual {v0, p1, p2}, Lcom/google/android/gms/analytics/a;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+! 
+!     .line 26
+!     sget-object p1, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->INSTANCE:Lcom/discord/utilities/analytics/AnalyticSuperProperties;
+! 
+!     invoke-virtual {p1, p2}, Lcom/discord/utilities/analytics/AnalyticSuperProperties;->setCampaignProperties(Landroid/content/Intent;)V
+  
+      return-void
+  .end method
+--- 16,22 ----
+  
+  # virtual methods
+  .method public final onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+!     .locals 0
+  
+      return-void
+  .end method
+diff -crB com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/b/a.smali com.discord-963/smali_classes2/io/fabric/sdk/android/a/b/a.smali
+*** com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/b/a.smali	2019-10-01 22:09:23.570675154 +0300
+--- com.discord-963/smali_classes2/io/fabric/sdk/android/a/b/a.smali	2019-10-01 22:57:45.873236949 +0300
+***************
+*** 189,195 ****
+  
+      const-string v0, "X-CRASHLYTICS-DEVELOPER-TOKEN"
+  
+!     const-string v1, "470fa2b4ae81cd56ecbcda9735803434cec591fa"
+  
+      .line 142
+      invoke-virtual {p1, v0, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+--- 189,195 ----
+  
+      const-string v0, "X-CRASHLYTICS-DEVELOPER-TOKEN"
+  
+!     const-string v1, "blamelunapoopoopeepeepoopoopeepblameluna"
+  
+      .line 142
+      invoke-virtual {p1, v0, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+diff -crB com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/b/h.smali com.discord-963/smali_classes2/io/fabric/sdk/android/a/b/h.smali
+*** com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/b/h.smali	2019-10-01 22:09:23.574008510 +0300
+--- com.discord-963/smali_classes2/io/fabric/sdk/android/a/b/h.smali	2019-10-01 22:58:57.753713512 +0300
+***************
+*** 22,36 ****
+  .end method
+  
+  .method public final run()V
+!     .locals 1
+! 
+!     const/16 v0, 0xa
+! 
+!     .line 29
+!     invoke-static {v0}, Landroid/os/Process;->setThreadPriority(I)V
+! 
+!     .line 30
+!     invoke-virtual {p0}, Lio/fabric/sdk/android/a/b/h;->de()V
+  
+      return-void
+  .end method
+--- 22,28 ----
+  .end method
+  
+  .method public final run()V
+!     .locals 0
+  
+      return-void
+  .end method
+Only in com.discord-963/smali_classes2/io/fabric/sdk/android/a/b: h.smali.orig
+Only in com.discord-963/smali_classes2/io/fabric/sdk/android/a/b: h.smali.rej
+diff -crB com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/g/a.smali com.discord-963/smali_classes2/io/fabric/sdk/android/a/g/a.smali
+*** com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/g/a.smali	2019-10-01 22:09:23.594008642 +0300
+--- com.discord-963/smali_classes2/io/fabric/sdk/android/a/g/a.smali	2019-10-01 22:58:46.793640874 +0300
+***************
+*** 343,571 ****
+  
+  # virtual methods
+  .method public a(Lio/fabric/sdk/android/a/g/d;)Z
+!     .locals 5
+  
+!     .line 74
+!     invoke-virtual {p0}, Lio/fabric/sdk/android/a/g/a;->CI()Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 3098
+!     iget-object v1, p1, Lio/fabric/sdk/android/a/g/d;->pO:Ljava/lang/String;
+! 
+!     const-string v2, "X-CRASHLYTICS-API-KEY"
+! 
+!     invoke-virtual {v0, v2, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     const-string v1, "X-CRASHLYTICS-API-CLIENT-TYPE"
+! 
+!     const-string v2, "android"
+! 
+!     .line 3099
+!     invoke-virtual {v0, v1, v2}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     iget-object v1, p0, Lio/fabric/sdk/android/a/g/a;->oR:Lio/fabric/sdk/android/i;
+! 
+!     .line 3102
+!     invoke-virtual {v1}, Lio/fabric/sdk/android/i;->getVersion()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "X-CRASHLYTICS-API-CLIENT-VERSION"
+! 
+!     .line 3101
+!     invoke-virtual {v0, v2, v1}, Lio/fabric/sdk/android/a/e/d;->ac(Ljava/lang/String;Ljava/lang/String;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 76
+!     invoke-direct {p0, v0, p1}, Lio/fabric/sdk/android/a/g/a;->a(Lio/fabric/sdk/android/a/e/d;Lio/fabric/sdk/android/a/g/d;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v0
+! 
+!     .line 78
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v1
+! 
+!     new-instance v2, Ljava/lang/StringBuilder;
+! 
+!     const-string v3, "Sending app info to "
+! 
+!     invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 4100
+!     iget-object v3, p0, Lio/fabric/sdk/android/a/b/a;->url:Ljava/lang/String;
+! 
+!     .line 78
+!     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v2
+! 
+!     const-string v3, "Fabric"
+! 
+!     invoke-interface {v1, v3, v2}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 79
+!     iget-object v1, p1, Lio/fabric/sdk/android/a/g/d;->biO:Lio/fabric/sdk/android/a/g/n;
+! 
+!     if-eqz v1, :cond_0
+! 
+!     .line 80
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v1
+! 
+!     new-instance v2, Ljava/lang/StringBuilder;
+! 
+!     const-string v4, "App icon hash is "
+! 
+!     invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     iget-object v4, p1, Lio/fabric/sdk/android/a/g/d;->biO:Lio/fabric/sdk/android/a/g/n;
+! 
+!     iget-object v4, v4, Lio/fabric/sdk/android/a/g/n;->aaW:Ljava/lang/String;
+! 
+!     invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v2
+! 
+!     invoke-interface {v1, v3, v2}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 82
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v1
+! 
+!     new-instance v2, Ljava/lang/StringBuilder;
+! 
+!     const-string v4, "App icon size is "
+! 
+!     invoke-direct {v2, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     iget-object v4, p1, Lio/fabric/sdk/android/a/g/d;->biO:Lio/fabric/sdk/android/a/g/n;
+! 
+!     iget v4, v4, Lio/fabric/sdk/android/a/g/n;->width:I
+! 
+!     invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
+! 
+!     const-string v4, "x"
+! 
+!     invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     iget-object p1, p1, Lio/fabric/sdk/android/a/g/d;->biO:Lio/fabric/sdk/android/a/g/n;
+! 
+!     iget p1, p1, Lio/fabric/sdk/android/a/g/n;->height:I
+! 
+!     invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object p1
+! 
+!     invoke-interface {v1, v3, p1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 86
+!     :cond_0
+!     invoke-virtual {v0}, Lio/fabric/sdk/android/a/e/d;->Dv()I
+! 
+!     move-result p1
+! 
+!     .line 4929
+!     invoke-virtual {v0}, Lio/fabric/sdk/android/a/e/d;->Du()Ljava/net/HttpURLConnection;
+! 
+!     move-result-object v1
+! 
+!     invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getRequestMethod()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "POST"
+! 
+!     .line 87
+!     invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v1
+! 
+!     if-eqz v1, :cond_1
+! 
+!     const-string v1, "Create"
+! 
+!     goto :goto_0
+! 
+!     :cond_1
+!     const-string v1, "Update"
+! 
+!     .line 90
+!     :goto_0
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v2
+! 
+!     new-instance v4, Ljava/lang/StringBuilder;
+! 
+!     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
+! 
+!     invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     const-string v1, " app request ID: "
+! 
+!     invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     const-string v1, "X-REQUEST-ID"
+! 
+!     .line 91
+!     invoke-virtual {v0, v1}, Lio/fabric/sdk/android/a/e/d;->dI(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     .line 90
+!     invoke-interface {v2, v3, v0}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 92
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v0
+! 
+!     invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "Result was "
+! 
+!     invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     invoke-interface {v0, v3, v1}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 94
+!     invoke-static {p1}, Lio/fabric/sdk/android/a/b/v;->di(I)I
+! 
+!     move-result p1
+! 
+!     if-nez p1, :cond_2
+! 
+!     const/4 p1, 0x1
+! 
+!     return p1
+! 
+!     :cond_2
+!     const/4 p1, 0x0
+! 
+!     return p1
+  .end method
+--- 343,349 ----
+  
+  # virtual methods
+  .method public a(Lio/fabric/sdk/android/a/g/d;)Z
+!     .locals 0
+  
+!     return-void
+  .end method
+Only in com.discord-963/smali_classes2/io/fabric/sdk/android/a/g: a.smali.orig
+Only in com.discord-963/smali_classes2/io/fabric/sdk/android/a/g: a.smali.rej
+diff -crB com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/g/l.smali com.discord-963/smali_classes2/io/fabric/sdk/android/a/g/l.smali
+*** com.discord-963-base/smali_classes2/io/fabric/sdk/android/a/g/l.smali	2019-10-01 22:09:23.597341998 +0300
+--- com.discord-963/smali_classes2/io/fabric/sdk/android/a/g/l.smali	2019-10-01 22:58:38.906921938 +0300
+***************
+*** 115,502 ****
+  
+  # virtual methods
+  .method public final a(Lio/fabric/sdk/android/a/g/w;)Lorg/json/JSONObject;
+!     .locals 8
+  
+!     const-string v0, "X-REQUEST-ID"
+! 
+!     const-string v1, "Settings request ID: "
+! 
+!     const-string v2, "Fabric"
+! 
+!     const/4 v3, 0x0
+! 
+!     .line 1140
+!     :try_start_0
+!     new-instance v4, Ljava/util/HashMap;
+! 
+!     invoke-direct {v4}, Ljava/util/HashMap;-><init>()V
+! 
+!     const-string v5, "build_version"
+! 
+!     .line 1141
+!     iget-object v6, p1, Lio/fabric/sdk/android/a/g/w;->biJ:Ljava/lang/String;
+! 
+!     invoke-interface {v4, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+! 
+!     const-string v5, "display_version"
+! 
+!     .line 1142
+!     iget-object v6, p1, Lio/fabric/sdk/android/a/g/w;->biI:Ljava/lang/String;
+! 
+!     invoke-interface {v4, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+! 
+!     const-string v5, "source"
+! 
+!     .line 1143
+!     iget v6, p1, Lio/fabric/sdk/android/a/g/w;->biL:I
+! 
+!     invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
+! 
+!     move-result-object v6
+! 
+!     invoke-interface {v4, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+! 
+!     .line 1145
+!     iget-object v5, p1, Lio/fabric/sdk/android/a/g/w;->bjM:Ljava/lang/String;
+! 
+!     if-eqz v5, :cond_0
+! 
+!     const-string v5, "icon_hash"
+! 
+!     .line 1146
+!     iget-object v6, p1, Lio/fabric/sdk/android/a/g/w;->bjM:Ljava/lang/String;
+! 
+!     invoke-interface {v4, v5, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+! 
+!     .line 1149
+!     :cond_0
+!     iget-object v5, p1, Lio/fabric/sdk/android/a/g/w;->bjL:Ljava/lang/String;
+! 
+!     .line 1150
+!     invoke-static {v5}, Lio/fabric/sdk/android/a/b/i;->O(Ljava/lang/String;)Z
+! 
+!     move-result v6
+! 
+!     if-nez v6, :cond_1
+! 
+!     const-string v6, "instance"
+! 
+!     .line 1151
+!     invoke-interface {v4, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+! 
+!     .line 82
+!     :cond_1
+!     invoke-virtual {p0, v4}, Lio/fabric/sdk/android/a/g/l;->p(Ljava/util/Map;)Lio/fabric/sdk/android/a/e/d;
+! 
+!     move-result-object v5
+!     :try_end_0
+!     .catch Lio/fabric/sdk/android/a/e/d$c; {:try_start_0 .. :try_end_0} :catch_1
+!     .catchall {:try_start_0 .. :try_end_0} :catchall_0
+! 
+!     :try_start_1
+!     const-string v6, "X-CRASHLYTICS-API-KEY"
+! 
+!     .line 1160
+!     iget-object v7, p1, Lio/fabric/sdk/android/a/g/w;->pO:Ljava/lang/String;
+! 
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "X-CRASHLYTICS-API-CLIENT-TYPE"
+! 
+!     const-string v7, "android"
+! 
+!     .line 1161
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "X-CRASHLYTICS-API-CLIENT-VERSION"
+! 
+!     .line 1163
+!     iget-object v7, p0, Lio/fabric/sdk/android/a/g/l;->oR:Lio/fabric/sdk/android/i;
+! 
+!     invoke-virtual {v7}, Lio/fabric/sdk/android/i;->getVersion()Ljava/lang/String;
+! 
+!     move-result-object v7
+! 
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "Accept"
+! 
+!     const-string v7, "application/json"
+! 
+!     .line 1164
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "X-CRASHLYTICS-DEVICE-MODEL"
+! 
+!     .line 1166
+!     iget-object v7, p1, Lio/fabric/sdk/android/a/g/w;->qr:Ljava/lang/String;
+! 
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "X-CRASHLYTICS-OS-BUILD-VERSION"
+! 
+!     .line 1167
+!     iget-object v7, p1, Lio/fabric/sdk/android/a/g/w;->bjJ:Ljava/lang/String;
+! 
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "X-CRASHLYTICS-OS-DISPLAY-VERSION"
+! 
+!     .line 1168
+!     iget-object v7, p1, Lio/fabric/sdk/android/a/g/w;->bjK:Ljava/lang/String;
+! 
+!     invoke-static {v5, v6, v7}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const-string v6, "X-CRASHLYTICS-INSTALLATION-ID"
+! 
+!     .line 1169
+!     iget-object p1, p1, Lio/fabric/sdk/android/a/g/w;->qm:Ljava/lang/String;
+! 
+!     invoke-static {v5, v6, p1}, Lio/fabric/sdk/android/a/g/l;->a(Lio/fabric/sdk/android/a/e/d;Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 85
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object p1
+! 
+!     new-instance v6, Ljava/lang/StringBuilder;
+! 
+!     const-string v7, "Requesting settings from "
+! 
+!     invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 2100
+!     iget-object v7, p0, Lio/fabric/sdk/android/a/b/a;->url:Ljava/lang/String;
+! 
+!     .line 85
+!     invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v6
+! 
+!     invoke-interface {p1, v2, v6}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 86
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object p1
+! 
+!     const-string v6, "Settings query params were: "
+! 
+!     invoke-static {v4}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
+! 
+!     move-result-object v4
+! 
+!     invoke-virtual {v6, v4}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v4
+! 
+!     invoke-interface {p1, v2, v4}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 2104
+!     invoke-virtual {v5}, Lio/fabric/sdk/android/a/e/d;->Dv()I
+! 
+!     move-result p1
+! 
+!     .line 2105
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v4
+! 
+!     const-string v6, "Settings result was: "
+! 
+!     invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
+! 
+!     move-result-object v7
+! 
+!     invoke-virtual {v6, v7}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v6
+! 
+!     invoke-interface {v4, v2, v6}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     const/16 v4, 0xc8
+! 
+!     if-eq p1, v4, :cond_3
+! 
+!     const/16 v4, 0xc9
+! 
+!     if-eq p1, v4, :cond_3
+! 
+!     const/16 v4, 0xca
+! 
+!     if-eq p1, v4, :cond_3
+! 
+!     const/16 v4, 0xcb
+! 
+!     if-ne p1, v4, :cond_2
+! 
+!     goto :goto_0
+! 
+!     :cond_2
+!     const/4 p1, 0x0
+! 
+!     goto :goto_1
+! 
+!     :cond_3
+!     :goto_0
+!     const/4 p1, 0x1
+! 
+!     :goto_1
+!     if-eqz p1, :cond_4
+! 
+!     .line 2109
+!     invoke-virtual {v5}, Lio/fabric/sdk/android/a/e/d;->Dw()Ljava/lang/String;
+! 
+!     move-result-object p1
+! 
+!     invoke-direct {p0, p1}, Lio/fabric/sdk/android/a/g/l;->dM(Ljava/lang/String;)Lorg/json/JSONObject;
+! 
+!     move-result-object p1
+! 
+!     move-object v3, p1
+! 
+!     goto :goto_2
+! 
+!     .line 2111
+!     :cond_4
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object p1
+! 
+!     new-instance v4, Ljava/lang/StringBuilder;
+! 
+!     const-string v6, "Failed to retrieve settings from "
+! 
+!     invoke-direct {v4, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 3100
+!     iget-object v6, p0, Lio/fabric/sdk/android/a/b/a;->url:Ljava/lang/String;
+! 
+!     .line 2111
+!     invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v4
+! 
+!     invoke-interface {p1, v2, v4}, Lio/fabric/sdk/android/l;->e(Ljava/lang/String;Ljava/lang/String;)V
+!     :try_end_1
+!     .catch Lio/fabric/sdk/android/a/e/d$c; {:try_start_1 .. :try_end_1} :catch_0
+!     .catchall {:try_start_1 .. :try_end_1} :catchall_1
+! 
+!     :goto_2
+!     if-eqz v5, :cond_5
+! 
+!     .line 94
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object p1
+! 
+!     new-instance v4, Ljava/lang/StringBuilder;
+! 
+!     invoke-direct {v4, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 95
+!     :goto_3
+!     invoke-virtual {v5, v0}, Lio/fabric/sdk/android/a/e/d;->dI(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     .line 94
+!     invoke-interface {p1, v2, v0}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     goto :goto_5
+! 
+!     :catch_0
+!     move-exception p1
+! 
+!     goto :goto_4
+! 
+!     :catchall_0
+!     move-exception p1
+! 
+!     move-object v5, v3
+! 
+!     goto :goto_6
+! 
+!     :catch_1
+!     move-exception p1
+! 
+!     move-object v5, v3
+! 
+!     .line 90
+!     :goto_4
+!     :try_start_2
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v4
+! 
+!     const-string v6, "Settings request failed."
+! 
+!     invoke-interface {v4, v2, v6, p1}, Lio/fabric/sdk/android/l;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
+!     :try_end_2
+!     .catchall {:try_start_2 .. :try_end_2} :catchall_1
+! 
+!     if-eqz v5, :cond_5
+! 
+!     .line 94
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object p1
+! 
+!     new-instance v4, Ljava/lang/StringBuilder;
+! 
+!     invoke-direct {v4, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     goto :goto_3
+! 
+!     :cond_5
+!     :goto_5
+!     return-object v3
+! 
+!     :catchall_1
+!     move-exception p1
+! 
+!     :goto_6
+!     if-eqz v5, :cond_6
+! 
+!     invoke-static {}, Lio/fabric/sdk/android/c;->Cw()Lio/fabric/sdk/android/l;
+! 
+!     move-result-object v3
+! 
+!     new-instance v4, Ljava/lang/StringBuilder;
+! 
+!     invoke-direct {v4, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+! 
+!     .line 95
+!     invoke-virtual {v5, v0}, Lio/fabric/sdk/android/a/e/d;->dI(Ljava/lang/String;)Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+! 
+!     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+! 
+!     move-result-object v0
+! 
+!     .line 94
+!     invoke-interface {v3, v2, v0}, Lio/fabric/sdk/android/l;->d(Ljava/lang/String;Ljava/lang/String;)V
+! 
+!     .line 97
+!     :cond_6
+!     goto :goto_8
+! 
+!     :goto_7
+!     throw p1
+! 
+!     :goto_8
+!     goto :goto_7
+  .end method
+--- 115,121 ----
+  
+  # virtual methods
+  .method public final a(Lio/fabric/sdk/android/a/g/w;)Lorg/json/JSONObject;
+!     .locals 0
+  
+!     return-void
+  .end method
+Only in com.discord-963/smali_classes2/io/fabric/sdk/android/a/g: l.smali.orig
+Only in com.discord-963/smali_classes2/io/fabric/sdk/android/a/g: l.smali.rej
+
diff --git a/patches/nozlib/963.patch b/patches/nozlib/963.patch
new file mode 100644
index 0000000..e707587
--- /dev/null
+++ b/patches/nozlib/963.patch
@@ -0,0 +1,37 @@
+diff -crB com.discord-963-base/smali/com/discord/gateway/GatewaySocket.smali com.discord-963/smali/com/discord/gateway/GatewaySocket.smali
+*** com.discord-963-base/smali/com/discord/gateway/GatewaySocket.smali	2019-10-01 22:09:20.573988563 +0300
+--- com.discord-963/smali/com/discord/gateway/GatewaySocket.smali	2019-10-01 22:43:46.314336604 +0300
+***************
+*** 1050,1056 ****
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+!     const-string p1, "/?encoding=json&v=7&compress=zlib-stream"
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+--- 1050,1056 ----
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+!     const-string p1, "/?encoding=json&v=7"
+  
+      invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+  
+diff -crB com.discord-963-base/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali com.discord-963/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali
+*** com.discord-963-base/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali	2019-10-01 22:09:20.550655074 +0300
+--- com.discord-963/smali/com/discord/gateway/io/OutgoingPayload$Identify.smali	2019-10-01 22:44:23.654584202 +0300
+***************
+*** 66,71 ****
+--- 66,73 ----
+  
+      iput p2, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->large_threshold:I
+  
++     const/4 p3, 0x0
++ 
+      iput-boolean p3, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->compress:Z
+  
+      iput-object p4, p0, Lcom/discord/gateway/io/OutgoingPayload$Identify;->properties:Ljava/util/Map;
+Only in com.discord-963/smali/com/discord/gateway/io: OutgoingPayload$Identify.smali.orig
+Only in com.discord-963/smali/com/discord/gateway/io: OutgoingPayload$Identify.smali.rej
+
diff --git a/patches/nozlib/README.md b/patches/nozlib/README.md
index 9adf5e9..604ba8c 100644
--- a/patches/nozlib/README.md
+++ b/patches/nozlib/README.md
@@ -45,4 +45,5 @@ This patch disables zlib-stream field on wss, making it easier to parse it.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/pureevil/963.patch b/patches/pureevil/963.patch
new file mode 100644
index 0000000..8e3895b
--- /dev/null
+++ b/patches/pureevil/963.patch
@@ -0,0 +1,45 @@
+diff -crB com.discord-938-base/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali com.discord-938/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali
+*** com.discord-938-base/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali    2019-08-12 17:12:55.110381830 +0300
+--- com.discord-938/smali/com/discord/widgets/settings/WidgetSettingsAppearance$Model$Companion$get$1.smali 2019-08-12 19:09:49.705585102 +0300
+***************
+*** 77,87 ****
+      const-string v0, "meUser"
+  
+      .line 186
+!     invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->isStaff()Z
+! 
+!     move-result v2
+  
+      const-string v1, "fontScale"
+  
+--- 77,83 ----
+      const-string v0, "meUser"
+  
+      .line 186
+!     const/4 v2, 0x1
+  
+      const-string v1, "fontScale"
+  
+***************
+*** 95,105 ****
+      const-string p3, "isAlphaTesterOrStaff"
+  
+      .line 188
+!     invoke-static {p4, p3}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+! 
+!     invoke-virtual {p4}, Ljava/lang/Boolean;->booleanValue()Z
+! 
+!     move-result v4
+  
+      .line 189
+      invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+--- 91,97 ----
+      const-string p3, "isAlphaTesterOrStaff"
+  
+      .line 188
+!     const/4 v4, 0x1
+  
+      .line 189
+      invoke-static {p1, v0}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
diff --git a/patches/pureevil/README.md b/patches/pureevil/README.md
index da726d4..c79e5ce 100644
--- a/patches/pureevil/README.md
+++ b/patches/pureevil/README.md
@@ -51,4 +51,5 @@ This patch enables the secret AMOLED theme (which is shit).
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/slashcommands/963.patch b/patches/slashcommands/963.patch
new file mode 100644
index 0000000..5000ce3
--- /dev/null
+++ b/patches/slashcommands/963.patch
@@ -0,0 +1,3125 @@
+diff -crB com.discord-963-base/smali/com/discord/models/domain/ModelChannel.smali com.discord-963/smali/com/discord/models/domain/ModelChannel.smali
+*** com.discord-963-base/smali/com/discord/models/domain/ModelChannel.smali	2019-10-01 22:09:20.573988563 +0300
+--- com.discord-963/smali/com/discord/models/domain/ModelChannel.smali	2019-10-01 22:47:54.389314892 +0300
+***************
+*** 2193,2198 ****
+--- 2193,2208 ----
+          }
+      .end annotation
+  
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getLeakChannels()Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_0
++ 
+      .line 270
+      iget-object v0, p0, Lcom/discord/models/domain/ModelChannel;->permissionOverwrites:Ljava/util/Map;
+  
+Only in com.discord-963/smali/com/discord/models/domain: ModelChannel.smali.orig
+Only in com.discord-963/smali/com/discord/models/domain: ModelChannel.smali.rej
+diff -crB com.discord-963-base/smali/com/discord/stores/StoreMessages.smali com.discord-963/smali/com/discord/stores/StoreMessages.smali
+*** com.discord-963-base/smali/com/discord/stores/StoreMessages.smali	2019-10-01 22:09:20.797323381 +0300
+--- com.discord-963/smali/com/discord/stores/StoreMessages.smali	2019-10-01 22:47:11.022360664 +0300
+***************
+*** 432,437 ****
+--- 432,441 ----
+  
+      invoke-static {p5, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+  
++     invoke-static {p5}, Lcom/discord/stores/StoreMessages;->interceptEditMessage(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p5
++ 
+      .line 168
+      invoke-direct {p0, p3, p4}, Lcom/discord/stores/StoreMessages;->getMessageQueue(J)Lcom/discord/utilities/messagesend/MessageQueue;
+  
+***************
+*** 954,959 ****
+--- 958,3739 ----
+      return-void
+  .end method
+  
++ .method public static final slashUpper(Ljava/lang/String;)Ljava/lang/String;
++     .locals 1
++ 
++     # Length of command + space
++     const/4 v0, 0x7
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashLower(Ljava/lang/String;)Ljava/lang/String;
++     .locals 1
++ 
++     # Length of command + space
++     const/4 v0, 0x7
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashBold(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/4 v0, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, "**"
++ 
++     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashSpoiler(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/16 v0, 0x9
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, "||"
++ 
++     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashMe(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/4 v0, 0x4
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, "*"
++ 
++     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashSt(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/4 v0, 0x4
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, "~~"
++ 
++     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashShrug(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command (no space)
++     const/4 v0, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, " ¯\\_(ツ)_/¯"
++ 
++     invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashTableflip(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command (no space)
++     const/16 v0, 0xa
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, " (╯°□°)╯︵ ┻━┻"
++ 
++     invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashUnflip(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command (no space)
++     const/16 v0, 0x7
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, " ┬─┬ ノ( ゜-゜ノ)"
++ 
++     invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashLenny(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command (no space)
++     const/4 v0, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     const-string v1, " ( ͡° ͜ʖ ͡°)"
++ 
++     invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashFw(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/16 v0, 0x4
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, " "
++ 
++     const-string v1, " "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Start of automatically generated code with textreplacegen.py
++ 
++     const-string v0, "!"
++ 
++     const-string v1, "!"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "#"
++ 
++     const-string v1, "#"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "$"
++ 
++     const-string v1, "$"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "%"
++ 
++     const-string v1, "%"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "&"
++ 
++     const-string v1, "&"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "'"
++ 
++     const-string v1, "'"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "("
++ 
++     const-string v1, "("
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ")"
++ 
++     const-string v1, ")"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "*"
++ 
++     const-string v1, "*"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "+"
++ 
++     const-string v1, "+"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ","
++ 
++     const-string v1, ","
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "-"
++ 
++     const-string v1, "-"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "."
++ 
++     const-string v1, "."
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "/"
++ 
++     const-string v1, "/"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "0"
++ 
++     const-string v1, "0"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "1"
++ 
++     const-string v1, "1"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "2"
++ 
++     const-string v1, "2"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "3"
++ 
++     const-string v1, "3"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "4"
++ 
++     const-string v1, "4"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "5"
++ 
++     const-string v1, "5"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "6"
++ 
++     const-string v1, "6"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "7"
++ 
++     const-string v1, "7"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "8"
++ 
++     const-string v1, "8"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "9"
++ 
++     const-string v1, "9"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ":"
++ 
++     const-string v1, ":"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ";"
++ 
++     const-string v1, ";"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "<"
++ 
++     const-string v1, "<"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "="
++ 
++     const-string v1, "="
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ">"
++ 
++     const-string v1, ">"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "?"
++ 
++     const-string v1, "?"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "@"
++ 
++     const-string v1, "@"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "A"
++ 
++     const-string v1, "A"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "B"
++ 
++     const-string v1, "B"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "C"
++ 
++     const-string v1, "C"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "D"
++ 
++     const-string v1, "D"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "E"
++ 
++     const-string v1, "E"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "F"
++ 
++     const-string v1, "F"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "G"
++ 
++     const-string v1, "G"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "H"
++ 
++     const-string v1, "H"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "I"
++ 
++     const-string v1, "I"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "J"
++ 
++     const-string v1, "J"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "K"
++ 
++     const-string v1, "K"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "L"
++ 
++     const-string v1, "L"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "M"
++ 
++     const-string v1, "M"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "N"
++ 
++     const-string v1, "N"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "O"
++ 
++     const-string v1, "O"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "P"
++ 
++     const-string v1, "P"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "Q"
++ 
++     const-string v1, "Q"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "R"
++ 
++     const-string v1, "R"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "S"
++ 
++     const-string v1, "S"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "T"
++ 
++     const-string v1, "T"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "U"
++ 
++     const-string v1, "U"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "V"
++ 
++     const-string v1, "V"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "W"
++ 
++     const-string v1, "W"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "X"
++ 
++     const-string v1, "X"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "Y"
++ 
++     const-string v1, "Y"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "Z"
++ 
++     const-string v1, "Z"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "["
++ 
++     const-string v1, "["
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "]"
++ 
++     const-string v1, "]"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "^"
++ 
++     const-string v1, "^"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "_"
++ 
++     const-string v1, "_"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "`"
++ 
++     const-string v1, "`"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "a"
++ 
++     const-string v1, "a"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "b"
++ 
++     const-string v1, "b"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "c"
++ 
++     const-string v1, "c"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "d"
++ 
++     const-string v1, "d"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "e"
++ 
++     const-string v1, "e"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "f"
++ 
++     const-string v1, "f"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "g"
++ 
++     const-string v1, "g"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "h"
++ 
++     const-string v1, "h"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "i"
++ 
++     const-string v1, "i"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "j"
++ 
++     const-string v1, "j"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "k"
++ 
++     const-string v1, "k"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "l"
++ 
++     const-string v1, "l"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "m"
++ 
++     const-string v1, "m"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "n"
++ 
++     const-string v1, "n"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "o"
++ 
++     const-string v1, "o"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "p"
++ 
++     const-string v1, "p"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "q"
++ 
++     const-string v1, "q"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "r"
++ 
++     const-string v1, "r"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "s"
++ 
++     const-string v1, "s"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "t"
++ 
++     const-string v1, "t"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "u"
++ 
++     const-string v1, "u"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "v"
++ 
++     const-string v1, "v"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "w"
++ 
++     const-string v1, "w"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "x"
++ 
++     const-string v1, "x"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "y"
++ 
++     const-string v1, "y"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "z"
++ 
++     const-string v1, "z"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "{"
++ 
++     const-string v1, "{"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "|"
++ 
++     const-string v1, "|"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "}"
++ 
++     const-string v1, "}"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "~"
++ 
++     const-string v1, "~"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # End of automatically generated code by textreplacegen.py
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashSmall(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/16 v0, 0x7
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Start of automatically generated code with textreplacegen.py
++ 
++     const-string v0, "a"
++ 
++     const-string v1, "ᴀ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "b"
++ 
++     const-string v1, "ʙ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "c"
++ 
++     const-string v1, "ᴄ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "d"
++ 
++     const-string v1, "ᴅ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "e"
++ 
++     const-string v1, "ᴇ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "f"
++ 
++     const-string v1, "ꜰ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "g"
++ 
++     const-string v1, "ɢ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "h"
++ 
++     const-string v1, "ʜ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "i"
++ 
++     const-string v1, "ɪ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "j"
++ 
++     const-string v1, "ᴊ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "k"
++ 
++     const-string v1, "ᴋ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "l"
++ 
++     const-string v1, "ʟ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "m"
++ 
++     const-string v1, "ᴍ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "n"
++ 
++     const-string v1, "ɴ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "o"
++ 
++     const-string v1, "ᴏ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "p"
++ 
++     const-string v1, "ᴘ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "q"
++ 
++     const-string v1, "ǫ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "r"
++ 
++     const-string v1, "ʀ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "s"
++ 
++     const-string v1, "s"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "t"
++ 
++     const-string v1, "ᴛ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "u"
++ 
++     const-string v1, "ᴜ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "v"
++ 
++     const-string v1, "ᴠ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "w"
++ 
++     const-string v1, "ᴡ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "x"
++ 
++     const-string v1, "x"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "y"
++ 
++     const-string v1, "ʏ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "z"
++ 
++     const-string v1, "ᴢ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # End of automatically generated code by textreplacegen.py
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashSmaller(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/16 v0, 0x9
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Start of automatically generated code with textreplacegen.py
++ 
++     const-string v0, "a"
++ 
++     const-string v1, "ᵃ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "b"
++ 
++     const-string v1, "ᵇ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "c"
++ 
++     const-string v1, "ᶜ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "d"
++ 
++     const-string v1, "ᵈ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "e"
++ 
++     const-string v1, "ᵉ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "f"
++ 
++     const-string v1, "ᶠ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "g"
++ 
++     const-string v1, "ᵍ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "h"
++ 
++     const-string v1, "ʰ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "i"
++ 
++     const-string v1, "ᶦ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "j"
++ 
++     const-string v1, "ʲ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "k"
++ 
++     const-string v1, "ᵏ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "l"
++ 
++     const-string v1, "ˡ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "m"
++ 
++     const-string v1, "ᵐ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "n"
++ 
++     const-string v1, "ⁿ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "o"
++ 
++     const-string v1, "ᵒ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "p"
++ 
++     const-string v1, "ᵖ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "q"
++ 
++     const-string v1, "ᑫ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "r"
++ 
++     const-string v1, "ʳ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "s"
++ 
++     const-string v1, "ˢ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "t"
++ 
++     const-string v1, "ᵗ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "u"
++ 
++     const-string v1, "ᵘ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "v"
++ 
++     const-string v1, "ᵛ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "w"
++ 
++     const-string v1, "ʷ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "x"
++ 
++     const-string v1, "ˣ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "y"
++ 
++     const-string v1, "ʸ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "z"
++ 
++     const-string v1, "ᶻ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # End of automatically generated code by textreplacegen.py
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashFlip(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/16 v0, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Reverse text
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->reverse()Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Start of automatically generated code with textreplacegen.py
++ 
++     const-string v0, "a"
++ 
++     const-string v1, "ɐ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "b"
++ 
++     const-string v1, "q"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "c"
++ 
++     const-string v1, "ɔ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "d"
++ 
++     const-string v1, "p"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "e"
++ 
++     const-string v1, "ǝ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "f"
++ 
++     const-string v1, "ɟ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "g"
++ 
++     const-string v1, "ƃ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "h"
++ 
++     const-string v1, "ɥ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "i"
++ 
++     const-string v1, "ı"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "j"
++ 
++     const-string v1, "ɾ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "k"
++ 
++     const-string v1, "ʞ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "l"
++ 
++     const-string v1, "ן"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "m"
++ 
++     const-string v1, "ɯ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "n"
++ 
++     const-string v1, "u"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "o"
++ 
++     const-string v1, "o"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "p"
++ 
++     const-string v1, "d"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "q"
++ 
++     const-string v1, "b"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "r"
++ 
++     const-string v1, "ɹ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "s"
++ 
++     const-string v1, "s"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "t"
++ 
++     const-string v1, "ʇ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "u"
++ 
++     const-string v1, "n"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "v"
++ 
++     const-string v1, "ʌ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "w"
++ 
++     const-string v1, "ʍ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "x"
++ 
++     const-string v1, "x"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "y"
++ 
++     const-string v1, "ʎ"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "z"
++ 
++     const-string v1, "z"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # End of automatically generated code by textreplacegen.py
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashClap(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/4 v0, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, " "
++ 
++     const-string v1, " :clap: "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashOwo(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/4 v0, 0x5
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Thanks Cynthia for the regex!
++ 
++     const-string v0, "(?:r|l)"
++ 
++     const-string v1, "w"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "(?:R|L)"
++ 
++     const-string v1, "W"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "n([aeiou])"
++ 
++     const-string v1, "ny$1"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "N([aeiou])"
++ 
++     const-string v1, "Ny$1"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "N([AEIOU])"
++ 
++     const-string v1, "NY$1"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "ove"
++ 
++     const-string v1, "uv"
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashMorse(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     # Length of command + space
++     const/16 v0, 0x7
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Start of automatically generated code with textreplacegen.py
++ 
++     const-string v0, " "
++ 
++     const-string v1, "/ "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "."
++ 
++     const-string v1, ".-.-.- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ","
++ 
++     const-string v1, "--..-- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, ":"
++ 
++     const-string v1, "---... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "?"
++ 
++     const-string v1, "..--.. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "'"
++ 
++     const-string v1, ".----. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "-"
++ 
++     const-string v1, "-....- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "/"
++ 
++     const-string v1, "-..-. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "@"
++ 
++     const-string v1, ".--.-. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "="
++ 
++     const-string v1, "-...- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "A"
++ 
++     const-string v1, ".- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "B"
++ 
++     const-string v1, "-... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "C"
++ 
++     const-string v1, "-.-. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "D"
++ 
++     const-string v1, "-.. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "E"
++ 
++     const-string v1, ". "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "F"
++ 
++     const-string v1, "..-. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "G"
++ 
++     const-string v1, "--. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "H"
++ 
++     const-string v1, ".... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "I"
++ 
++     const-string v1, ".. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "J"
++ 
++     const-string v1, ".--- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "K"
++ 
++     const-string v1, "-.- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "L"
++ 
++     const-string v1, ".-.. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "M"
++ 
++     const-string v1, "-- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "N"
++ 
++     const-string v1, "-. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "O"
++ 
++     const-string v1, "--- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "P"
++ 
++     const-string v1, ".--. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "Q"
++ 
++     const-string v1, "--.- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "R"
++ 
++     const-string v1, ".-. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "S"
++ 
++     const-string v1, "... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "T"
++ 
++     const-string v1, "- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "U"
++ 
++     const-string v1, "..- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "V"
++ 
++     const-string v1, "...- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "W"
++ 
++     const-string v1, ".-- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "X"
++ 
++     const-string v1, "-..- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "Y"
++ 
++     const-string v1, "-.-- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "Z"
++ 
++     const-string v1, "--.. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "0"
++ 
++     const-string v1, "----- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "1"
++ 
++     const-string v1, ".---- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "2"
++ 
++     const-string v1, "..--- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "3"
++ 
++     const-string v1, "...-- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "4"
++ 
++     const-string v1, "....- "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "5"
++ 
++     const-string v1, "..... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "6"
++ 
++     const-string v1, "-.... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "7"
++ 
++     const-string v1, "--... "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "8"
++ 
++     const-string v1, "---.. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "9"
++ 
++     const-string v1, "----. "
++ 
++     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # End of automatically generated code by textreplacegen.py
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashCtc(Ljava/lang/String;)Ljava/lang/String;
++     .locals 3
++ 
++     # called from smali/com/discord/widgets/chat/input/WidgetChatInputSend$configureSendListeners$1.smali
++ 
++     # Length of command + space
++     const/4 v0, 0x5
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Move to second word interpretation
++ 
++     const-string v0, "channelleak "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_2
++ 
++     # Move to config value interpretation
++ 
++     const/16 v0, 0xc
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "false"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v1
++ 
++     # Set value
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0, v1}, Lcom/discord/stores/StoreUserSettings;->setLeakChannels(Z)V
++ 
++     const-string p0, "CTC: Successfully set leakchannels state."
++ 
++     return-object p0
++ 
++     # Move to second secondary command's interpretation
++ 
++     :cond_2
++     const-string v0, "showtyping "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_3
++ 
++     # Move to config value interpretation
++ 
++     const/16 v0, 0xb
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v0, "true"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v1
++ 
++     # Set value
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0, v1}, Lcom/discord/stores/StoreUserSettings;->setShowTyping(Z)V
++ 
++     const-string p0, "CTC: Successfully set showtyping state."
++ 
++     return-object p0
++ 
++     :cond_3
++     const-string v0, "token "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_4
++ 
++     # Move to config value interpretation
++ 
++     const/16 v0, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Set value
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0, p0}, Lcom/discord/stores/StoreUserSettings;->setStoredToken(Ljava/lang/String;)V
++ 
++     const-string p0, "CTC: Successfully changed token. Please restart application."
++ 
++     return-object p0
++ 
++     :cond_4
++     const-string v0, "token"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_5
++ 
++     # Get value
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getStoredToken()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ 
++     :cond_5
++     const-string v0, "account "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_7
++ 
++     # Move to config value interpretation
++ 
++     const/16 v0, 0x8
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Set value
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0, p0}, Lcom/discord/stores/StoreUserSettings;->getAccountToken(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     const-string v1, "none"
++ 
++     invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v1
++ 
++     if-nez v1, :cond_6
++ 
++     invoke-virtual {v0, p0}, Lcom/discord/stores/StoreUserSettings;->setStoredToken(Ljava/lang/String;)V
++ 
++     const-string p0, "CTC: Successfully changed accounts. Please restart application."
++ 
++     return-object p0
++ 
++     :cond_6
++ 
++     const-string p0, "CTC: No such account found."
++ 
++     return-object p0
++ 
++     :cond_7
++     const-string v0, "addaccount "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_1
++ 
++     # Get value
++ 
++     const/16 v0, 0xb
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Get next space
++ 
++     const-string v0, " "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
++ 
++     move-result v0
++ 
++     # const/4 v1, 0x6
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
++ 
++     move-result-object v1
++ 
++     # at this point:
++     # p0 = "$username $token"
++     # v1 = "$username"
++ 
++     const-string v2, ""
++ 
++     invoke-virtual {p0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
++ 
++     move-result-object v1
++ 
++     # at this point:
++     # p0 = "$token"
++     # v1 = "$username"
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     const-string v2, "current"
++ 
++     invoke-virtual {p0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v2
++ 
++     if-eqz v2, :cond_8
++ 
++     invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getStoredToken()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     :cond_8
++     invoke-virtual {v0, p0, v1}, Lcom/discord/stores/StoreUserSettings;->setAccountToken(Ljava/lang/String;Ljava/lang/String;)V
++ 
++     const-string p0, "CTC: Added account."
++ 
++     return-object p0
++ 
++     :cond_1
++     const-string p0, "CTC: No known command supplied. (available: token, showtyping, channelleak, addaccount, account. Everything except specified token needs to be lowercase)"
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final slashCommands(Ljava/lang/String;)Ljava/lang/String;
++     .locals 1
++ 
++     # Ideas for commands (by luna): lower [done], upper [done], fw [done], bold [done], shrug [done]
++     # Ideas for commands (by bela): small [done], smaller [done]
++     # Discord's defaults: me [done], tableflip [done], unflip [done], spoiler [done]
++     # More ideas: morse [done], mock, help
++ 
++     # Trim input before anything
++     invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     # Upper command
++     const-string v0, "/upper "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_1
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashUpper(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Lower command
++     :cond_1
++     const-string v0, "/lower "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_2
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashLower(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Bold command
++     :cond_2
++     const-string v0, "/bold "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_3
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashBold(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Spoiler command
++     :cond_3
++     const-string v0, "/spoiler "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_4
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashSpoiler(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Me command
++     :cond_4
++     const-string v0, "/me "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_5
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashMe(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # St (strikethrough) command
++     :cond_5
++     const-string v0, "/st "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_6
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashSt(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Shrug command
++     :cond_6
++     const-string v0, "/shrug"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_7
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashShrug(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Tableflip command
++     :cond_7
++     const-string v0, "/tableflip"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_8
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashTableflip(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Unflip command
++     :cond_8
++     const-string v0, "/unflip"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_9
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashUnflip(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Lenny command
++     :cond_9
++     const-string v0, "/lenny"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_10
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashLenny(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Fw command
++     :cond_10
++     const-string v0, "/fw "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_11
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashFw(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Small command
++     :cond_11
++     const-string v0, "/small "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_12
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashSmall(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Smaller command
++     :cond_12
++     const-string v0, "/smaller "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_13
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashSmaller(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Flip command
++     :cond_13
++     const-string v0, "/flip "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_14
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashFlip(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Clap command
++     # *jeb voice* please clap
++     :cond_14
++     const-string v0, "/clap "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_15
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashClap(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # OwO command
++     :cond_15
++     const-string v0, "/owo "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_16
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashOwo(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     # Morse command
++     :cond_16
++     const-string v0, "/morse "
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_0
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashMorse(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     goto :goto_0
++ 
++     :cond_0
++     :goto_0
++     # And finally, trim output before sending it back
++     invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     return-object p0
++ .end method
++ 
++ .method public static final interceptSendMessage(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     const-string v0, "/"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_0
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashCommands(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     :cond_0
++     return-object p0
++ .end method
++ 
++ .method public static final interceptEditMessage(Ljava/lang/String;)Ljava/lang/String;
++     .locals 2
++ 
++     const-string v0, "/"
++ 
++     invoke-virtual {p0, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_0
++ 
++     invoke-static {p0}, Lcom/discord/stores/StoreMessages;->slashCommands(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p0
++ 
++     :cond_0
++     return-object p0
++ .end method
++ 
+  .method public final sendMessage(JLcom/discord/models/domain/ModelUser;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lrx/Observable;
+      .locals 8
+      .annotation system Ldalvik/annotation/Signature;
+***************
+*** 983,988 ****
+--- 3763,3772 ----
+  
+      invoke-static {p4, v0}, Lkotlin/jvm/internal/k;->h(Ljava/lang/Object;Ljava/lang/String;)V
+  
++     invoke-static {p4}, Lcom/discord/stores/StoreMessages;->interceptSendMessage(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object p4
++ 
+      const/4 v0, 0x1
+  
+      if-eqz p6, :cond_0
+diff -crB com.discord-963-base/smali/com/discord/stores/StoreUserSettings.smali com.discord-963/smali/com/discord/stores/StoreUserSettings.smali
+*** com.discord-963-base/smali/com/discord/stores/StoreUserSettings.smali	2019-10-01 22:09:20.853990424 +0300
+--- com.discord-963/smali/com/discord/stores/StoreUserSettings.smali	2019-10-01 22:47:11.025694020 +0300
+***************
+*** 1294,1299 ****
+--- 1294,1474 ----
+      return v0
+  .end method
+  
++ .method public getLeakChannels()Z
++     .locals 3
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences;
++ 
++     const-string v1, "CACHE_KEY_CTC_LEAK_CHANNELS"
++ 
++     const/4 v2, 0x1
++ 
++     invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
++ 
++     move-result v0
++ 
++     return v0
++ .end method
++ 
++ .method public setLeakChannels(Z)V
++     .locals 2
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences;
++ 
++     invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object v0
++ 
++     const-string v1, "CACHE_KEY_CTC_LEAK_CHANNELS"
++ 
++     invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object p1
++ 
++     invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V
++ 
++     return-void
++ .end method
++ 
++ .method public getShowTyping()Z
++     .locals 3
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences;
++ 
++     const-string v1, "CACHE_KEY_CTC_SHOW_TYPING"
++ 
++     const/4 v2, 0x1
++ 
++     invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
++ 
++     move-result v0
++ 
++     return v0
++ .end method
++ 
++ .method public setShowTyping(Z)V
++     .locals 2
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreUserSettings;->prefs:Landroid/content/SharedPreferences;
++ 
++     invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object v0
++ 
++     const-string v1, "CACHE_KEY_CTC_SHOW_TYPING"
++ 
++     invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object p1
++ 
++     invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V
++ 
++     return-void
++ .end method
++ 
++ 
++ .method public getStoredToken()Ljava/lang/String;
++     .locals 3
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences;
++ 
++     const-string v1, "none"
++ 
++     const-string v2, "STORE_AUTHED_TOKEN"
++ 
++     invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object v0
++ 
++     return-object v0
++ .end method
++ 
++ 
++ .method public setStoredToken(Ljava/lang/String;)V
++     .locals 2
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences;
++ 
++     invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object v0
++ 
++     const-string v1, "STORE_AUTHED_TOKEN"
++ 
++     invoke-interface {v0, v1, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object p1
++ 
++     invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V
++ 
++     return-void
++ .end method
++ 
++ .method public getAccountToken(Ljava/lang/String;)Ljava/lang/String;
++     .locals 3
++ 
++     const-string v2, "STORE_AUTHED_TOKEN_CTC_USER_"
++ 
++     invoke-virtual {p1}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
++ 
++     move-result-object p1
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object v2
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences;
++ 
++     const-string v1, "none"
++ 
++     invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object v0
++ 
++     return-object v0
++ .end method
++ 
++ 
++ .method public setAccountToken(Ljava/lang/String;Ljava/lang/String;)V
++     .locals 2
++ 
++     const-string v1, "STORE_AUTHED_TOKEN_CTC_USER_"
++ 
++     invoke-virtual {p1}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
++ 
++     move-result-object p1
++ 
++     new-instance v0, Ljava/lang/StringBuilder;
++ 
++     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
++ 
++     invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
++ 
++     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
++ 
++     move-result-object v1
++ 
++     iget-object v0, p0, Lcom/discord/stores/StoreAuthentication;->prefs:Landroid/content/SharedPreferences;
++ 
++     invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object v0
++ 
++     invoke-interface {v0, v1, p2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
++ 
++     move-result-object p1
++ 
++     invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V
++ 
++     return-void
++ .end method
++ 
+  .method handleConnectionOpen(Lcom/discord/models/domain/ModelPayload;)V
+      .locals 0
+  
+Only in com.discord-963/smali/com/discord/stores: StoreUserSettings.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali com.discord-963/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali
+*** com.discord-963-base/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali	2019-10-01 22:09:21.107325442 +0300
+--- com.discord-963/smali/com/discord/widgets/chat/input/WidgetChatInputEditText$1.smali	2019-10-01 22:47:11.025694020 +0300
+***************
+*** 55,60 ****
+--- 55,70 ----
+  
+      invoke-virtual {v0}, Lcom/discord/widgets/chat/input/WidgetChatInputEditText;->saveText()V
+  
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v0
++ 
++     invoke-virtual {v0}, Lcom/discord/stores/StoreUserSettings;->getShowTyping()Z
++ 
++     move-result v0
++ 
++     if-eqz v0, :cond_1
++ 
+      .line 222
+      invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
+  
+Only in com.discord-963/smali/com/discord/widgets/chat/input: WidgetChatInputEditText$1.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/widgets/chat/input/WidgetChatInputSend$configureSendListeners$1.smali com.discord-963/smali/com/discord/widgets/chat/input/WidgetChatInputSend$configureSendListeners$1.smali
+*** com.discord-963-base/smali/com/discord/widgets/chat/input/WidgetChatInputSend$configureSendListeners$1.smali	2019-10-01 22:09:21.110658797 +0300
+--- com.discord-963/smali/com/discord/widgets/chat/input/WidgetChatInputSend$configureSendListeners$1.smali	2019-10-01 22:47:11.025694020 +0300
+***************
+*** 371,376 ****
+--- 371,402 ----
+  
+      move-result-object v10
+  
++     # intercept send here
++ 
++     const-string v11, "/ctc "
++ 
++     invoke-virtual {v10, v11}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v11
++ 
++     if-eqz v11, :cond_6
++ 
++     invoke-static {v10}, Lcom/discord/stores/StoreMessages;->slashCtc(Ljava/lang/String;)Ljava/lang/String;
++ 
++     move-result-object v10
++ 
++     sget-object p1, Lcom/discord/widgets/chat/input/WidgetChatInputSend;->INSTANCE:Lcom/discord/widgets/chat/input/WidgetChatInputSend;
++ 
++     iget-object v0, p0, Lcom/discord/widgets/chat/input/WidgetChatInputSend$configureSendListeners$1;->$chatInput:Lcom/discord/widgets/chat/input/WidgetChatInputEditText;
++ 
++     invoke-static {p1, v0, v10}, Lcom/discord/widgets/chat/input/WidgetChatInputSend;->access$SetInput(Lcom/discord/widgets/chat/input/WidgetChatInputSend;Lcom/discord/widgets/chat/input/WidgetChatInputEditText;Ljava/lang/CharSequence;)Z
++ 
++     move-result p1
++ 
++     return p1
++ 
++     :cond_6
++ 
+      invoke-static {v10, v2}, Lkotlin/jvm/internal/k;->g(Ljava/lang/Object;Ljava/lang/String;)V
+  
+      .line 74
+Only in com.discord-963/smali/com/discord/widgets/chat/input: WidgetChatInputSend$configureSendListeners$1.smali.orig
+diff -crB com.discord-963-base/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali com.discord-963/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali
+*** com.discord-963-base/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali	2019-10-01 22:09:21.110658797 +0300
+--- com.discord-963/smali/com/discord/widgets/chat/input/WidgetChatInputSend.smali	2019-10-01 22:47:11.025694020 +0300
+***************
+*** 60,65 ****
+--- 60,89 ----
+      return p0
+  .end method
+  
++ .method public static final access$SetInput(Lcom/discord/widgets/chat/input/WidgetChatInputSend;Lcom/discord/widgets/chat/input/WidgetChatInputEditText;Ljava/lang/CharSequence;)Z
++     .locals 1
++ 
++     .line 147
++     invoke-virtual {p1, p2}, Lcom/discord/widgets/chat/input/WidgetChatInputEditText;->setText(Ljava/lang/CharSequence;)V
++ 
++     .line 148
++     invoke-virtual {p1}, Lcom/discord/widgets/chat/input/WidgetChatInputEditText;->clearLastTypingEmission()V
++ 
++     .line 151
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getChat()Lcom/discord/stores/StoreChat;
++ 
++     move-result-object p1
++ 
++     const/4 v0, 0x0
++ 
++     .line 152
++     invoke-virtual {p1, v0}, Lcom/discord/stores/StoreChat;->setEditingMessage(Lcom/discord/stores/StoreChat$EditingMessage;)V
++ 
++     const/4 p1, 0x1
++ 
++     return p1
++ .end method
++ 
+  .method private final clearInput(Lcom/discord/widgets/chat/input/WidgetChatInputEditText;)Z
+      .locals 1
+  
+
diff --git a/patches/slashcommands/README.md b/patches/slashcommands/README.md
index c641fe9..0c08d11 100644
--- a/patches/slashcommands/README.md
+++ b/patches/slashcommands/README.md
@@ -54,4 +54,5 @@ Commands like fw can be generated by `textreplacegen.py` or `textreplacegen-arra
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/smalltime/963.patch b/patches/smalltime/963.patch
new file mode 100644
index 0000000..417c8d6
--- /dev/null
+++ b/patches/smalltime/963.patch
@@ -0,0 +1,190 @@
+diff -crB from/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali to/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali
+*** from/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali	2019-05-12 12:13:48.187878981 +0300
+--- to/smali_classes2/com/miguelgaeta/simple_time/SimpleTime.smali	2019-05-12 12:15:32.663889927 +0300
+***************
+*** 239,411 ****
+  .end method
+  
+  .method public toReadableTimeString(Ljava/lang/Long;)Ljava/lang/String;
+!     .locals 6
+! 
+!     .line 126
+!     invoke-virtual {p0}, Lcom/miguelgaeta/simple_time/SimpleTime;->currentTimeMillis()J
+! 
+!     move-result-wide v0
+! 
+!     invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
+! 
+!     move-result-object v0
+! 
+!     invoke-virtual {p0, v0}, Lcom/miguelgaeta/simple_time/SimpleTime;->toCalendar(Ljava/lang/Long;)Ljava/util/Calendar;
+! 
+!     move-result-object v0
+! 
+!     const/4 v1, 0x0
+! 
+!     const/16 v2, 0xb
+! 
+!     .line 128
+!     invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V
+! 
+!     const/16 v2, 0xc
+! 
+!     .line 129
+!     invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V
+! 
+!     const/16 v2, 0xd
+! 
+!     .line 130
+!     invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V
+! 
+!     const/16 v2, 0xe
+! 
+!     .line 131
+!     invoke-virtual {v0, v2, v1}, Ljava/util/Calendar;->set(II)V
+! 
+!     .line 133
+!     iget-object v1, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->locale:Ljava/util/Locale;
+! 
+!     invoke-virtual {v1}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;
+! 
+!     move-result-object v1
+! 
+!     const-string v2, "en"
+! 
+!     invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
+! 
+!     move-result v1
+! 
+!     if-nez v1, :cond_1
+! 
+!     .line 136
+!     invoke-virtual {p1}, Ljava/lang/Long;->longValue()J
+! 
+!     move-result-wide v1
+! 
+!     invoke-virtual {v0}, Ljava/util/Calendar;->getTimeInMillis()J
+! 
+!     move-result-wide v3
+! 
+!     cmp-long v0, v1, v3
+! 
+!     if-lez v0, :cond_0
+! 
+!     .line 137
+      iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat;
+  
+      invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String;
+  
+-     move-result-object p1
+- 
+-     return-object p1
+- 
+-     .line 139
+-     :cond_0
+-     iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterDateTime:Ljava/text/DateFormat;
+- 
+-     invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String;
+- 
+-     move-result-object p1
+- 
+-     return-object p1
+- 
+-     .line 143
+-     :cond_1
+-     invoke-virtual {p1}, Ljava/lang/Long;->longValue()J
+- 
+-     move-result-wide v1
+- 
+-     invoke-virtual {v0}, Ljava/util/Calendar;->getTimeInMillis()J
+- 
+-     move-result-wide v3
+- 
+-     cmp-long v5, v1, v3
+- 
+-     if-lez v5, :cond_2
+- 
+-     .line 144
+-     new-instance v0, Ljava/lang/StringBuilder;
+- 
+-     const-string v1, "Today at "
+- 
+-     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+- 
+-     iget-object v1, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat;
+- 
+-     invoke-virtual {v1, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String;
+- 
+-     move-result-object p1
+- 
+-     invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+- 
+-     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+- 
+-     move-result-object p1
+- 
+-     return-object p1
+- 
+-     :cond_2
+-     const/4 v1, 0x5
+- 
+-     const/4 v2, -0x1
+- 
+-     .line 147
+-     invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->add(II)V
+- 
+-     .line 149
+-     invoke-virtual {p1}, Ljava/lang/Long;->longValue()J
+- 
+-     move-result-wide v1
+- 
+-     invoke-virtual {v0}, Ljava/util/Calendar;->getTimeInMillis()J
+- 
+-     move-result-wide v3
+- 
+-     cmp-long v0, v1, v3
+- 
+-     if-lez v0, :cond_3
+- 
+-     .line 150
+-     new-instance v0, Ljava/lang/StringBuilder;
+- 
+-     const-string v1, "Yesterday at "
+- 
+-     invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
+- 
+-     iget-object v1, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat;
+- 
+-     invoke-virtual {v1, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String;
+- 
+-     move-result-object p1
+- 
+-     invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
+- 
+-     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
+- 
+-     move-result-object p1
+- 
+-     return-object p1
+- 
+-     .line 153
+-     :cond_3
+-     iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterDateTime:Ljava/text/DateFormat;
+- 
+-     invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String;
+- 
+      move-result-object p1
+  
+      return-object p1
+--- 239,249 ----
+  .end method
+  
+  .method public toReadableTimeString(Ljava/lang/Long;)Ljava/lang/String;
+!     .locals 1
+      iget-object v0, p0, Lcom/miguelgaeta/simple_time/SimpleTime;->formatterTime:Ljava/text/DateFormat;
+  
+      invoke-virtual {v0, p1}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String;
+  
+      move-result-object p1
+  
+      return-object p1
diff --git a/patches/smalltime/README.md b/patches/smalltime/README.md
index 7a19a9f..3aa7599 100644
--- a/patches/smalltime/README.md
+++ b/patches/smalltime/README.md
@@ -42,4 +42,5 @@ This patch replaces the long time string with just a simple time string. This is
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/squareavatars/963.patch b/patches/squareavatars/963.patch
new file mode 100644
index 0000000..18e7503
--- /dev/null
+++ b/patches/squareavatars/963.patch
@@ -0,0 +1,21 @@
+diff -crB from/res/values/styles.xml to/res/values/styles.xml
+*** from/res/values/styles.xml	2019-10-01 22:09:17.070631936 +0300
+--- to/res/values/styles.xml	2019-10-01 22:10:25.744421867 +0300
+***************
+*** 853,859 ****
+          <item name="actualImageScaleType">fitCenter</item>
+          <item name="placeholderImage">@drawable/asset_default_avatar_32dp</item>
+          <item name="placeholderImageScaleType">fitCenter</item>
+!         <item name="roundAsCircle">true</item>
+      </style>
+      <style name="Avatar.Chat" parent="@style/Avatar.Large">
+          <item name="android:layout_width">@dimen/avatar_size_chat</item>
+--- 853,860 ----
+          <item name="actualImageScaleType">fitCenter</item>
+          <item name="placeholderImage">@drawable/asset_default_avatar_32dp</item>
+          <item name="placeholderImageScaleType">fitCenter</item>
+!         <item name="roundAsCircle">false</item>
+!         <item name="roundedCornerRadius">3dp</item>
+      </style>
+      <style name="Avatar.Chat" parent="@style/Avatar.Large">
+          <item name="android:layout_width">@dimen/avatar_size_chat</item>
diff --git a/patches/squareavatars/README.md b/patches/squareavatars/README.md
index f29c803..e84857c 100644
--- a/patches/squareavatars/README.md
+++ b/patches/squareavatars/README.md
@@ -44,4 +44,5 @@ A very small amount of rounding is applied to make it look a little better.
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
 
diff --git a/patches/tokenlogin/963.patch b/patches/tokenlogin/963.patch
new file mode 100644
index 0000000..bbf5d71
--- /dev/null
+++ b/patches/tokenlogin/963.patch
@@ -0,0 +1,33 @@
+diff -crB from/smali/com/discord/widgets/auth/WidgetAuthLogin.smali to/smali/com/discord/widgets/auth/WidgetAuthLogin.smali
+*** from/smali/com/discord/widgets/auth/WidgetAuthLogin.smali	2019-10-01 22:09:21.033991621 +0300
+--- to/smali/com/discord/widgets/auth/WidgetAuthLogin.smali	2019-10-01 22:10:29.801115506 +0300
+***************
+*** 927,932 ****
+--- 927,953 ----
+  
+      move-result-object v3
+  
++     # tokenlogin code
++ 
++     const-string v6, "tokenlogin"
++ 
++     invoke-virtual {v2, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
++ 
++     move-result v6
++ 
++     if-eqz v6, :cond_2
++ 
++     invoke-static {}, Lcom/discord/stores/StoreStream;->getUserSettings()Lcom/discord/stores/StoreUserSettings;
++ 
++     move-result-object v6
++ 
++     invoke-virtual {v6, v3}, Lcom/discord/stores/StoreUserSettings;->setStoredToken(Ljava/lang/String;)V
++ 
++     return-void
++ 
++     # end of new code (except conf below, that's also new)
++ 
++     :cond_2
+      invoke-virtual {v0, v2, v3, p1, p2}, Lcom/discord/stores/StoreAuthentication;->login(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lrx/Observable;
+  
+      move-result-object p1
diff --git a/patches/tokenlogin/README.md b/patches/tokenlogin/README.md
index 2bd2833..b6a682a 100644
--- a/patches/tokenlogin/README.md
+++ b/patches/tokenlogin/README.md
@@ -21,3 +21,4 @@ This patch relies on some stuff I added with slashcommands, so please use that p
 - 9.4.6
 - 9.4.7
 - 9.4.8
+- 9.6.3
diff --git a/patchport-state.json b/patchport-state.json
index 8b2b031..3ce8c3c 100644
--- a/patchport-state.json
+++ b/patchport-state.json
@@ -1 +1 @@
-{"versionname": "9.4.8", "versioncode": "948"}
\ No newline at end of file
+{"versionname": "9.6.3", "versioncode": "963"}
\ No newline at end of file