From b4e316c726ab3b56ada081674d8795753ac7e961 Mon Sep 17 00:00:00 2001 From: Vivek Date: Wed, 29 Nov 2023 08:13:54 +0530 Subject: [PATCH 01/10] fix: crash when selecting/closing file (#1498) --- .../main/java/com/itsaky/androidide/actions/ActionItem.kt | 2 +- .../androidide/activities/editor/EditorHandlerActivity.kt | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/actions/src/main/java/com/itsaky/androidide/actions/ActionItem.kt b/actions/src/main/java/com/itsaky/androidide/actions/ActionItem.kt index 0ef3b4eca3..a6dea8b03a 100644 --- a/actions/src/main/java/com/itsaky/androidide/actions/ActionItem.kt +++ b/actions/src/main/java/com/itsaky/androidide/actions/ActionItem.kt @@ -183,7 +183,7 @@ interface ActionItem { } fun forId(id: String): Location { - return values().first { it.id == id } + return entries.first { it.id == id } } } } diff --git a/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt index 7b38cb57ec..0b7be79f81 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt @@ -348,10 +348,8 @@ open class EditorHandlerActivity : ProjectHandlerActivity(), IEditorHandler { override fun getEditorForFile(file: File): CodeEditorView? { for (i in 0 until editorViewModel.getOpenedFileCount()) { - val editor = binding.editorContainer.getChildAt(i) as CodeEditorView - if (file == editor.file) { - return editor - } + val editor = binding.editorContainer.getChildAt(i) as? CodeEditorView + if (file == editor?.file) return editor } return null } From a835427b1f9d970e16b0e8d2501c14321cc892e7 Mon Sep 17 00:00:00 2001 From: Vivek Date: Fri, 8 Dec 2023 14:23:14 +0530 Subject: [PATCH 02/10] feat: replace one-time dialogs and permissions with app intro (#1399) --- app/build.gradle.kts | 7 +- app/src/main/AndroidManifest.xml | 3 + .../androidide/activities/MainActivity.kt | 61 ++------- .../activities/OnboardingActivity.kt | 117 ++++++++++++++++++ .../itsaky/androidide/app/IDEApplication.kt | 4 +- .../onboarding/OnboardingFragment.kt | 60 +++++++++ .../androidide/viewmodel/MainViewModel.kt | 2 +- .../main/res/layout/fragment_onboarding.xml | 51 ++++++++ gradle/libs.versions.toml | 4 + .../src/main/res/raw/java_animation.json | 1 + .../main/res/raw/statistics_animation.json | 1 + resources/src/main/res/values/strings.xml | 3 +- 12 files changed, 257 insertions(+), 57 deletions(-) create mode 100644 app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt create mode 100644 app/src/main/res/layout/fragment_onboarding.xml create mode 100644 resources/src/main/res/raw/java_animation.json create mode 100644 resources/src/main/res/raw/statistics_animation.json diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 52d9a8ae53..f562737b2f 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -47,7 +47,7 @@ android { "about.mappings", "about.properties", "about.ini", - "modeling32.png" + "modeling32.png", ) ) } @@ -56,6 +56,9 @@ android { abortOnError = false disable.addAll(arrayOf("VectorPath", "NestedWeights", "ContentDescription", "SmallSp")) } + buildFeatures { + viewBinding = true + } } kapt { arguments { arg("eventBusIndex", "${BuildConfig.packageName}.events.AppEventsIndex") } } @@ -73,6 +76,8 @@ dependencies { implementation(libs.common.glide) implementation(libs.common.jsoup) implementation(libs.common.kotlin.coroutines.android) + implementation(libs.common.appintro) + implementation(libs.common.lottie) implementation(libs.google.auto.service.annotations) implementation(libs.google.gson) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b13ab7ac20..dfa05a63f3 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -54,6 +54,9 @@ + @@ -130,25 +125,11 @@ class MainActivity : LimitlessIDEActivity() { onResult() return } + openOnboarding() + } - DialogUtils.newMaterialDialogBuilder(this).apply { - setTitle(string.title_androidide_statistics) - setMessage(string.msg_androidide_statistics) - setCancelable(false) - setPositiveButton(string.btn_opt_in) { dialog, _ -> - dialog.dismiss() - statOptIn = true - } - setNegativeButton(string.btn_no_thanks) { dialog, _ -> - dialog.dismiss() - statOptIn = false - } - setOnDismissListener { - statConsentDialogShown = true - onResult() - } - show() - } + private fun openOnboarding() { + startActivity(Intent(this, OnboardingActivity::class.java)) } override fun onInsetsUpdated(insets: Rect) { @@ -206,29 +187,6 @@ class MainActivity : LimitlessIDEActivity() { return binding.root } - private fun showDialogInstallJdkSdk() { - val dp24 = SizeUtils.dp2px(24f) - val builder = DialogUtils.newMaterialDialogBuilder(this) - builder.setTitle(string.title_warning) - val view = TextView(this) - view.setPaddingRelative(dp24, dp24, dp24, dp24) - view.text = HtmlCompat.fromHtml( - getString(string.msg_require_install_jdk_and_android_sdk), - HtmlCompat.FROM_HTML_MODE_COMPACT) - view.movementMethod = LinkMovementMethod.getInstance() - builder.setView(view) - builder.setCancelable(false) - builder.setPositiveButton(android.R.string.ok) { _, _ -> openTerminal() } - builder.setNegativeButton( - android.R.string.cancel) { _, _ -> finishAffinity() } - builder.setNeutralButton(string.btn_docs) { _, _ -> app.openDocs(); finishAffinity() } - builder.show() - } - - private fun openTerminal() { - startActivity(Intent(this, TerminalActivity::class.java)) - } - private fun checkDeviceSupported(): Boolean { val configProvider = IDEBuildConfigProvider.getInstance() @@ -261,10 +219,13 @@ class MainActivity : LimitlessIDEActivity() { DialogUtils.showDeviceNotSupported(this) } - return supported } + private fun checkToolsIsInstalled(): Boolean { + return Environment.JAVA.exists() && Environment.ANDROID_HOME.exists() + } + private fun openLastProject() { binding.root.post { tryOpenLastProject() } } @@ -315,10 +276,6 @@ class MainActivity : LimitlessIDEActivity() { startActivity(Intent(this, EditorActivityKt::class.java)) } - private fun checkToolsIsInstalled(): Boolean { - return Environment.JAVA.exists() && Environment.ANDROID_HOME.exists() - } - override fun onDestroy() { ITemplateProvider.getInstance().release() super.onDestroy() diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt new file mode 100644 index 0000000000..4149355495 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -0,0 +1,117 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.activities + +import android.content.Intent +import android.os.Bundle +import androidx.activity.OnBackPressedCallback +import androidx.fragment.app.Fragment +import com.github.appintro.AppIntro2 +import com.github.appintro.AppIntroPageTransformerType +import com.itsaky.androidide.R +import com.itsaky.androidide.R.string +import com.itsaky.androidide.fragments.onboarding.OnboardingFragment +import com.itsaky.androidide.preferences.internal.statConsentDialogShown +import com.itsaky.androidide.preferences.internal.statOptIn +import com.itsaky.androidide.utils.Environment + +class OnboardingActivity : AppIntro2() { + + private val onBackPressedCallback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finishAffinity() + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setTransformer(AppIntroPageTransformerType.Fade) + isIndicatorEnabled = true + isWizardMode = true + setProgressIndicator() + showStatusBar(true) + + if (!statConsentDialogShown) { + addSlide(OnboardingFragment.newInstance( + string.title_androidide_statistics, + string.msg_androidide_statistics, + R.raw.statistics_animation, + "statistics" + )) + } + if (!checkToolsIsInstalled()) { + addSlide(OnboardingFragment.newInstance( + string.title_install_jdk_sdk, + string.msg_require_install_jdk_and_android_sdk, + R.raw.java_animation, + "install_jdk_sdk" + )) + } + + onBackPressedDispatcher.addCallback(this, onBackPressedCallback) + } + + override fun onResume() { + super.onResume() + if (isSetupDone()) { + openActivity(MainActivity::class.java) + finish() + } + } + + override fun onSlideChanged(oldFragment: Fragment?, newFragment: Fragment?) { + super.onSlideChanged(oldFragment, newFragment) + checkConsent(oldFragment) + } + + override fun onNextPressed(currentFragment: Fragment?) { + super.onNextPressed(currentFragment) + checkConsent(currentFragment) + } + + private fun checkConsent(fragment: Fragment?) { + if (fragment is OnboardingFragment) { + when (fragment.name) { + "statistics" -> { + statOptIn = true + statConsentDialogShown = true + } + } + } + } + + override fun onDonePressed(currentFragment: Fragment?) { + super.onDonePressed(currentFragment) + if (currentFragment is OnboardingFragment) { + when (currentFragment.name) { + "install_jdk_sdk" -> openActivity(TerminalActivity::class.java) + else -> openActivity(MainActivity::class.java) + } + } + } + + private fun openActivity(cls: Class<*>) { + startActivity(Intent(this, cls)) + } + + private fun checkToolsIsInstalled(): Boolean { + return Environment.JAVA.exists() && Environment.ANDROID_HOME.exists() + } + + private fun isSetupDone(): Boolean = checkToolsIsInstalled() && statConsentDialogShown +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt b/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt index dea6b4a84c..65a86ae3ee 100755 --- a/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt +++ b/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt @@ -176,7 +176,7 @@ class IDEApplication : BaseApplication() { ExistingPeriodicWorkPolicy.UPDATE, request) operation.state.observeForever(object : Observer { - override fun onChanged(t: Operation.State?) { + override fun onChanged(t: Operation.State) { operation.state.removeObserver(this) log.debug("reportStatsIfNecessary: WorkManager enqueue result: $t") } @@ -222,7 +222,7 @@ class IDEApplication : BaseApplication() { val operation = WorkManager.getInstance(this) .cancelUniqueWork(StatUploadWorker.WORKER_WORK_NAME) operation.state.observeForever(object : Observer { - override fun onChanged(t: Operation.State?) { + override fun onChanged(t: Operation.State) { operation.state.removeObserver(this) log.info("StatUploadWorker: Cancellation result state: $t") } diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt new file mode 100644 index 0000000000..afbc669a30 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt @@ -0,0 +1,60 @@ +package com.itsaky.androidide.fragments.onboarding + +import android.os.Bundle +import android.text.method.LinkMovementMethod +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.annotation.RawRes +import androidx.annotation.StringRes +import androidx.core.text.HtmlCompat +import androidx.fragment.app.Fragment +import com.itsaky.androidide.databinding.FragmentOnboardingBinding + +class OnboardingFragment : Fragment() { + + @StringRes + private var title: Int? = null + + @StringRes + private var message: Int? = null + + @RawRes + private var icon: Int? = null + + var name: String? = null + + private var binding: FragmentOnboardingBinding? = null + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View { + binding = FragmentOnboardingBinding.inflate(inflater, container, false) + return binding!!.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding?.apply { + tvMessage.movementMethod = LinkMovementMethod.getInstance() + title?.let(this@OnboardingFragment::getString).also(tvTitle::setText) + message?.let { HtmlCompat.fromHtml(getString(it), HtmlCompat.FROM_HTML_MODE_COMPACT) }.also(tvMessage::setText) + icon?.let(animationView::setAnimation) + } + } + + override fun onDestroyView() { + super.onDestroyView() + binding = null + } + + companion object { + @JvmStatic + fun newInstance(@StringRes title: Int, @StringRes message: Int, @RawRes icon: Int, name: String) = + OnboardingFragment().apply { + this.title = title + this.message = message + this.icon = icon + this.name = name + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/viewmodel/MainViewModel.kt b/app/src/main/java/com/itsaky/androidide/viewmodel/MainViewModel.kt index 22ec69c94c..3abb64a317 100644 --- a/app/src/main/java/com/itsaky/androidide/viewmodel/MainViewModel.kt +++ b/app/src/main/java/com/itsaky/androidide/viewmodel/MainViewModel.kt @@ -72,7 +72,7 @@ class MainViewModel : ViewModel() { fun postTransition(owner: LifecycleOwner, action: Runnable) { if (isTransitionInProgress) { _isTransitionInProgress.observe(owner, object : Observer { - override fun onChanged(t: Boolean?) { + override fun onChanged(t: Boolean) { _isTransitionInProgress.removeObserver(this) action.run() } diff --git a/app/src/main/res/layout/fragment_onboarding.xml b/app/src/main/res/layout/fragment_onboarding.xml new file mode 100644 index 0000000000..c3dbfcdb69 --- /dev/null +++ b/app/src/main/res/layout/fragment_onboarding.xml @@ -0,0 +1,51 @@ + + + + + + + + + \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 65f5c33039..699b763ea4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,6 +15,8 @@ antlr4 = "4.13.1" androidx-work = "2.8.1" androidx-espresso = "3.5.1" retrofit = "2.9.0" +appintro = "6.3.1" +lottie = "3.4.0" [libraries] @@ -48,6 +50,8 @@ common-jsonrpc = { module = "org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc", versi common-leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version = "2.12" } common-retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } common-retrofit-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" } +common-appintro = { module = "com.github.AppIntro:AppIntro", version.ref = "appintro" } +common-lottie = { module = "com.airbnb.android:lottie", version.ref = "lottie" } # AndroidX androidx-annotation = { module = "androidx.annotation:annotation", version = "1.7.0" } diff --git a/resources/src/main/res/raw/java_animation.json b/resources/src/main/res/raw/java_animation.json new file mode 100644 index 0000000000..587034dc76 --- /dev/null +++ b/resources/src/main/res/raw/java_animation.json @@ -0,0 +1 @@ +{"v":"5.5.3","fr":25,"ip":0,"op":125,"w":1000,"h":1000,"nm":"JAVA","ddd":0,"assets":[{"id":"image_0","w":437,"h":258,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbUAAAECCAYAAAB5ZUkQAAAgAElEQVR4Xu2d23UjubWGN0rqZ/eJwHIEJjmtXstPliNwOwLLEViOYOQIRo7gyBFYHYGpp7OW1UPREViK4EjPLRW8UCIpiuKlLhuXAj8+zbSqcPmwgR/Y2AUY4QcBCEAAAhDIhIDJpB5UAwIQgAAEICCIGkYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RDwImo3g08nUpQnfaX0VJaXv5lO7/pafsoNAQhAYF8J+BG10ehcrPzYW6i2+N3x9Nu4t+Wn4BCAAAT2lACitq7hEbU97Q5UGwIQ6DsBRA1R67sNU34IQAACCwKIGqJGd4AABCCQDQFEDVHLxpipCAQgAAFEDVGjF0AAAhDIhgCihqhlY8xUBAIQgACihqjRCyAAAQhkQwBRQ9SyMWYqAgEIQABRQ9ToBRCAAASyIYCoIWrZGDMVgQAEIICoIWr0AghAAALZEEDUELVsjJmKQAACEEDUEDV6AQQgAIFsCHgRtf8bDI4O5fAoKKWiHIiVn1Ty5EBjFYwkAgEIQCA0AS+iFroSLr/qDjdT/lMlb0RNBSOJQAAC+0WgGocb/g7laTqcTh/+NRgMjBx+nL9u5enh83Q6XZfcaj7LzyJquB8bmiCPQwACEFhP4GY4so3ZzBYRN8ORu8Pyt8vvP9nyV6sXNn8b/PDFGvuPlXyuj28nlaAiaohaYxvkBQhAAAJrV1DKoiZG/no8mZwv57VO/EQEUdtqkrgf6bEQgAAEGhOYCc7yey624pdL/3AvInfLD1hbnjk34waxejy05ZFzT7p3KhelKW7XFAxRQ9Qa2ysvQAACEGhE4GY0OhcrPy5eWrPymv9tg6iJtfKnz9PJZSVqw+GlEfNHRK1RM4gIK7WmxHgeAhCAwDsCGqImIvfHt5OjKqreFP/ZgJmVGis1eiAEIAABvwQ6itqjiPzCldBY8wdbWPfZ1nzV59yYy25NRA1R82vMpA4BCECgi6hZsX9fcjVei8hgLnJi5C8r3yUjaogaHQ4CEICAXwKdRM2Ww01BIWKL85XvkhE1RM2vMZM6BCAAgS6idnw7MeuCR1zgiJHiDlFrYl8EijShxbMQgAAE1hLoKmr/GoxOjZH/XUq8ChpZc4IUKzVWavRCCEAAAn4JdBU1V7qb4ch91/YSFDL7JABRa9purNSaEuN5CEAAAu8IaIja8pmQ83MiEbWmxoaoNSXG8xCAAAS8iNo6rIhaU2ND1JoS43kIQAACiJqmDXD1jCZN0oIABCDQnUA1Lhfl63U0ZTE+nn5zp/G/+1VBIYUs7uFcPch4+YXqdJGiOJ3/my3lbn6UFqf0r6O7Zyu1ZZ+1lfJo2bBqm3VZLAx17veu/S4PQmDPCCxfpGzEfqxOy2j4M6WZWjHVQb9P8nS3ekVLw+SyeRxR2wNRc6JVyMGR6zjW2iMj5siIfLQiv/ZsydWJ3FbsnTHmTspiTOfzTJzkkyCwEK2idGL1UazMVytv7gvzVNhrcWJn7NQJXynPd5su2/SUf9RkEbWMRG2pI52INQMj9iiAcLUx4EcRMxZjx7Ysx/vU4drA4p10CdwOBh+f5HAgRekmjAM3YVy96DKh0l+LkbGbXG5yASZU1tZFQdR6KmpOwD7IwWB2yKebBb6ei9baHKK9eG+MXJVleZm6wK35GLQLtMfj28ni+vouCfXx3TffH3WogBH596fbSWP3XdMslwSsmjSKVC7D5UN1myYZ8/lqYmmtvZrvRcUsjGbeiFpPRK3a9yoK15lORKwTser06gx/99bK+Qcpr+YXA6ZWx5vhyO1jqPB3p49/mv58lVodfZdny2WPjbNevm+r8ctbXnATxwMpTsTYk0LMIFGvh0aVH42Ry+9leZHDvhyi1gNR0xxENXpAoDQexcjFYVlepCZu30ajC2vlzzoczNfj25+/6KTVn1S2XPbYtBJvbkZu+vKm5999NKyVcOLpuJPxn60977O4IWr9EDWbeF/wWbxHa+UsJRfJjssKG7N4suWv+jyINK1w5cYzhTv6qPNq1xj526fJ5KxpGXY9v6+iNufiuB6U5XlqE8pd7eb+jqghanXsJIVnrp9seZrK4L/p6vlWoLZccd8qvcRf0tyX9DUh2HdRm5nQo7HmtG/ucUQNUUt8CHxTvGRWbd8GP3yxxv5DCV518rhSWsknozghWJzMrl1pRO2VqHNJfrD2rC+rNkQNUdMeD7yn5zrZ59vbxWkC3jPckIFW9F6V/J588K/puvUVIOKaA1F7a/QuwvS7Lb+k4inZ1ucRNUQtliZ0zNd8PbTPpzFnj5oDXypC3bFRdr6uGGTj9XMIzbbdCaU/DzxaW56k/tkNooao9adLrZTUzR4PbHkSS9g0Vx2uaoe2/J9YdQllBFqrW18BInMOiNpGi0he2BA1RC3UeOYln9grnJvhD1ci9vcqlTPyl+PJ5EIlrQQT0dyH9BUggqjVMpzHJ1sOUnVFImqIWi0rTvqhiNGDmgO1iGQdMKI4AfAWIIKo1evpsb0k7KnVa6fXpxLbtL8Zjvb5O7V6rRexzbRcaq6i1pbD1Pcs6jXI26dm36b9f5t3V9/xGSCCqNVvodhekk0lZaXGSq2+Faf9pJeTJepUWXP/JdWBog6Hbc/cjEZnYuWnrumIiNcAEUStWQuleMwbooaouS/w/21FHqoTvN0X+Uv3NFl5elhdOSzfBVU9v3wfVNgrNt60nu/ggU3dXTlgJJo4NxvOmj2ttpoN5GrWnKhsIFVdy2SMTF3fc5dcGqlOWal+q3cSLg5TXk5sdvnm/DqpSIea3x/acpBSgBOitl+i9igiUydeIe5ZcofWihQDdyCsEePON+x8LNKuodR3AMGm/BX3iySEe20XR82/a95KH6p9NUXNTRpdnytLmTrh8nntixO/Zzk4kcKeuDvcghzCHGiiUdcmEbW8Re3eih2LNWORchp7r+YlqEJO1aIF17RdLPedZsBIqKtU6g4SXZ/TO7w43OHP3UTNfHUXdKZwb1l1RVVRnFnr+p23SWVS3gVELTtRqzrU+Kksr1INuX1x1x1c+BK3ULP5VdNRc7GJSKw6dBWw1fdVDy8OeE1PE1Gr3PdGrlIQsU3tV7VDUbh9TXf4s77HJKHVGqLWf1F7tGKvCltc9e3g0dnq5lK7k8VarTUZCHeJR6z9wV3lavp3xcOLg37usLstzVd3weazlONUJ4/r2mq2/+v63G+btuWO54O2z7ayIGr9FLXeCtkq7so9YoorZd9/kAi5dXU5NMV/lAaLKHVQKvsimW/DkQuE+HXndAOvBNaL2ouQpXyBbV3Oei7h1xxTiYRE1Hokam4F0scV2a6OVm1um2KsMvjNMovVwQgYeW1tzajQ0O7YuajNXIuXh2V5mVKE364+Vefv2sIWy0OyWldErQ+iNvh0shriW8do+/SM5t6Lq3esDqYZMCISLjDCh63oHV4cnoMT5AORj7GDq3y0y3KampOwUN8Q7mKCqPVA1HY1Yi5/1wz9jnnkFAEjLxZ5Mxw9aOyXxlp159KvttVjNpmcisgvNeqbwok4iBqipmHLamlozhxDu6zmEHYHGTTAFXgvqUHJtj6quGJNJgBBi01q6Si2lTuJIfqh3IgaopZUH9Pch4k1w9esQ8wVZxfDUJuc9FTUu7CL8a5aQE8CLnNEDVGL0Ye25nkzHLnjurqHHEccENUGdXcMWcDvszSMQVPUY622NTj0KY2+fnqxjjGihqgl1/f0Olj4AIM5TE2XTqygl7aGoXV4cd/q3ZZXCu9p3qJwfDuJqitRM9dsTNUgg4jXmGgy6WtaijN97/dubWOsGTDSp1ux1epNPwzahbU8JLGDRRA1VmpBO07dzJQGxqgfMCsHjETfgK/TdoqTSwJE6gBXfEbNXiNPRhA1RE2xW+glpTVrjOkKUVxxOrC9GOTVPuhNIIpOz5r7kZKWyzz2HjCihqgl2eO0Zo0xRc2B1QwYie3W2WUomh/Q98nduotLX/6utsqOGKDlWCNqiFqSfU5L1GJHz6kNFBFPSalrIFoBPgSI1CWu+5y7/9CY4rZzqohaZ4RVApqDh0T2CesQ6XcqWqKWQlsq7Q+6Bk3q3qpVC1P71on+F63z3gxHtnPmiFpnhIiaDsKkUslK1EYjd4/VTxqAU70VW22W35O9Q422TDENRC2hVmGlllBjKBQlJ1HT/AYo1Vux1Q4vJkBEofe0TwJRa89O/U1ETR1p1ARzEjUHUi0qMNFbsbUOLyZAJGq3c4dQ436M2wSvuSNqqbTE+3JUKxU5HMz/YqU8MoUcLf7f2iMjZvH/s3/vfkyWSyiR/RlN+0ztVmwCRNLse5VLWA4/utIZsR9tYRd90Ih8tFYW/z+rgeuD3U/rZ09NxyA0B41UBkIdMn5SWe4wUpQnLx3ntaNU/61x43HX4iciaq4amgEjx7eTarBK4af12ULqnyzEZv1mcliUTpBebMBK1f9UJ4NdKouodaHHSk2H3vtU3CRhPrtbmdXprKB8FXw13ZRELcOAEa0PzFPdKwxlpi6fxURxNklcEisnYL8IWZZOeSFqnfAtXmal1o6jG5Q+yMGgck28zPj61YF2VTshUdMMGEnlVmytvc9Uozp3mVebvy9WXE68rBkYsUdJeDXaVGbdO4iaDklErR7HajZYFK4znYhYJ2L9mQHWq+LbpxIStWo2PhxeGjF/bFOV1Xdif1juyqPkUk36+7uubeVE7LsUX8TYk0LMICsBQ9S6msfm9xG1zWzcmW6lKb8YcUKmsBHsrxn1U05M1FTtNPKMWKsuOZ4g4iaPRVGcOu9H9iK22msj2yXHZK0bRhMbCNuM9EtC9iX71dg2QAm2pdLqxtU66iHHWqvOXAJEKld+UZxZK67PdY8ibNPxU3gHUdNpBa1ZY1WaBAfCOpSqTfuX2eHpXneqZVgJtqXWJZqumrFORNfaH8whQGT2SYPrc/0KoqozqLR5BlFrQ+39O/ssak7MDow519qr0WmRRFJJUNS0BKGaf4n9++fbWzegBv2pfZtm5U+fp5PLoIVXyKxqw6Jwx58xgcT9qGBRa5LYR1GrNqCNuUDMtthUgqLmSqvlunNpxTiFQ+nw4l4GiMwE/WKv3frbhnFWajoit2+iNgulPqNj7bCfREVN1V4Dn5eodXhxrFVm2xGn+nbTlBd7F/jRFBii1pTY+udVB4lEB8Jqhu+iqkxxSceqaTcJt2VfA0a0VpkpfJJQx4qcR+S5KM6tlT/XeX7vn0HUdExgH0QNt0cLW0lZ1FRPGCmHn6fTaQtCjV9ROrz4+vh2sny8U+NyhHiBSWQLyohaC2h7uKemNTvWod2jVBIWtT4GjOxTgIj7LMYa64JY8j6gQLs7I2o6RHNdqeUeDOJCuq3Iw8IKjIyr/345sqt7iHTCoqYcMBIk6OJmOHLt07VdHlM6kHndCKQl3jqjm3oqjyKyWNUbI9NFH7TyY+fcELXOCKsEchS1ypdvinGP9s8WncWKvTPG3M1a90HKoupEVp4e6rjJtM4UTP2bQ0279X1+otrhxUb+9mkycUFOSf56KGjX7yaF7h/K4mWC6CJk5Wk6nE5fJ48byHOfWkImqTk4pDIQJuhyvBYxD2KsE6iFUB1Pvy06j5ZJ7IuoVROy4ciJf+cTKHx/yKzVJikHiCQoaPcicjdfTZnSTK2Yhyd5uvvNdDqfNGp1Oy4JVSOpkFBuohZZ0O5FzLQSr7IY++pA25pdawBNZYKyo67uI96fFLqB+BQMJfFNNkBE61OFDu14LUbGtpQ7kXJax6PRIa+1r7JS0ybaIb2cRC3CbPHRir0Sa8bPUo59zACbNu0+iZpmwIivW7FnQRP/aNqOq8/7dpG2Ld+sDdzKJ1hQSLWfbOTSluU4hoCtY4WotbUgD+/lImqzfQvn3gvQucxXY+Xy0/TnKw9N0inJfRI1B0pxZe4lCEOpfF7K1snQZi8rBcDUKcq9GLl4KsurFCaPqwVG1Oo0YaBnchG1AJ3r0Ri5/F6WFyl2qrm57Juoadqv9mpIayXpaxXZdYgJ5Bm5Fluc+9h/7lr/5fcRNU2aHdPSHBRi7cNouXg2oXTHEj1be56ymO2rqLl6K52n6JJS3bfSulXA535f2+HDt9uxcjHa4ix1MVv0u+HItmW5eI+Q/s4IqwRyEDWljfh1QO/FFqd96VhVe45G56LxzUzi36ktN5bmikFTQHTE1nw9vv3Z3TOW1E/NztbVKvLg3gY0K7U21Dy903dR87VKc6uzD9ae1flGxVPTtEpWbbDpkaiprhqUBlStiMBY975tMz5V3m8zure2/JJK8EeTDoioNaHl+dm+i5qXvTSlgc1z061Nfh9FzYFQCshwSanciq1UHpWyaNuh5sp4Xjbnbjyw5UnfJpG4H7WtSyG9Poua1kkNyxi1gwUUmqhREnsraoPBwJjithGsDQ9rrI5UDi9OdHKl41Z9hd93Qavc/uypaXQ9nTT6LGpaG/Fzkn27p2qdBeyrqDkWeoNtt30srZWM5v6ezmgh4mEieX9oy0FfV2is1LQsSzGdXouaziGxFU3fRyUpNtnWpPZZ1LTExAHuciu2jku8m7D6sjdNxq6M1oa7+scXE1ZqPsm2SLvnotY9jHaxTCt+16cox01Nvc+iphrA0PJWbK2VjIYLtMVwsPMVpb3CKp8cPCOs1HaaTPgH+ipqquVW/j4pfCu+5rjPouYoKA66rYI0vo1GFwo3PbfKO4TdaX4+k6J7tS1D9tTakvPwnqo7IWAYuOZ+Wqqz4jbNvfeiphgw0uYwAZVBP9EAEa0TUnJbpeF+bDNSeXxHbRCsLDWcC09pRuxKney5em2aXa09A7Zlm3pue0crYKSpe0zrm8lUVzCa3pGcJpKImnYP7pie2iAYWNR0NuNdodPckG/brGrt2WNRU/Q+NLoV+2b4w5WI/X3btkt9BaPpHekSiNOFr693cT/6ItsiXbVBMLCoac3GJVFXT4umrF5Ra88ei5pmwEjd7xbVXHMJc9eyrVwijZf7KKLWdsTy8J6iGy+o+1HFiNw6zZo/pHiFTNum1hp4QrqS29Z123taASN1B2ClVUyyASKOteJYoXpwtA/7aZqmyngUeYJtmlY61ef13Hhh99RUjCjw6jKEDSBqL5S1zl6sTKTGt1RKASJ/OZ5MLkLYSZs81MaKyIN3m7rvekdlPIrMBVFb18oBXScqRoSobe6rAdty14DR9u9aLupd95lpCWjq+0yI2mZLVBmPELW2Xf3teypn1M2SrDOj1Sm10llriFrWoqYZMHJ8O/m4CZaGq7NppKVWP2qSDqKGqDWxl2jPqswwZqU/vp0EW8GqlTuDFcmy8eB+fKURImBELY8e2CGihqhFE6q6GWt+d+LyRNTqkvf3HKL2lq3GKmqW4trgBqXVYNIBInOiiBqi5m/kUkpZqUPOSxM0oklrpUb04wZj6sHKoU430Nrvcnmt+yhaZaBvec5knfprPqNS15cCBR0rNBlsSktlPGJPrXtTKc5igx9OqmJEDmFkQ+reim9TYKX2nqhWwMiqrWgdXpx6gIj2Sq3uZxLafcNneirjUeSxKNjekeeGeBCRX6jkEbhBVIyoqjgniqxt/0xWaq5uih6JN25Cje+2+hAgshC10ehcrPyoMV6E3KrQKO+uNFTGo8Bj6Gqdei9qWufULcAEHgQVXSHZnP3oXG2FKS6tyK93dcKdfw/cnjvL0+EBtWCOlY/1VSKHe8RZzQuQ0aEHzra+G3NhxPyxg4m+vIqodUOocU7dcglCz7wURS2LU0VmJ1qcq628ezTY1ukJeq72l5W9xqSwb244jTrP26pPK9RN9qU6iUTU6nTjzc9o7QUs5RB841dz1tjnDvayCjm47HqQ7jtryU3UFK+kcXtgGszrnivZrbfrva0ZdONuxzi05dFwOnVbIL37KR2L9rberNTa24HmKme2bA5+vI/mrNHVIdXrPra18ozBpdrqbDmzzETNVU3L7t0JIwoXgfZyUFfZO5rbWeRBvM0IOlsQuD732zbvb30nMo/e7qkpbpov2ieGIKidiv5qZcFXm207hdeOtfAPhbsbry2Hpu/5sP2mZei7+01rYjDj8Phky8FvptO7thxDvqfpHVpbbkSteXPO3Adj5Zl9NDFQC9V+nTkGX3E2acVKyIviTCsCbWveGa7UZqs1vYjfJo238mzII+U6FPPdqx7cbtHGj7pcZh4Rd9D0L+u+0+o5RK0ZNk+CJjH3BTRCqt9RTHQwn60yXCCI346V8UrNVc2LzTTritK3AJHl6invq1VJp7qnPTtxyfU5fVfjOptJTdQcACtPD5+n02lDG/f+uHpk3GuJox7v46ODuQ1sa+Xs83Ti/ObRf8HFLHNR8xAk1dhGYk4EGxd2zQsq1+ysrlzF/v3z7e2pRvm6puFs5MCYc5Uw/SaFSU7UhiM7K/+jFXtV2OIq9uWT3vdeIjdCNfMejqYq32WtGJ8LBjgoy/NY0VnRxCxzUXPVU94XajJsuWd7GSCyXEkPLsgqebeC/W7LL7H22KqFiXk+DS5mc7iRx9N3gSJbooKuxciVLctxqFXcy7LZnqmHeb/tvveHthzEGvTnRfG8+X9vrZyHWrVVk5CiOBUrbsYaxs24aUhO1A3bVEHWPe/ZZrYWMVVXWxOuHoK03mZv5K+HZXkRYmypPp6W4osxVZ8L42bcBLtHorZchUcRMxZjx1IW0+PpNxe00fnnBsMPcjAoTfnFiDkJMSCm5ELx4Q5ZaZR7MXL5VJaX2rPIyoVaFCfGyqmPFWdr48pY1GartSgBI30NEFm1I72P2TdbqJsA+PB4zYVMjD0xYr4oB8617nLJnSjS9vsNt+S2Ig9iZC5wD07w1pExYj/awg7c36y1R0bMkYi4/9c5v7F+cyQVsRR45n1vxY6NMVPXTk/ydFdX6KoTCOTgqGpDawYi1k1AQrddvVbOXNQiBYwk1W/qGcL6pwLvTc4XA67PjZvELlTllMMjKcqBtXZQiBkkNXlcxtvTlVoXO0rl3SS/LQmwWqvD/3rNQ27iEdeVWKfkq89kLmqBB+WKbkrejTYmsfqO9++26hXyXkTefOdmRD4mK1zb6oSo1Wtx7adS7ZjaF55qc+tdepmL2swF6bwjofZRsjk4e27Ls70151Xq36QtxQ6JqIVvFRcR+GkyOQufc70cI7mU6hWub0/tgaiFdFun3nfamieTybbk1ryHqCnCrJFUH6K23Mzx2Tifu8LVKzWYpPeI+WqMvVM4l1BkD0RttloLEjAS4yi5UPaZiBsyVHVX87kXW5yKKf/ZuQCIWmeEtRPo0wkIvk5OqQ0rzoOPYuT8eDK5UBtg9kTUAq3uswkQ2WTekb/9i9PrxHw9tM+n7tODtoGCbwqOqIVpxz6s0FZJeDppJAzwhrmsfrCKqDUDGCJgJNV96Gaktj+9Z16SR2PN6fLhGoiapjV5TKuPgjbHEXK/xGMTbE96zcwOUWveGp5XGdkFiGwivCfCdv1ky9PVz3gQteb9LvQbSZ1/2LbyM2Fzp2un+S1Y24qJVH78dR/vI2rNofqcAOUaILKXwrbFPYioNe93wd5w7qzSlqehjvTyXbHc9th2nUmJqLWzqJvhyEvASM4BIvsibHXGREStXb/z/ZYLNrg4nkzcVQtZ/aqTPExx2eeoyOrkGVuc7TpaDVFrZ7qeAkayDxDZRjvEUVrtWrv2W4sArF1vIGq7CAX+u9s7e7b2vO5xT4GLp5Jd5e8vinOVcHeVEtVOpNGhyohaba5vHvQRMGKs+UPsmzra0dB7q69bAG5M/GDtWd1DlRE1PZvplNI+iNkqoGC32HZqmerlRmI2zw5Raw9eOWAk6l2D7Snov+n9Ciy9IlfXhrWZ4CNqeo3QJiVvJ863KUyMd6rjfYriTKy401FSCyK5tlYu2153g6i1tyjVgJHI3xy1p+DvzYQnlNWY2OW6myxFze3biBSDopCBtdXJ+TFOz99kkffGyFVZlpe5BIBodL2ExK1qn+9ledHVBTwbmDvfIGxtebaPtjJbrXU2r3Vh350TzSSB6BfgLjiar8bKpYaLWMNuukxmNUzj3SWh6xKtBk05HFgpj0whR1Tuo/EAAAPDSURBVLPrRj6KiO+T26+NkWlZyvRZynHXgVIDWMppzO9XKoychQomcYEf7rohJhopWwZl80lg6abpUHeaVe5Fd0fbgTyP6+6X+WSQUtq1RG1Xgeei555bCN/8JSvurq0tP/Mgxlb3rtlS7owUd03u9tpVtn39u/P/H0jhbg53FwhqXrjKRGNfjYp67yTgXJNS2BOxcqI1sXy5q9LcuUuZbVmO99HzsBP80gMqotYkQ56NQ2Ax8ShK5052q2w3A1kz4XidZLhHTGmmVswDE4047Uau/SbgVnEbLkV+UzHnkaouWX75VRcsN7lEtN+UdEuPqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEvgvBpx5L8u7vfoAAAAASUVORK5CYII=","e":1}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Capa 5 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[520,620.657,0],"ix":2},"a":{"a":0,"k":[162.25,25.907,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-8.068,-1.665],[-17.563,-0.79],[-6.019,-0.115],[-31.219,2.291],[-23.316,3.56],[-20.969,14.139],[-2.868,9.343],[-0.117,1.195],[5.791,-3.47],[7.544,-2.482],[2.413,-0.549],[11.166,-1.898],[0,0],[54.001,3.969],[10.495,1.229]],"o":[[4.39,1.413],[13.595,2.805],[42.86,1.928],[16.264,0.313],[17.791,-1.306],[0,0],[3.537,-2.385],[0.627,-2.042],[-3.618,4.298],[-5.1,3.056],[-8.74,2.876],[-17.89,4.068],[-40.649,6.91],[-10.346,0],[-17.124,-1.259],[0,0]],"v":[[-150,14.343],[-131,19.343],[-90,23.343],[-47,25.343],[26,23.343],[88,16.343],[147,-3.657],[161,-20.657],[162,-25.657],[148,-13.657],[131,-6.657],[113,-1.657],[75,6.343],[-15,15.343],[-120,13.343],[-162,9.343]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[162.25,25.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":6,"s":[85]},{"t":56,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Capa 6 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[472.986,592.029,0],"ix":2},"a":{"a":0,"k":[186.43,28.422,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":56,"s":[100,100,100]},{"t":167,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.019,0.43],[2.674,0.507],[2.461,0.121],[0.865,-0.038],[4.798,-0.683],[2.876,-0.797],[4.076,-1.498],[3.695,-1.683],[5.561,-3.523],[1.822,-1.606],[0.298,-0.354],[0.694,-1.439],[0.216,-1.354],[-0.116,-0.732],[-0.708,-1.122],[-0.946,-0.707],[-0.34,-0.154],[-0.49,-0.108],[0,0],[-10.845,-1.443],[0,0],[-13.94,-0.434],[-32.53,-0.074],[-6.475,0.113],[-16.076,1.396],[-8.213,0.994],[-14.646,3.146],[-8.814,2.558],[-18.041,7.69],[-3.751,3.188],[-0.165,0.195],[-0.131,0.267],[-0.169,1.283],[0.167,0.735],[1.689,1.87],[0.848,0.725],[1.361,0.527],[-0.863,-1.624],[0.265,-0.399],[1.722,-0.875],[0,0],[1.313,-0.227],[0.841,-0.146],[12.363,-0.807],[18.812,-0.47],[12.139,0.443],[19.867,2.784],[8.3,1.221],[2.448,0.633],[1.8,0.696],[2.914,1.792],[0.42,0.985],[-0.154,0.513],[-1.125,1.074],[-3.903,1.89],[-1.64,0.752],[-4.455,1.427],[-5.879,1.375],[-3.283,0.429]],"o":[[0.011,-0.24],[-2.773,-0.525],[-2.908,-0.143],[-3.645,0.16],[-6.389,0.909],[-4.602,1.274],[-3.568,1.312],[0,0],[-0.573,0.363],[-1.122,0.989],[-0.513,0.608],[-0.331,0.687],[-0.194,1.223],[0.132,0.835],[0.486,0.771],[2.441,1.824],[2.998,1.36],[13.411,2.961],[12.227,1.674],[14.549,1.938],[26.707,2.377],[6.444,0.2],[17.891,0.041],[8.883,-0.155],[12.908,-0.863],[11.963,-1.448],[10.91,-2.343],[0,0],[0,0],[1.078,-0.917],[1.24,-1.471],[0.395,-0.807],[0.089,-0.672],[-0.084,-0.369],[-0.55,-0.608],[-2.526,-2.16],[0.807,0.458],[2.168,4.078],[-1.403,2.114],[-9.496,4.826],[-11.756,3.062],[-12.857,2.216],[-11.554,2.013],[-34.409,2.246],[-40.562,1.013],[-17.442,-0.638],[-16.246,-2.276],[-0.678,-0.1],[-2.457,-0.635],[-0.483,-0.188],[-0.8,-0.492],[-0.53,-1.241],[0.301,-1.004],[1.694,-1.618],[2.936,-1.422],[1.227,-0.562],[1.045,-0.335],[4.469,-1.045],[5.287,-0.69]],"v":[[-100.986,-26.029],[-104.986,-27.029],[-111.986,-28.029],[-117.986,-28.029],[-129.986,-27.029],[-143.986,-24.029],[-155.986,-20.029],[-165.986,-16.029],[-176.986,-10.029],[-180.986,-7.029],[-182.986,-5.029],[-184.986,-2.029],[-185.986,0.971],[-185.986,3.971],[-184.986,6.971],[-182.986,8.971],[-177.986,11.971],[-171.986,13.971],[-150.986,17.971],[-130.986,20.971],[-103.986,23.971],[-49.986,27.971],[-14.986,27.971],[12.014,27.971],[50.013,25.971],[82.014,22.971],[120.014,16.971],[147.014,9.971],[173.014,-0.029],[181.014,-5.029],[183.014,-7.029],[185.014,-10.029],[186.014,-13.029],[186.014,-15.029],[184.014,-18.029],[182.014,-20.029],[175.014,-24.029],[178.014,-21.029],[177.014,-12.029],[172.014,-8.029],[158.014,-2.029],[135.014,2.971],[112.014,6.971],[70.014,10.971],[25.013,12.971],[-47.986,12.971],[-99.986,8.971],[-132.986,2.971],[-137.986,1.971],[-143.986,-0.029],[-149.986,-3.029],[-151.986,-5.029],[-151.986,-8.029],[-149.986,-11.029],[-142.986,-15.029],[-138.986,-17.029],[-130.986,-20.029],[-119.986,-23.029],[-109.986,-25.029]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[186.43,28.422],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"t":167,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Capa 7 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[478.451,546.659,0],"ix":2},"a":{"a":0,"k":[90.799,22.909,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.039,-0.863],[2.718,-1.751],[1.363,-1.381],[0.57,-1.519],[-0.158,-0.425],[-2.381,-2.441],[-0.5,-0.326],[-3.643,-1.499],[-5.63,-1.555],[-6.9,-1.145],[-5.787,-0.639],[-7.745,0.15],[-3.739,0.306],[-7.501,1.132],[-7.872,1.743],[-8.101,2.922],[-6.387,3.305],[5.602,2.752],[3.979,2.338],[3.368,-0.578],[1.422,-0.303],[5.816,-0.869],[6.217,-0.684],[3.583,-0.185],[9.02,0.056],[5.271,0.175],[10.407,0.646],[4.4,0.509],[8.433,1.761],[1.333,0.645],[0.68,0.562],[0.504,0.766],[-0.125,1.294],[-0.265,0.17]],"o":[[-3.259,1.07],[-3.094,1.311],[-2.079,1.34],[-1.58,1.601],[-1.099,2.929],[0.154,0.413],[2.857,2.93],[2.26,1.474],[4.49,1.848],[4.649,1.284],[3.075,0.51],[11.944,1.317],[8.685,-0.169],[4.826,-0.395],[2.113,-0.319],[7.44,-1.647],[4.069,-1.468],[-5.03,-1.941],[-4.688,-2.303],[-1.849,0.145],[-2.171,0.373],[-3.276,0.697],[-4.184,0.625],[-4.889,0.538],[-4.677,0.24],[-10.389,-0.063],[-5.075,-0.169],[-9.153,-0.568],[0,0],[-0.541,-0.113],[-1.366,-0.66],[-0.986,-0.814],[-0.459,-0.697],[0.173,-1.792],[0,0]],"v":[[-64.45,-22.659],[-73.45,-19.659],[-81.45,-15.659],[-86.45,-11.659],[-89.45,-7.659],[-89.45,-1.659],[-86.45,2.341],[-80.45,7.341],[-72.45,11.341],[-58.45,16.341],[-43.45,19.341],[-29.45,21.341],[-0.45,22.341],[18.55,21.341],[36.55,19.341],[52.55,16.341],[74.55,10.341],[90.55,3.341],[74.55,-3.659],[61.55,-10.659],[53.55,-9.659],[48.55,-8.659],[36.55,-6.659],[21.55,-4.659],[10.55,-3.659],[-4.45,-3.659],[-19.45,-3.659],[-34.45,-4.659],[-49.45,-5.659],[-61.45,-7.659],[-64.45,-8.659],[-67.45,-10.659],[-69.45,-12.659],[-70.45,-15.659],[-68.45,-18.659]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[90.799,22.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Capa 8 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[475.244,487.528,0],"ix":2},"a":{"a":0,"k":[103.006,22.197,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.27,0.466],[4.546,-1.854],[2.964,-1.695],[3.218,-4.216],[0.391,-1.69],[-0.511,-1.71],[-2.205,-2.088],[-2.21,-1.358],[-7.095,-1.969],[-3.496,-0.755],[-4.048,-0.521],[-2.519,-0.179],[-6.711,-0.165],[-8.702,0.475],[-7.104,0.85],[-9.862,1.656],[-11.221,3.188],[4.433,2.852],[2.491,2.454],[1.681,-0.401],[11.918,-1.747],[8.066,-0.99],[5.928,-0.517],[13.503,-0.216],[8.887,0.266],[7.423,0.689],[0.257,0.033],[3.708,0.591],[1.421,0.388],[1.577,1.052],[0.913,1.588],[0.108,1.438],[-0.623,1.172]],"o":[[-0.242,-0.419],[-6.77,2.761],[-0.491,0.281],[-0.817,1.071],[-0.177,0.767],[0.272,0.913],[1.764,1.671],[4.54,2.789],[1.937,0.537],[4.348,0.938],[9.621,1.238],[9.33,0.663],[12.865,0.316],[7.866,-0.43],[2.01,-0.24],[19.249,-3.232],[-3.396,-1.262],[-4.203,-2.704],[-0.935,0.244],[-4.289,1.024],[-1.447,0.212],[-6.286,0.771],[-7.745,0.676],[-10.763,0.172],[-4.47,-0.134],[-4.358,-0.405],[-0.454,-0.059],[-2.392,-0.381],[-2.039,-0.557],[-0.865,-0.577],[-0.293,-0.51],[-0.116,-1.536],[2.375,-4.472]],"v":[[-74.244,-21.528],[-82.244,-18.528],[-91.244,-14.528],[-100.244,-7.528],[-102.244,-3.528],[-102.244,0.472],[-99.244,4.472],[-94.244,8.472],[-78.244,14.472],[-70.244,16.472],[-58.244,18.472],[-38.244,20.472],[-15.244,21.472],[12.756,21.472],[33.756,19.472],[54.756,16.472],[102.756,5.472],[90.756,-0.528],[80.756,-8.528],[76.756,-7.528],[54.756,-3.528],[39.756,-1.528],[21.756,0.472],[-6.244,1.472],[-32.244,1.472],[-51.244,0.472],[-60.244,-0.528],[-67.244,-1.528],[-72.244,-2.528],[-77.244,-4.528],[-80.244,-7.528],[-81.244,-10.528],[-80.244,-14.528]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[103.005,22.197],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Capa 9 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[463.584,428.946,0],"ix":2},"a":{"a":0,"k":[134.666,24.304,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.318,-1.316],[0.74,-1.558],[-0.832,-1.562],[-0.451,-0.273],[0,0],[-1.154,-0.181],[0,0],[-7.844,0.243],[-24.364,2.764],[-23.901,5.261],[-4.105,2.329],[-3.726,1.625],[5.819,-0.825],[8.149,-1.05],[19.643,-0.954],[9.278,-0.363],[16.713,0.244],[10.553,0.766],[4.015,0.719],[4.353,1.526],[0.533,1.08],[-0.101,0.241],[-2.042,1.366],[-3.771,1.788],[-1.904,0.875],[-4.507,1.442],[-4.47,1.019],[0,0],[5.06,-0.58],[6.863,-2.104],[4.293,-1.662],[7.364,-2.994]],"o":[[-2.83,1.607],[-0.696,1.466],[0.606,1.138],[6.762,4.106],[9.23,2.546],[27.297,4.267],[20,1],[25.26,-0.783],[15.619,-1.772],[3.229,-2.294],[4.234,-2.401],[-3.348,0.482],[-12.675,1.797],[-10.884,1.402],[-5.094,0.264],[-18.959,0.741],[-5.407,-0.079],[-6.173,-0.448],[0,0],[-3.491,-1.224],[-0.888,-1.798],[0.353,-0.843],[2.579,-1.725],[2.516,-1.193],[1.178,-0.542],[2.822,-0.903],[0,0],[-8.126,-0.109],[-14.336,1.642],[-7.19,2.204],[-8.304,3.213],[0,0]],"v":[[-128.584,-1.946],[-133.584,2.054],[-133.584,7.054],[-131.584,9.054],[-121.584,14.054],[-106.584,18.054],[-58.584,23.054],[-16.584,23.054],[51.416,19.054],[111.416,9.054],[122.416,2.054],[134.416,-3.946],[120.416,-1.946],[84.416,3.054],[38.416,8.054],[16.416,9.054],[-32.584,10.054],[-59.584,9.054],[-81.584,7.054],[-88.584,5.054],[-94.584,1.054],[-94.584,-2.946],[-91.584,-5.946],[-83.584,-9.946],[-78.584,-11.946],[-70.584,-14.946],[-59.584,-18.946],[-41.584,-23.946],[-61.584,-22.946],[-93.584,-15.946],[-110.584,-9.946],[-124.584,-3.946]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[134.666,24.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Capa 4 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[639.852,450.047,0],"ix":2},"a":{"a":0,"k":[43.103,55.203,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.278,0.386],[-18.117,-9.907],[-0.994,-1.35],[-0.308,-1.106],[0.274,-2.874],[2.29,-4.958],[1.716,-2.329],[2.723,-2.91],[0,0],[6.326,-2.285],[6.465,-1.688],[1.323,-0.316],[0,0],[-13.615,12.617],[-4.229,6.894],[-1.133,5],[5.718,10.274],[3.09,1.415],[0.937,0.076],[2.746,-0.606],[2.13,-0.967]],"o":[[0.684,-0.25],[3.604,-1.088],[8.425,4.607],[4.183,5.681],[1.705,6.131],[-0.26,2.722],[-1.502,3.253],[0,0],[-12.305,13.149],[-5.259,2.398],[-6.819,2.463],[-1.344,0.351],[0,0],[8.865,-4.187],[5.805,-5.379],[2.857,-4.658],[0.585,-2.583],[-4.983,-8.954],[-5.47,-2.505],[-4.629,-0.378],[-3.813,0.842],[0,0]],"v":[[-25.852,-45.047],[-19.852,-48.047],[21.148,-45.047],[35.148,-33.047],[41.148,-21.047],[42.148,-7.047],[39.148,4.953],[34.148,12.953],[29.148,18.953],[-1.852,40.953],[-19.852,47.953],[-38.852,53.953],[-42.852,54.953],[-39.852,51.953],[-1.852,26.953],[13.148,8.953],[19.148,-4.047],[16.148,-27.047],[0.148,-41.047],[-10.852,-44.047],[-21.852,-43.047],[-30.852,-40.047]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.102,55.204],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Capa 10 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[528.452,387,0],"to":[2.833,-10.917,0],"ti":[-2.833,10.917,0]},{"t":56,"s":[545.452,321.5,0]}],"ix":2},"a":{"a":0,"k":[59.798,101.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0.874,-2.06],[1.045,-3.5],[1.388,-4.553],[1.904,-5.219],[2.593,-5.499],[3.454,-5.391],[4.488,-4.897],[5.696,-4.016],[2.679,-5.07],[0.161,-5.57],[-1.632,-5.673],[-2.702,-5.38],[-3.047,-4.691],[-2.668,-3.604],[-1.565,-2.122],[0.261,-0.243],[-1.337,4.16],[-2.283,6.847],[-3.243,8.276],[-4.217,8.447],[-5.205,7.36],[-6.208,5.014],[0.565,9.463],[4.371,9.695],[4.183,6.541]],"o":[[-0.877,0.233],[-0.874,2.06],[-1.045,3.5],[-1.388,4.553],[-1.904,5.219],[-2.593,5.499],[-3.454,5.391],[-4.488,4.897],[-5.92,4.174],[-2.679,5.07],[-0.161,5.57],[1.632,5.673],[2.702,5.38],[3.047,4.691],[2.668,3.604],[1.565,2.122],[0.405,-0.215],[1.337,-4.16],[2.283,-6.847],[3.243,-8.276],[4.217,-8.447],[5.205,-7.36],[7.235,-5.844],[-0.565,-9.463],[-4.371,-9.695],[-4.183,-6.541]],"v":[[-20.452,-95.25],[-23.035,-91.715],[-25.871,-83.28],[-29.476,-71.104],[-34.37,-56.349],[-41.072,-40.176],[-50.098,-23.744],[-61.969,-8.215],[-77.202,5.25],[-89.919,19.215],[-93.998,35.275],[-91.61,52.239],[-84.928,68.918],[-76.124,84.124],[-67.371,96.665],[-60.839,105.354],[-58.702,109],[-56.092,102.123],[-50.667,85.298],[-42.382,62.298],[-31.197,36.899],[-17.068,12.875],[0.048,-6],[9.054,-29.807],[0.651,-59.391],[-13.179,-84.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[2.435,-0.751],[3.741,-1.499],[4.397,-2.372],[4.402,-3.37],[3.756,-4.492],[2.459,-5.739],[0.512,-7.111],[-2.086,-8.608],[-0.644,-5.569],[0.052,-5.848],[0.526,-5.773],[0.779,-5.343],[0.812,-4.557],[0.623,-3.417],[0.214,-1.921],[-0.416,-0.071],[-4.589,7.586],[-2.643,6.565],[-0.995,5.552],[0.354,4.548],[1.406,3.553],[2.159,2.565],[-3.233,9.768],[-6.337,10.522],[-5.26,7.265]],"o":[[-0.478,0.127],[-2.435,0.751],[-3.741,1.499],[-4.397,2.372],[-4.402,3.37],[-3.756,4.492],[-2.459,5.739],[-0.512,7.111],[1.56,4.934],[0.644,5.569],[-0.052,5.848],[-0.526,5.773],[-0.779,5.343],[-0.812,4.557],[-0.623,3.417],[-0.214,1.921],[6.834,-8.615],[4.589,-7.586],[2.643,-6.565],[0.995,-5.552],[-0.354,-4.548],[-1.406,-3.553],[-4.054,-5.006],[3.233,-9.768],[6.337,-10.522],[5.26,-7.265]],"v":[[17.948,-98.25],[13.416,-96.965],[3.99,-93.622],[-8.38,-87.847],[-21.74,-79.265],[-34.139,-67.502],[-43.624,-52.186],[-48.243,-32.941],[-46.044,-9.394],[-42.794,6.449],[-41.962,23.663],[-42.883,41.184],[-44.896,57.946],[-47.339,72.885],[-49.547,84.934],[-50.858,93.03],[-50.61,96.106],[-33.551,71.806],[-22.777,50.582],[-17.394,32.408],[-16.507,17.259],[-19.222,5.11],[-24.643,-4.065],[-24.829,-27.229],[-9.428,-58.666],[9.013,-86.349]],"c":true}]},{"t":56,"s":[{"i":[[0,0],[11.287,-4.28],[18.062,-11.687],[2.273,-2.357],[4.173,-8.724],[0.032,-2.865],[-1.238,-4.173],[-4.071,-6.278],[0,0],[-2.976,-3.71],[-0.59,-0.749],[-1.8,-3.401],[0.021,-3.606],[2.091,-1.942],[-4.046,2.727],[-8.088,12.457],[-1.369,6.243],[3.108,9.61],[1.244,1.901],[3.062,4.384],[1.53,2.378],[0.75,1.731],[-0.375,1.683],[-3.381,4.82],[-5.125,4.512],[-12.307,7.874]],"o":[[-7.014,1.86],[-11.191,4.244],[-16.219,10.494],[-4.72,4.893],[-5.637,11.785],[-0.095,8.437],[0.913,3.078],[2.156,3.326],[0.746,0.964],[2.273,2.834],[2.017,2.559],[3.053,5.77],[-0.098,16.879],[2.432,-1.289],[6.669,-4.496],[3.016,-4.645],[0.431,-1.966],[-1.809,-5.591],[-1.463,-2.236],[-2.613,-3.743],[-4.833,-7.513],[-4.469,-10.315],[1.503,-6.735],[3.885,-5.54],[6.437,-5.666],[0,0]],"v":[[59.548,-101.5],[31.548,-92.5],[-13.452,-71.5],[-39.452,-51.5],[-53.452,-32.5],[-59.452,-7.5],[-56.452,11.5],[-49.452,27.5],[-44.452,34.5],[-40.452,39.5],[-36.452,44.5],[-29.452,54.5],[-26.452,69.5],[-42.452,101.5],[-32.452,95.5],[-7.452,71.5],[-0.452,56.5],[-1.452,36.5],[-7.452,24.5],[-12.452,17.5],[-18.452,8.5],[-26.452,-4.5],[-28.452,-26.5],[-20.452,-42.5],[-7.452,-56.5],[20.548,-77.5]],"c":true}]}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.795999983245,0.19199999641,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.798,101.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Capa 11 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[493.936,405,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[481.936,257,0]}],"ix":2},"a":{"a":0,"k":[71.269,147.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0.874,-2.06],[1.045,-3.5],[1.388,-4.553],[1.904,-5.219],[2.593,-5.499],[3.454,-5.391],[4.488,-4.897],[5.696,-4.016],[2.679,-5.07],[0.161,-5.57],[-1.632,-5.673],[-2.702,-5.38],[-3.047,-4.691],[-2.668,-3.604],[-1.565,-2.122],[0.261,-0.243],[-1.83,5.758],[-3.198,9.084],[-4.59,10.235],[-6.008,9.213],[-7.449,6.017],[0.565,9.463],[4.371,9.695],[4.183,6.541]],"o":[[-0.877,0.233],[-0.874,2.06],[-1.045,3.5],[-1.388,4.553],[-1.904,5.219],[-2.593,5.499],[-3.454,5.391],[-4.488,4.897],[-5.92,4.174],[-2.679,5.07],[-0.161,5.57],[1.632,5.673],[2.702,5.38],[3.047,4.691],[2.668,3.604],[1.565,2.122],[0.486,-0.258],[1.83,-5.758],[3.198,-9.084],[4.59,-10.235],[6.008,-9.213],[7.235,-5.844],[-0.565,-9.463],[-4.371,-9.695],[-4.183,-6.541]],"v":[[-31.923,-140.75],[-34.506,-137.215],[-37.342,-128.78],[-40.947,-116.604],[-45.841,-101.849],[-52.543,-85.676],[-61.569,-69.244],[-73.44,-53.715],[-88.673,-40.25],[-101.39,-26.285],[-105.469,-10.225],[-103.081,6.739],[-96.399,23.418],[-87.595,38.624],[-78.842,51.165],[-72.31,59.854],[-70.173,63.5],[-66.705,53.933],[-59.169,31.127],[-47.493,1.605],[-31.602,-28.111],[-11.423,-51.5],[-2.417,-75.307],[-10.82,-104.891],[-24.65,-130.092]],"c":true}]},{"t":50,"s":[{"i":[[0,0],[3.95,-17.977],[7.08,-8.359],[4.226,-3.76],[22.202,-16.741],[10.035,-8.958],[1.546,-1.499],[5.086,-8.617],[1.346,-5.42],[-2.798,-5.705],[-1.058,-1.466],[-9.496,-8.808],[3.187,5.398],[7.819,12.032],[3.71,12.489],[0.261,5.782],[-3.852,7.107],[-3.954,3.791],[-11.305,9.361],[-3.5,3.049],[-6.155,6.421],[-1.818,2.972],[-2.938,10.186],[0.194,2.393],[1.941,4.784]],"o":[[2.311,8.789],[-4.704,21.404],[-6.058,7.152],[-6.55,5.829],[-7.157,5.397],[-1.342,1.198],[-7.236,7.012],[-3.597,6.094],[-4.082,16.443],[2.463,5.022],[15.029,20.835],[-1.475,-3.02],[-7.328,-12.415],[-5.789,-8.908],[-1.514,-5.094],[-0.642,-14.208],[6.35,-11.716],[2.043,-1.958],[7.233,-5.989],[3.691,-3.217],[11.999,-12.517],[4.983,-8.146],[3.955,-13.709],[-0.73,-9.011],[0,0]],"v":[[56.064,-147],[57.064,-105],[33.064,-61],[17.064,-45],[-11.936,-23],[-37.702,-1.953],[-41.936,2],[-59.936,24],[-66.936,39],[-60.936,76],[-54.936,86],[3.064,147],[-3.936,134],[-21.936,108],[-36.936,78],[-39.936,63],[-30.936,31],[-12.936,8],[6.064,-8],[18.064,-18],[34.064,-33],[55.064,-60],[67.064,-85],[70.064,-112],[65.064,-133]],"c":true}]}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.795999983245,0.19199999641,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.268,147.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Capa 3","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[497.117,767.384,0],"ix":2},"a":{"a":0,"k":[218.185,128.63,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":125,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/resources/src/main/res/raw/statistics_animation.json b/resources/src/main/res/raw/statistics_animation.json new file mode 100644 index 0000000000..44e0c246de --- /dev/null +++ b/resources/src/main/res/raw/statistics_animation.json @@ -0,0 +1 @@ +{"v":"5.6.3","fr":25,"ip":0,"op":89,"w":500,"h":500,"nm":"people","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 13 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[326.767,392.522,0],"ix":2},"a":{"a":0,"k":[30.482,95.561,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.952,0.769],[0.346,0.435],[-1.759,2.455],[-3.292,-0.183],[-1.332,-1.358],[-0.194,-0.875],[0.424,-0.042],[0.031,-1.933],[0.079,-4.936],[1.102,-1.396],[1.722,0.345],[1.06,1.399],[0.029,1.536],[0.005,1.741],[2.134,2.132]],"o":[[-0.431,-0.348],[-2.197,-2.759],[1.96,-2.735],[1.878,0.105],[0.617,0.629],[0.058,0.261],[3.245,-0.32],[-0.079,4.936],[-0.028,1.778],[-1.088,1.378],[-1.721,-0.345],[-0.9,-1.189],[-0.032,-1.723],[-0.009,-3.017],[-0.868,-0.867]],"v":[[-7.37,-4.981],[-8.551,-6.139],[-7.566,-14.405],[1.42,-18.455],[6.416,-16.385],[7.683,-14.212],[7.503,-11.857],[10.554,-3.186],[10.318,11.623],[9.111,16.717],[4.36,18.293],[0.084,15.419],[-1.933,10.917],[-1.736,5.675],[-4.469,-2.705]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.017,18.888],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-0.179,-0.173],[0.172,-0.178]],"o":[[0,0],[0,0],[0,0],[0.173,-0.179],[0.178,0.172],[0,0]],"v":[[-3.389,4.148],[-4.702,4.861],[-4.036,3.523],[3.883,-4.677],[4.519,-4.688],[4.53,-4.053]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[13.147,38.851],"to":[1.042,-0.229],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[19.397,37.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[13.147,38.851],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[19.397,37.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[13.147,38.851],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[19.397,37.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[13.147,38.851],"to":[0,0],"ti":[-1.042,0.229]},{"t":103,"s":[19.397,37.476]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.542,-0.995]],"o":[[-0.984,0.562],[0,0]],"v":[[1.175,-1.198],[-1.175,1.198]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.128,44.11],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.158,1.501],[1.16,0.398],[2.002,0.528],[0.78,0.124],[0,-2.62],[-2.532,-1.208],[-1.557,-0.466],[-1.607,0.354],[-0.368,0.605],[0.014,0.416]],"o":[[-1.051,-0.5],[-1.992,-0.683],[-0.758,-0.201],[-2.178,1.773],[2.297,1.536],[1.418,0.676],[1.557,0.466],[0.84,-0.185],[0.23,-0.377],[-0.095,-2.837]],"v":[[5.665,-2.836],[2.328,-4.173],[-3.762,-5.943],[-8.204,-6.997],[-10.997,-1.418],[-0.589,4.47],[3.794,6.321],[8.703,6.643],[10.738,5.48],[10.983,4.258]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[39.525,49.737],"to":[1.446,-0.333],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[48.2,47.736],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[39.525,49.737],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[48.2,47.736],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[39.525,49.737],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[48.2,47.736],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[39.525,49.737],"to":[0,0],"ti":[-1.446,0.333]},{"t":103,"s":[48.2,47.736]}],"ix":2},"a":{"a":0,"k":[10.657,5.162],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.429,-0.247],[-0.626,0.219],[-0.215,0.65],[0.262,0.222],[0.342,0.021],[0.5,-0.927],[0.31,0.091],[0.06,0.141],[-0.49,0.793],[-0.638,0.361],[-0.82,-0.057],[-1.4,-0.985],[-0.366,-0.26],[-1.092,-0.364],[0.341,-1.183],[0.054,-0.033],[0.065,0.016],[2.016,0.316]],"o":[[0.122,-0.652],[0.647,-0.225],[0.107,-0.326],[-0.261,-0.221],[-1.052,-0.065],[-0.154,0.285],[-0.147,-0.042],[-0.366,-0.857],[0.386,-0.623],[0.715,-0.406],[1.657,0.114],[0.367,0.259],[0.94,0.666],[-0.341,1.184],[-0.018,0.061],[-0.058,0.035],[-2.011,-0.491],[-1.445,-0.185]],"v":[[-5.146,2.636],[-3.907,1.195],[-1.949,0.318],[-1.996,-0.352],[-2.949,-0.685],[-5.565,0.768],[-6.252,1.335],[-6.555,1.01],[-5.925,-1.599],[-4.49,-3.233],[-2.082,-3.556],[2.711,-2.331],[3.779,-1.512],[6.921,-0.108],[5.898,3.443],[5.804,3.604],[5.608,3.608],[-0.74,2.39]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[15.807,40.03],"to":[1.36,-0.555],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[23.969,36.698],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[15.807,40.03],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[23.969,36.698],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[15.807,40.03],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[23.969,36.698],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[15.807,40.03],"to":[0,0],"ti":[-1.36,0.555]},{"t":103,"s":[23.969,36.698]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.094,-2.943],[1.49,-1.744],[1.819,-1.429],[2.239,0.219]],"o":[[-1.094,2.944],[-0.786,2.115],[-1.484,1.738],[-1.769,1.389],[0,0]],"v":[[8.252,-11.131],[4.969,-2.3],[1.947,4.261],[-2.739,9.326],[-8.252,10.912]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.861,53.261],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.656,5.02]],"o":[[0.934,-5.602],[0,0]],"v":[[-3.132,8.596],[3.132,-8.596]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.926,39.478],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.637,1.742],[2.042,-1.282],[0.617,-1.228],[0.526,-1.598],[0.509,-1.664],[0.626,-2.782],[-1.047,-2.652],[-2.222,2.108],[-0.852,2.496],[-0.856,2.507],[-0.15,2.711]],"o":[[-1.692,-1.8],[-1.195,0.749],[-0.755,1.503],[-0.543,1.653],[-0.836,2.726],[-0.625,2.782],[1.495,3.788],[1.913,-1.815],[0.856,-2.507],[0.722,-2.115],[0.139,-2.505]],"v":[[6.841,-15.43],[0.204,-16.142],[-2.214,-12.618],[-4.138,-7.958],[-5.608,-2.949],[-8.156,5.213],[-7.871,13.635],[0.831,13.303],[4.513,6.394],[7.081,-1.128],[8.78,-8.754]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.548,46.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.271,2.462],[0.456,0.302],[0.582,-0.026],[1.361,-2.157],[1.94,-1.656],[3.788,0.843],[-1.165,-2.718],[-5.546,2.64],[-1.187,1.813],[-0.564,1.101],[-0.58,2.709]],"o":[[-0.251,-0.486],[-0.486,-0.322],[-2.548,0.113],[-1.362,2.157],[-3.387,2.89],[-1.977,0.176],[5.08,2.231],[1.932,-0.92],[0.686,-1.048],[1.264,-2.466],[0.581,-2.709]],"v":[[17.208,-12.188],[16.194,-13.454],[14.518,-13.839],[8.592,-9.488],[4.241,-3.238],[-14.341,-2.016],[-17.412,3.49],[8.528,11.225],[13.087,6.892],[14.939,3.624],[17.996,-4.078]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.926,52.509],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.033,1.036]],"o":[[-5.108,0.583],[0,0]],"v":[[7.654,0.051],[-7.654,-0.633]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.979,83.218],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.289,0.14],[-0.158,1.826],[-0.162,4.432],[-0.661,5.048],[0.988,4.534],[2.067,2.645],[1.397,0.338],[1.744,-0.525],[1.619,-2.031],[0.628,-1.965],[0.523,-4.42],[0.237,-4.56],[2.344,-3.8],[0.782,-2.173],[-1.804,-1.382],[0.073,-0.803],[-3.879,-0.351],[-3.559,0.286],[0,0]],"o":[[0,0],[1.591,-0.818],[0.362,-4.192],[0.171,-4.69],[0.576,-4.401],[-0.739,-3.387],[-1,-1.279],[-1.745,-0.424],[-2.259,0.681],[-1.232,1.545],[-1.418,4.431],[-0.548,4.637],[-0.237,4.564],[-1.234,2],[-0.768,2.132],[-0.103,0.812],[3.628,1.765],[3.545,0.321],[1.032,0],[0,0]],"v":[[10.839,27.428],[11.507,27.134],[13.793,22.419],[12.985,9.849],[14.912,-4.711],[14.724,-18.404],[10.905,-28.2],[6.695,-30.325],[1.381,-30.183],[-4.582,-25.988],[-7.053,-19.856],[-9.975,-6.429],[-10.093,1.282],[-11.359,13.275],[-14.944,19.189],[-13.66,25.496],[-13.96,27.916],[-1.647,30.415],[9.027,30.463],[10.853,30.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.001,55.779],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.258,-0.299],[0.09,-0.145],[-1.037,-0.73],[-2.732,-0.796],[1.233,2.423],[1.638,0.442],[0.638,1.723],[0.249,0.778],[0.149,0.135],[0.158,-0.124],[0.039,-0.107],[1.638,-0.781],[0.527,-0.291]],"o":[[-0.112,0.13],[-0.842,1.353],[2.356,1.658],[1.542,0.449],[-0.842,-1.654],[-1.701,-0.318],[-0.283,-0.766],[-0.061,-0.191],[-0.149,-0.135],[-0.089,0.07],[-0.476,1.33],[-0.544,0.259],[-0.346,0.191]],"v":[[-7.174,-1.253],[-7.478,-0.84],[-5.653,2.501],[2.312,5.747],[7.087,2.674],[2.115,-0.376],[-1.677,-3.126],[-2.324,-5.489],[-2.608,-6.012],[-3.159,-6.073],[-3.333,-5.785],[-4.592,-2.688],[-6.26,-1.996]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.686,51.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.764,-0.33],[-1.921,2.911],[-4.764,0.329],[1.919,-2.911]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.334,39.906],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.107,51.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.762,49.859],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.416,48.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.071,47.417],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.725,46.195],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.663,42.508],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.15,3.46],[1.582,8.097],[-11.15,-3.46],[-1.583,-8.097]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.155,46.585],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[12.938,3.988],[1.798,9.388],[-12.938,-3.988],[-1.799,-9.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.681999954523,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.188,46.615],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.893,1.585],[-0.634,1.639],[-0.62,0.198],[-0.471,-0.624],[-0.301,-0.722],[-0.512,-0.671],[-0.153,-0.864],[0.496,-0.488]],"o":[[-0.863,-1.532],[0.235,-0.607],[0.745,-0.237],[0.472,0.623],[0.325,0.779],[0.533,0.696],[0.122,0.685],[-1.842,1.816]],"v":[[-2.752,1.066],[-3.181,-4.02],[-1.931,-5.433],[0.1,-4.594],[1.094,-2.479],[2.358,-0.291],[3.693,1.942],[3.084,3.854]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.11,50.654],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.865,2.024],[0.046,1.578],[1.092,1.315],[2.428,-0.572],[0.553,-0.321],[0.223,-1.63],[0.07,-0.37],[0.086,-0.553],[-0.052,-1.114],[-0.512,-1.2],[-0.991,-0.515],[-1.743,1.161]],"o":[[0.622,-1.456],[-0.051,-1.709],[-1.593,-1.919],[-0.622,0.147],[-1.351,0.786],[-0.05,0.365],[-0.104,0.55],[-0.169,1.1],[0.061,1.304],[0.514,1.201],[1.859,0.966],[1.816,-1.21]],"v":[[6.062,2.849],[6.962,-1.764],[5.26,-6.503],[-1.477,-8.759],[-3.251,-8.047],[-6.393,-4.052],[-6.438,-2.966],[-6.744,-1.318],[-6.956,2.013],[-6.223,5.837],[-3.907,8.365],[1.939,7.867]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.761,12.748],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.254,-0.058],[-0.116,-0.005],[0.021,0.267],[0.117,0.695],[0.21,-0.293],[0.276,-0.381],[0.008,-0.064],[-0.137,-0.068]],"o":[[0.121,0.027],[0.368,0.015],[-0.055,-0.704],[-0.254,0.265],[-0.273,0.383],[-0.038,0.053],[-0.021,0.152],[0.217,0.109]],"v":[[0.145,1.366],[0.502,1.416],[0.805,0.704],[0.632,-1.431],[0.064,-0.552],[-0.762,0.592],[-0.848,0.764],[-0.581,1.1]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.481,14.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.7,2.257],[1.394,0.47],[0.049,-1.006],[0.241,-0.863],[0.032,-0.087],[-0.173,0.034]],"o":[[-1.426,0.33],[0.195,0.975],[-0.044,0.893],[-0.025,0.09],[0.173,-0.021],[1.981,-1.334]],"v":[[2.28,-2.755],[-1.991,-2.952],[-1.777,0.031],[-2.19,2.691],[-2.28,2.952],[-1.76,2.868]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.430999995213,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46.636,22.141],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.044,0.893],[0.195,0.975],[-1.518,0.409],[-0.698,0.328],[-0.413,0.229],[-2.074,-2.879],[2.039,-0.348],[-1.008,2.948],[-0.279,1]],"o":[[0.05,-1.006],[1.486,0.501],[0.746,-0.2],[0.249,-0.116],[-0.908,3.351],[-1.567,1.356],[-1.752,0.299],[0.329,-0.965],[0.241,-0.863]],"v":[[-3.058,-1.963],[-3.27,-4.945],[1.286,-4.814],[3.446,-5.641],[4.557,-6.352],[5.795,3.374],[0.148,5.775],[-4.787,3.404],[-3.471,0.697]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.916,24.134],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.654,0.964],[-10.654,0.964],[-10.654,-0.964],[10.654,-0.964]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.195,189.908],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":2,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.602,1.799],[2.33,0.305],[0.3,-0.07],[0.238,-0.145],[2.584,-0.477],[1.181,-0.945],[-0.05,-0.5],[0,0]],"o":[[-2.335,0.264],[-0.306,-0.04],[-0.272,0.063],[-2.244,1.367],[-1.487,0.275],[-0.424,0.34],[0,0],[0.513,-1.981]],"v":[[10.233,-2.86],[3.902,-2.916],[2.981,-2.931],[2.229,-2.57],[-5.794,0.227],[-10.063,1.6],[-10.785,3.002],[10.078,3.002]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.814,186.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.805,0.678],[1.059,-7.143],[0,0],[0,0],[0,0],[0,0],[-4.271,10.58]],"o":[[-8.884,-0.51],[-2.237,15.086],[0,0],[0,0],[0,0],[0,0],[6.299,-14.736]],"v":[[3.386,-56.672],[-9.295,-40.385],[-15.191,10.719],[-11.955,57.182],[-5.834,56.941],[-2.413,10.965],[8.432,-28.486]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.364,127.341],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.473,0.964],[7.473,0.964],[7.473,-0.964],[-7.473,-0.964]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.274,189.908],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.602,1.799],[2.33,0.305],[0.003,0],[0.278,-0.428],[0.162,-0.203],[1.338,-0.308],[0.048,-0.015],[0.181,-1.523],[0,0]],"o":[[-2.335,0.264],[-0.003,-0.001],[-0.506,-0.067],[-0.168,0.26],[-0.866,1.092],[-0.047,0.017],[-1.592,0.199],[0,0],[0.513,-1.981]],"v":[[7.113,-2.869],[0.782,-2.925],[0.773,-2.926],[-0.508,-2.328],[-1.001,-1.622],[-4.352,0.398],[-4.489,0.457],[-7.715,2.993],[6.958,2.993]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.521,186.181],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.6,-2.292],[-0.759,-7.182],[0,0],[0,0],[0,0],[0,0],[-1.493,11.311]],"o":[[-8.73,1.725],[1.602,15.166],[0,0],[0,0],[0,0],[0,0],[2.418,-15.842]],"v":[[-2.688,-56.047],[-10.897,-37.108],[-4.887,13.963],[3.505,58.012],[9.372,58.339],[6.258,13.767],[9.238,-30.016]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.9,126.458],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":2,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[91.41,135.626,0],"ix":2},"a":{"a":0,"k":[47.348,56.988,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":7,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.366,3.387],[-35.366,3.387],[-35.366,-3.387],[35.366,-3.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.892,96.451],"ix":2},"a":{"a":0,"k":[-35.306,0.354],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":22,"s":[0,100]},{"t":28,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.366,3.387],[-35.366,3.387],[-35.366,-3.387],[35.366,-3.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.93,83.993],"ix":2},"a":{"a":0,"k":[-35.268,0.315],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":20,"s":[0,100]},{"t":26,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-34.544,-26.546],[-34.544,26.546],[34.544,26.546]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"t":7,"s":[0]},{"t":18,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.20000001496,0.219607858097,0.258823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[47.738,43.625],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-15.142],[-5.255,-15.142],[-5.255,15.142],[5.255,15.142]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20000001496,0.223529426724,0.780392216701,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.303,69.659],"ix":2},"a":{"a":0,"k":[-0.071,14.9],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":18,"s":[100,0]},{"t":24,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-26.913],[-5.255,-26.913],[-5.255,26.913],[5.255,26.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098099054,0.647058823529,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.149,69.906],"ix":2},"a":{"a":0,"k":[0.022,26.918],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":16,"s":[100,0]},{"t":22,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-18.516],[-5.255,-18.516],[-5.255,18.516],[5.255,18.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.734,69.895],"ix":2},"a":{"a":0,"k":[-0.146,18.511],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":14,"s":[100,0]},{"t":20,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-12.432],[-5.255,-12.432],[-5.255,12.432],[5.255,12.432]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.576470588235,0.972549079446,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.257,69.643],"ix":2},"a":{"a":0,"k":[-0.376,12.174],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":12,"s":[100,0]},{"t":18,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-47.098,-56.738],[47.098,-56.738],[47.098,56.738],[-47.098,56.738]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.348,56.988],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[195.452,108.172,0],"ix":2},"a":{"a":0,"k":[31.566,31.566,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"t":35,"s":[0,0,100]},{"t":42,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-2.901],[-14.19,0],[-4.02,2.412]],"o":[[0,0],[-0.955,2.739],[0,14.19],[4.688,0],[0,0]],"v":[[6.279,-8.674],[-18.146,-17.193],[-19.589,-8.674],[6.279,17.193],[19.589,13.506]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098099054,0.647058823529,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.851,31.932],"ix":2},"a":{"a":0,"k":[6.306,-8.791],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[37]},{"t":45,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.168,3.865],[0,4.432]],"o":[[0,0],[3.783,-2.31],[2.169,-3.866],[0,0]],"v":[[-12.934,-11.038],[0.547,11.038],[9.625,1.619],[12.934,-11.038]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20000001496,0.223529426724,0.780392216701,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.151,31.494],"ix":2},"a":{"a":0,"k":[-12.946,-11.11],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[81]},{"t":45,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.437,3.213],[2.591,2.382]],"o":[[0,0],[-0.049,-3.519],[-1.438,-3.213],[0,0]],"v":[[-12.932,9.522],[12.932,9.164],[10.68,-1.041],[4.573,-9.522]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.456,30.797],"ix":2},"a":{"a":0,"k":[-12.788,9.999],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[137]},{"t":45,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,17.295],[17.296,0],[0,-17.295],[-17.295,0]],"o":[[0,-17.295],[-17.295,0],[0,17.295],[17.296,0]],"v":[[31.316,0],[0,-31.316],[-31.316,0],[0,31.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.566,31.566],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[31.566,31.566],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":0,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":35,"op":3552,"st":35,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.916,151.346,0],"ix":2},"a":{"a":0,"k":[40.623,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-38.933,-30.31],[-38.933,30.31],[38.933,30.31]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"t":57,"s":[0]},{"t":72,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.676,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[40.623,32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.12,4.189],[-20.12,4.189],[-20.12,-4.189],[20.12,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.916,13.58],"ix":2},"a":{"a":0,"k":[-19.982,0.236],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":62,"s":[0,100]},{"t":67,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.762,4.189],[-35.762,4.189],[-35.762,-4.189],[35.762,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.606,26.481],"ix":2},"a":{"a":0,"k":[-35.934,0.183],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":64,"s":[0,100]},{"t":69,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[24.605,4.189],[-24.605,4.189],[-24.605,-4.189],[24.605,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.972999961703,0.855000035903,0.675,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.901,39.101],"ix":2},"a":{"a":0,"k":[-24.481,-0.151],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":66,"s":[0,100]},{"t":71,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.52,4.189],[-16.52,4.189],[-16.52,-4.189],[16.52,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.666,52.269],"ix":2},"a":{"a":0,"k":[-16.632,0.063],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":68,"s":[0,100]},{"t":73,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":57,"op":3574,"st":57,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 14 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.511,374.47,0],"ix":2},"a":{"a":0,"k":[30.597,94.109,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.541,0.86]],"o":[[-0.541,-0.86],[0,0]],"v":[[0.812,1.29],[-0.812,-1.29]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.176,50.462],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.769,2.654]],"o":[[-3.679,-7.517],[0,0]],"v":[[2.45,6.449],[-2.45,-6.449]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.525,54.755],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.814,-1.199],[-1.462,-3.98],[0.095,-4.265],[1.278,-0.952],[1.614,0.384],[1.497,4.051],[0.302,5.246],[-4.748,-1.924],[-0.598,-0.624]],"o":[[2.392,3.522],[1.448,3.941],[-0.036,1.592],[-1.33,0.991],[-4.785,-1.138],[-1.822,-4.929],[-0.124,-2.156],[0.805,0.326],[1.019,1.065]],"v":[[0.173,-11.941],[5.451,0.188],[9.282,13.551],[7.337,17.737],[2.571,18.446],[-5.037,9.168],[-8.424,-6.528],[-4.629,-16.906],[-2.575,-15.344]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.98,45.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.572,0],[0,0],[0,3.573],[-3.572,0],[0,0],[0,-3.572]],"o":[[0,0],[-3.572,0],[0,-3.572],[0,0],[3.572,0],[0,3.573]],"v":[[3.149,6.469],[-3.15,6.469],[-9.618,0],[-3.15,-6.469],[3.149,-6.469],[9.618,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.153,60.852],"ix":2},"a":{"a":0,"k":[-9.838,0.455],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[9]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":35,"s":[9]},{"t":50,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.932,0.558],[1.011,0.196],[0,0],[1.439,-0.464],[0.204,-1.796],[0,0],[0,0],[0,0],[-2.102,-1.068],[-0.652,-0.265],[-8.597,1.906],[-1.553,0.349],[-3.183,1.335]],"o":[[0,0],[-0.272,0.003],[-1.322,-0.792],[0,0],[-1.238,0.154],[-1.755,0.567],[0,0],[0,0],[0,0],[1.644,1.614],[0.632,0.321],[0,0],[1.609,-0.209],[3.325,-0.746],[0,0]],"v":[[15.506,10.355],[13.582,-27.235],[12.67,-30.697],[6.73,-32.247],[-3.25,-32.157],[-7.614,-31.06],[-10.847,-27.171],[-12.236,-7.954],[-14.145,10.032],[-18.648,23.614],[-13.022,27.667],[-11.091,28.536],[6.73,30.34],[11.482,29.498],[18.648,26.934]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.794,59.599],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.77,1.472],[-5.004,-1.324],[4.488,-1.619],[6.77,1.619]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.599,26.78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.913,-1.061],[0.451,-7.209],[-1.05,-1.452],[-1.755,0.361],[-0.941,1.646],[-0.601,2.91],[-0.585,3.332],[4.744,-1.276],[0.642,-0.531]],"o":[[-4.76,5.534],[-0.112,1.789],[1.05,1.453],[1.858,-0.382],[1.525,-2.67],[0.674,-3.263],[0.363,-2.073],[-0.804,0.217],[-1.092,0.905]],"v":[[-0.116,-13.423],[-9.657,11.41],[-8.389,16.525],[-3.725,18.554],[0.385,14.879],[4.732,2.551],[7.461,-7.116],[5.025,-17.639],[2.89,-16.379]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.009,46.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.573,0],[0,0],[0,3.573],[-3.573,0],[0,0],[0,-3.572]],"o":[[0,0],[-3.573,0],[0,-3.572],[0,0],[3.573,0],[0,3.573]],"v":[[3.149,6.469],[-3.149,6.469],[-9.618,0],[-3.149,-6.469],[3.149,-6.469],[9.618,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.263000009574,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.27,60.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[-1.009,1.676],[1.586,1.724],[2.037,0.237],[1.845,-1.143],[0.434,-2.208]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[3.303,2.145],[4.867,1.411],[4.943,-0.701],[1.845,-1.142],[4.746,-1.739]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[3.303,2.145],[4.867,1.411],[4.943,-0.701],[1.845,-1.143],[4.746,-1.739]],"c":true}]},{"t":50,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[-1.009,1.676],[1.586,1.724],[2.037,0.237],[1.845,-1.143],[0.434,-2.208]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.773,15.521],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[-0.526,0.002],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[1.875,-0.006],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[2.443,8.284],[2.794,5.556],[3.277,4.139],[4.779,3.687],[6.861,1.875],[6.685,-1.045],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.135,9.899]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[0.065,0.522],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[-0.206,-1.667],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[6.318,9.159],[7.794,6.056],[7.465,4.295],[6.935,3.468],[8.611,1.5],[7.81,-1.17],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.134,9.899]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[0.065,0.522],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[-0.206,-1.667],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[6.318,9.159],[7.794,6.056],[7.465,4.295],[6.935,3.468],[8.611,1.5],[7.81,-1.17],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.135,9.899]],"c":true}]},{"t":50,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[-0.526,0.002],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[1.875,-0.006],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[2.443,8.284],[2.794,5.556],[3.277,4.139],[4.779,3.687],[6.861,1.875],[6.685,-1.045],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.135,9.899]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.169,11.619],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.224,-0.345]],"o":[[-0.364,-0.191],[0,0]],"v":[[0.543,-0.047],[-0.543,0.238]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[32.006,4.025],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.437,-0.009]],"o":[[-0.544,-1.331],[0,0]],"v":[[1.69,1.132],[-1.69,-1.123]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[29.581,3.007],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.214,0.876],[-2.763,-0.069],[-0.687,-1.727],[-0.009,-2.838],[0.193,-1.41],[1.401,-0.239],[1.317,-0.02],[1.124,0.344],[0.659,1.78],[0.118,0.504]],"o":[[1.153,-0.833],[3,-0.044],[1.054,2.646],[0.004,1.423],[-0.178,1.308],[-1.299,0.222],[-1.173,0.017],[-1.93,-0.589],[-0.182,-0.492],[-0.721,-3.095]],"v":[[-5.805,-7.223],[0.755,-9.215],[6.104,-6.268],[7.595,2.082],[7.304,6.338],[5.136,8.809],[1.203,9.151],[-2.503,8.94],[-6.208,4.666],[-6.879,2.042]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[26.23,15.217],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[0.443,0.151],[0.461,0.124],[0.288,-0.096],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[0.757,1.6],[1.109,1.408]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[-0.401,0.151],[-0.508,0.031],[-0.493,-0.439],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[-0.149,1.632],[-0.329,1.126]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[-0.401,0.151],[-0.508,0.031],[-0.493,-0.439],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[-0.149,1.632],[-0.329,1.126]],"c":true}]},{"t":50,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[0.443,0.151],[0.461,0.124],[0.288,-0.096],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[0.757,1.6],[1.109,1.408]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.184,16.18],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.192,-1.726],[-0.019,-0.359],[-0.077,-1.438],[0.089,-1.441],[1.927,-1.01],[1.215,0.524],[0.37,1.049],[-0.003,0.732],[-0.097,2.4],[-0.664,1.427],[-2.174,-0.855]],"o":[[0.042,0.378],[0.077,1.438],[0.077,1.443],[-0.129,2.067],[-1.201,0.592],[-0.938,-0.405],[-0.243,-0.688],[0.013,-2.403],[0.063,-1.545],[0.912,-1.958],[1.71,0.674]],"v":[[3.962,-5.227],[4.049,-4.115],[4.279,0.2],[4.512,4.631],[2.014,9.69],[-1.824,9.707],[-4.321,7.616],[-4.56,5.444],[-4.504,-1.762],[-3.89,-6.402],[1.535,-9.427]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.431,24.033],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.957,-0.534],[-3.03,-0.318],[-5.504,1.915],[0.206,1.218],[4.292,0.6],[1.304,-0.378],[3.41,-1.101],[0.572,-8.458]],"o":[[2.94,0.802],[5.922,0.621],[-0.135,-1.972],[-0.636,-3.749],[-1.218,-0.17],[-2.577,-2.714],[-8.196,2.648],[1.676,1.108]],"v":[[-10.323,11.87],[-1.256,13.6],[15.898,11.361],[15.391,6.507],[7.323,-10.748],[3.442,-10.426],[-6.458,-13.12],[-15.898,9.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.498,81.287],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.628,6.647]],"o":[[-0.627,-6.647],[0,0]],"v":[[0.941,9.97],[-0.941,-9.97]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[20.796,98.729],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.483,8.744],[4.292,0.599],[1.887,-2.413],[0.3,-2.457],[-0.263,-4.139],[0,0],[0.142,-13.473],[-0.022,0.394],[-0.002,8.209]],"o":[[-0.636,-3.749],[-2.814,-0.393],[-1.465,1.873],[-0.504,4.126],[0.416,6.564],[0,0],[2.566,3.382],[0.602,-10.62],[0.001,-8.835]],"v":[[8.912,-38.905],[0.844,-56.159],[-7.429,-53.023],[-9.955,-46.249],[-9.8,-33.619],[-7.746,-14.678],[-0.048,53.17],[9.857,52.762],[9.847,9.963]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.976,126.699],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.691,-0.498],[-0.053,-0.009],[-0.411,-0.007],[-0.102,-0.007],[-0.491,-0.027],[-3.771,0.014],[-1.183,0.496],[1.24,0.668],[1.387,0.579],[1.603,1.086],[2.254,0.053]],"o":[[0.049,0.014],[0.41,-0.004],[0.105,-0.001],[0.491,0.013],[3.829,0.207],[1.318,-0.005],[3.054,-1.281],[-1.303,-0.701],[-1.758,-0.735],[-2.187,0.593],[-1.156,-0.027]],"v":[[-9.973,3.452],[-9.818,3.483],[-8.585,3.49],[-8.275,3.499],[-6.801,3.555],[4.724,4.337],[8.61,3.763],[6.626,0.331],[2.805,-1.612],[-2.253,-4.35],[-8.952,-3.536]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.92,183.618],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.114,-1.045],[-2.114,1.045]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[15.759,138.927],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1.788,0.354],[-1.788,-0.354]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[16.122,137.538],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.974,2.286],[0.022,0.025],[3.522,-1.138],[0.758,-8.428],[0.882,-8.905],[1.966,-16.881],[-1.628,-0.162],[-0.904,0.732],[-2.75,15.284],[-1.551,8.01],[-1.443,5.922],[-0.237,2.678]],"o":[[-0.022,-0.025],[-2.569,-2.915],[-9.26,2.991],[-0.802,8.914],[-1.677,16.921],[1.446,0.761],[2.828,0.282],[2.365,-15.364],[1.446,-8.035],[1.159,-5.982],[0.657,-2.694],[0.278,-3.142]],"v":[[11.911,-52.484],[11.846,-52.56],[1.691,-55.523],[-7.984,-29.773],[-10.51,-3.044],[-14.958,55.409],[-10.492,56.379],[-5.829,55.648],[4.988,2.209],[9.096,-17.73],[12.036,-35.785],[14.68,-43.713]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.35,123.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.623,1.444],[0.77,0.979],[0.469,0.213],[0.38,-0.029],[2.048,-0.096],[0.313,-1.634],[-0.338,-0.777]],"o":[[-0.329,-1.629],[-0.949,-0.658],[-0.356,-0.451],[-0.353,-0.16],[-2.045,0.156],[0.002,1.657],[-0.111,0.583],[0,0]],"v":[[6.673,4.026],[5.266,-0.628],[2.646,-3.014],[1.479,-4.19],[0.355,-4.293],[-5.789,-3.942],[-6.141,1.132],[-6.335,4.35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.923,182.958],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.135,-2.819],[-2.819,-0.135],[-0.135,2.818],[2.818,0.135]],"o":[[-0.135,2.819],[2.818,0.136],[0.136,-2.819],[-2.819,-0.135]],"v":[[-5.104,-0.245],[-0.245,5.103],[5.103,0.245],[0.245,-5.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[55.704,59.74],"to":[0,0.708],"ti":[0,-0.708]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":15,"s":[55.704,63.99],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[55.704,63.99],"to":[0,-0.708],"ti":[0,0.708]},{"t":50,"s":[55.704,59.74]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.822],[2.822,0],[0,2.822],[-2.821,0]],"o":[[0,2.822],[-2.821,0],[0,-2.822],[2.822,0]],"v":[[5.109,0],[-0.001,5.109],[-5.109,0],[-0.001,-5.109]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.823,57.81],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.256,13.965],[-10.256,13.965],[-10.256,-13.965],[10.256,-13.965]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.722000002394,0.380000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[44.074,58.976],"to":[0,0.583],"ti":[0,-0.583]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":15,"s":[44.074,62.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[44.074,62.476],"to":[0,-0.583],"ti":[0,0.583]},{"t":50,"s":[44.074,58.976]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 15 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[401.976,358.223,0],"ix":2},"a":{"a":0,"k":[31.926,94.197,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-1.197,1.589],[1.374,1.941],[1.997,0.518],[1.969,-0.874],[0.693,-2.098]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-0.322,1.777],[0.811,1.691],[1.497,0.268],[1.344,-1.187],[0.318,-2.16]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-0.322,1.777],[0.811,1.691],[1.497,0.268],[1.344,-1.187],[0.318,-2.16]],"c":true}]},{"t":74,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-1.197,1.589],[1.374,1.941],[1.997,0.518],[1.969,-0.874],[0.693,-2.098]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.497,14.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.174,-0.912],[-0.03,-0.106],[-0.037,0.068],[-1.523,1.507],[-0.076,0.726],[0.132,0.289],[0.136,0.102],[0.226,-0.027],[-0.134,-2.186]],"o":[[0.021,0.113],[0.069,-0.022],[0.991,-1.819],[0.519,-0.513],[0.034,-0.316],[-0.071,-0.154],[-0.182,-0.136],[-2.984,0.351],[0.056,0.914]],"v":[[-1.608,4.3],[-1.531,4.63],[-1.284,4.488],[0.664,-1.542],[2.056,-3.158],[1.836,-4.072],[1.551,-4.488],[0.894,-4.603],[-1.759,1.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.113999998803,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.683,9.163],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[5.571,6.686],[3.818,3.352],[4.135,1.543],[3.391,-0.093],[2.086,-0.442],[-8.141,-2.816],[-7.92,-3.413]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[6.383,6.373],[4.693,3.352],[5.197,0.543],[3.891,0.22],[1.773,0.934],[-8.579,-1.566],[-8.17,-2.038]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[6.383,6.373],[4.693,3.352],[5.197,0.543],[3.891,0.22],[1.773,0.934],[-8.579,-1.566],[-8.17,-2.038]],"c":true}]},{"t":74,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[5.571,6.686],[3.818,3.352],[4.135,1.543],[3.391,-0.093],[2.086,-0.442],[-8.141,-2.816],[-7.92,-3.413]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.113999998803,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.821,7.834],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.074,0.502],[0.42,2.895],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.479,-0.599],[-0.075,-0.52],[-0.05,-3.225]],"v":[[-4.547,-8.218],[2.432,-9.475],[7.135,-5.861],[6.159,3.887],[5.162,6.002],[-3.277,9.365],[-7.521,3.803],[-7.623,1.061]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.134,0.024],[1.044,2.779],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.887,-0.033],[-0.518,-0.658],[-0.05,-3.225]],"v":[[-5.297,-8.28],[1.307,-9.662],[6.26,-6.048],[6.159,3.887],[5.162,6.002],[-1.402,9.427],[-6.959,4.178],[-7.623,1.061]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.134,0.024],[1.044,2.779],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.887,-0.033],[-0.518,-0.658],[-0.05,-3.225]],"v":[[-5.297,-8.28],[1.307,-9.662],[6.26,-6.048],[6.159,3.887],[5.162,6.002],[-1.402,9.427],[-6.959,4.178],[-7.623,1.061]],"c":true}]},{"t":74,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.074,0.502],[0.42,2.895],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.479,-0.599],[-0.075,-0.52],[-0.05,-3.225]],"v":[[-4.547,-8.218],[2.432,-9.475],[7.135,-5.861],[6.159,3.887],[5.162,6.002],[-3.277,9.365],[-7.521,3.803],[-7.623,1.061]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.864,13.955],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.73,0.104],[-1.437,1.208],[1.537,0.794],[1.538,-0.904],[-0.46,-2.029],[-1.632,-0.615]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.043,0.292],[-0.749,1.396],[1.537,0.794],[1.538,-0.904],[0.165,-1.904],[-0.945,-0.428]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.043,0.292],[-0.749,1.396],[1.537,0.794],[1.538,-0.904],[0.165,-1.904],[-0.945,-0.428]],"c":true}]},{"t":74,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.73,0.104],[-1.437,1.208],[1.537,0.794],[1.538,-0.904],[-0.46,-2.029],[-1.632,-0.615]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.430999995213,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.269,13.956],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.135,-2.819],[-2.819,-0.136],[-0.135,2.819],[2.818,0.136]],"o":[[-0.135,2.819],[2.818,0.135],[0.136,-2.819],[-2.819,-0.135]],"v":[[-5.104,-0.245],[-0.245,5.104],[5.103,0.245],[0.245,-5.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[46.94,64.354],"to":[0,-1.042],"ti":[0,1.042]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":21,"s":[46.94,58.104],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[46.94,58.104],"to":[0,1.042],"ti":[0,-1.042]},{"t":74,"s":[46.94,64.354]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.822],[2.822,0],[0,2.822],[-2.821,0]],"o":[[0,2.822],[-2.821,0],[0,-2.822],[2.822,0]],"v":[[5.11,0],[-0.001,5.109],[-5.11,0],[-0.001,-5.109]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[23.059,62.423],"to":[0,-0.854],"ti":[0,0.854]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":21,"s":[23.059,57.298],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[23.059,57.298],"to":[0,0.854],"ti":[0,-0.854]},{"t":74,"s":[23.059,62.423]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.255,13.965],[-10.255,13.965],[-10.255,-13.965],[10.255,-13.965]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[35.31,63.588],"to":[0,-0.812],"ti":[0,0.812]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":21,"s":[35.31,58.713],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[35.31,58.713],"to":[0,0.812],"ti":[0,-0.812]},{"t":74,"s":[35.31,63.588]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.704,0.982],[-2.377,-1.048]],"o":[[2.704,-0.982],[2.321,-0.842],[0,0]],"v":[[-7.66,2.18],[0.453,-0.766],[7.66,-1.132]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.178,56.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.084,-0.936],[0,0],[0.936,3.084],[-3.084,0.936],[0,0],[-0.935,-3.085]],"o":[[0,0],[-3.084,0.936],[-0.935,-3.084],[0,0],[3.084,-0.935],[0.936,3.084]],"v":[[5.375,4.467],[-1.987,6.701],[-9.266,2.811],[-5.375,-4.469],[1.987,-6.702],[9.264,-2.811]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.402,61.304],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-2.405,-12.485],[2.405,-7.265],[-0.71,-6.979],[1.702,0.759],[-2.35,12.485]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.747,40.283],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.541,0.86]],"o":[[-0.541,-0.86],[0,0]],"v":[[0.812,1.29],[-0.812,-1.29]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46.995,50.916],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.769,2.655]],"o":[[-0.769,-2.654],[0,0]],"v":[[1.154,3.982],[-1.154,-3.982]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.047,52.742],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.814,-1.199],[-1.463,-3.98],[0.094,-4.265],[1.278,-0.952],[1.614,0.384],[1.497,4.051],[0.302,5.246],[-4.748,-1.924],[-0.599,-0.625]],"o":[[2.391,3.522],[1.448,3.941],[-0.036,1.592],[-1.33,0.991],[-4.785,-1.138],[-1.822,-4.93],[-0.124,-2.156],[0.805,0.326],[1.019,1.065]],"v":[[0.174,-11.941],[5.452,0.188],[9.283,13.551],[7.337,17.737],[2.572,18.446],[-5.036,9.168],[-8.423,-6.528],[-4.628,-16.906],[-2.574,-15.344]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.798,46.191],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.553,0.349],[-3.184,1.335],[0,0],[0,0],[0.933,0.558],[1.011,0.195],[0,0]],"o":[[3.326,-0.746],[0,0],[0,0],[-0.272,0.003],[-1.322,-0.792],[0,0],[1.608,-0.209]],"v":[[-1.208,30.451],[5.959,27.887],[2.817,11.309],[0.892,-26.282],[-0.02,-29.744],[-5.959,-31.294],[-5.959,31.294]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.303,59.1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.588,-1.418]],"o":[[1.359,0.713],[0,0]],"v":[[-1.521,-1.666],[1.521,1.666]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.567,55.409],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.539,-1.365],[0.35,-2.028]],"o":[[1.971,-0.59],[1.539,1.366],[0,0]],"v":[[-4.037,-3.132],[1.734,-1.857],[3.687,3.722]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.796,58.378],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.519],[3.519,0],[0,3.519],[-3.519,0]],"o":[[0,3.519],[-3.519,0],[0,-3.519],[3.519,0]],"v":[[6.372,0],[0,6.372],[-6.372,0],[0,-6.372]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.693,60.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.055,-3.811],[0,0]],"o":[[0,0],[-0.031,2.199],[0,0]],"v":[[2.556,-16.528],[-0.487,-4.679],[-2.556,16.528]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[25.311,51.849],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.86,-12.385],[-2.562,-7.803],[0.493,-7.132],[-2.86,0.245],[-0.296,12.385]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.504,40.282],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.102,-1.068],[-0.652,-0.266],[0.003,0.122],[1.439,-0.464],[0.204,-1.796],[0,0],[0,0],[0,0]],"o":[[0.632,0.321],[2.103,-15.953],[-1.238,0.153],[-1.755,0.566],[0,0],[0,0],[0,0],[1.644,1.613]],"v":[[-2.074,29.476],[-0.143,30.346],[7.697,-30.346],[3.333,-29.249],[0.1,-25.361],[-1.289,-6.144],[-3.198,11.842],[-7.701,25.424]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.666,58.243],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.913,-1.061],[0.451,-7.209],[-1.051,-1.452],[-1.756,0.361],[-0.941,1.646],[-0.601,2.91],[-0.585,3.332],[4.743,-1.276],[0.642,-0.531]],"o":[[-4.76,5.534],[-0.112,1.789],[1.049,1.453],[1.857,-0.382],[1.525,-2.67],[0.674,-3.262],[0.363,-2.073],[-0.805,0.217],[-1.092,0.905]],"v":[[-0.116,-13.423],[-9.657,11.41],[-8.388,16.525],[-3.724,18.554],[0.385,14.879],[4.732,2.551],[7.461,-7.116],[5.026,-17.639],[2.89,-16.379]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.155,47.092],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.651,0.97]],"o":[[1.691,0.899],[0,0]],"v":[[-2.749,-0.391],[2.749,-0.508]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[38.481,34.916],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.284,7.037]],"o":[[6.384,-4.421],[0,0]],"v":[[-7.424,8.799],[7.424,-8.799]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[40.715,72.647],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.379,5.729]],"o":[[5.912,-3.046],[0,0]],"v":[[-7.158,6.76],[7.158,-6.76]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[42.905,62.009],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.967,5.124],[0,0],[0,0],[0.903,0.575],[0.568,0.148],[0.144,-0.537],[0.782,-0.583],[1.275,3.668],[0.022,0.567],[1.42,-0.481],[0.128,-1.819],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.267,0.003],[-1.399,-0.89],[0.006,0.63],[-0.167,0.625],[-2.37,1.768],[-0.17,-0.489],[-1.235,0.16],[-1.727,0.584],[0,0],[0,0],[9.483,7.611]],"v":[[15.695,24.098],[12.769,9.254],[13.77,-24.095],[13.011,-27.623],[6.559,-29.291],[6.415,-27.543],[4.38,-25.155],[-2.253,-27.222],[-2.524,-29.161],[-7.171,-27.997],[-10.231,-24.031],[-11.77,9.168],[-15.695,21.68]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.208,57.038],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.397,1.498],[-0.373,1.931],[0.022,0.192],[1.711,0.674],[0.911,-1.958],[0.062,-1.544],[-0.001,-1.301]],"o":[[1.348,-1.446],[-0.015,-0.189],[-0.192,-1.726],[-2.173,-0.855],[-0.665,1.427],[-0.053,1.3],[1.99,0.713]],"v":[[1.68,4.245],[4.285,-0.947],[4.24,-1.512],[1.814,-5.712],[-3.61,-2.687],[-4.224,1.952],[-4.284,5.854]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.430999995213,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.971,20.771],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.192,-1.726],[-0.019,-0.359],[-0.077,-1.438],[0.089,-1.44],[1.927,-1.01],[1.215,0.524],[0.37,1.049],[-0.003,0.733],[-0.097,2.4],[-0.665,1.428],[-2.174,-0.856]],"o":[[0.042,0.378],[0.077,1.438],[0.077,1.443],[-0.129,2.067],[-1.201,0.592],[-0.938,-0.405],[-0.243,-0.688],[0.012,-2.402],[0.063,-1.544],[0.912,-1.958],[1.71,0.673]],"v":[[3.962,-5.227],[4.048,-4.115],[4.28,0.2],[4.512,4.631],[2.013,9.69],[-1.823,9.707],[-4.32,7.616],[-4.56,5.444],[-4.504,-1.762],[-3.889,-6.402],[1.535,-9.426]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.249,24.487],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.777,1.15],[4.035,0.666],[1.313,-0.345],[3.436,-1.016],[0.934,-7.211],[-4.161,-0.593],[0,-0.001],[-0.083,-0.011],[-0.444,-0.046],[-0.153,-0.014],[-0.52,-0.029],[-0.083,-0.005],[-0.454,-0.01],[-0.149,-0.002],[-0.491,0.008],[0,0],[-0.022,0.001]],"o":[[-0.751,-4.466],[-1.213,-0.201],[-2.508,-2.777],[-6.473,1.915],[3.445,2.415],[0,0.001],[0.084,0.011],[0.446,0.061],[0.154,0.015],[0.525,0.048],[0.083,0.004],[0.46,0.023],[0.149,0.004],[0.501,0.006],[0,0],[0.021,0],[3.976,-0.068]],"v":[[15.317,9.285],[7.795,-7.441],[3.907,-7.217],[-5.922,-10.156],[-15.317,6.452],[-3.565,10.742],[-3.565,10.745],[-3.314,10.775],[-1.979,10.934],[-1.52,10.979],[0.048,11.096],[0.295,11.107],[1.665,11.156],[2.111,11.165],[3.601,11.165],[3.601,11.163],[3.666,11.163]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.726,77.837],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":2,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.462,6.661]],"o":[[-0.462,-6.66],[0,0]],"v":[[0.693,9.99],[-0.693,-9.99]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[33.798,98.325],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":2,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.265,8.778],[4.276,0.707],[1.946,-2.365],[0.361,-2.448],[-0.16,-4.143],[0,0],[0.477,-13.465],[-0.032,0.393],[-0.206,8.207]],"o":[[-0.542,-3.763],[-2.803,-0.462],[-1.511,1.836],[-0.607,4.113],[0.253,6.573],[0,0],[2.481,3.445],[0.866,-10.602],[0.222,-8.832]],"v":[[9.01,-38.678],[1.374,-56.128],[-6.974,-53.199],[-9.668,-46.49],[-9.828,-33.86],[-8.246,-14.873],[-2.239,53.145],[7.673,52.984],[8.728,10.198]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.147,126.522],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":2,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.678,-0.54],[-0.053,-0.01],[-0.411,-0.018],[-0.101,-0.009],[-0.491,-0.039],[-3.771,-0.08],[-1.195,0.466],[1.223,0.698],[1.371,0.614],[1.576,1.126],[2.252,0.109]],"o":[[0.048,0.015],[0.411,0.006],[0.105,0.001],[0.491,0.025],[3.822,0.302],[1.318,0.028],[3.085,-1.204],[-1.285,-0.733],[-1.74,-0.778],[-2.2,0.539],[-1.155,-0.055]],"v":[[-9.988,3.166],[-9.834,3.201],[-8.602,3.239],[-8.292,3.254],[-6.82,3.348],[4.682,4.415],[8.581,3.939],[6.682,0.458],[2.912,-1.579],[-2.077,-4.443],[-8.793,-3.795]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.735,183.702],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":2,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.14,-0.992],[-2.14,0.992]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[27.761,138.385],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":2,"cix":2,"bm":0,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1.779,0.398],[-1.779,-0.398]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[28.159,137.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 37","np":2,"cix":2,"bm":0,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.916,2.335],[0.021,0.026],[3.55,-1.049],[0.968,-8.405],[1.104,-8.881],[2.386,-16.827],[-1.623,-0.203],[-0.922,0.71],[-3.13,15.211],[-1.751,7.97],[-1.59,5.884],[-0.303,2.671]],"o":[[-0.021,-0.026],[-2.496,-2.978],[-9.331,2.76],[-1.024,8.892],[-2.097,16.874],[1.427,0.796],[2.821,0.352],[2.748,-15.301],[1.645,-7.997],[1.307,-5.951],[0.724,-2.676],[0.357,-3.134]],"v":[[13.321,-52.141],[13.257,-52.219],[3.178,-55.434],[-7.134,-29.933],[-10.325,-3.274],[-16.227,55.05],[-11.787,56.131],[-7.106,55.516],[5.038,2.363],[9.642,-17.468],[13.03,-35.444],[15.87,-43.304]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.435000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.625,123.114],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 38","np":2,"cix":2,"bm":0,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.24,0.124],[-2.139,0.219],[-1.799,0.266],[-1.221,0.509],[0.111,0.565],[-0.052,1.369],[2.05,0.087],[0.359,-0.139],[0.37,-0.381],[1.982,-1.059],[1.004,-2.163],[-0.014,-0.184]],"o":[[2.141,-0.214],[1.807,-0.184],[1.276,-0.189],[0.772,-0.322],[-0.266,-1.344],[-2.056,-0.038],[-0.381,-0.016],[-0.478,0.186],[-1.612,1.656],[-1.982,1.059],[-0.079,0.171],[1.243,-0.036]],"v":[[-6.335,4.705],[0.065,3.855],[5.485,3.302],[9.302,2.347],[9.467,-0.564],[9.263,-4.75],[3.1,-4.915],[1.968,-4.806],[0.762,-3.809],[-4.942,-0.194],[-9.925,4.391],[-10.06,4.945]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.324,182.996],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 39","np":2,"cix":2,"bm":0,"ix":36,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.507,214.13,0],"ix":2},"a":{"a":0,"k":[38.775,20.604,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.984,11.38],[10.984,11.38],[10.984,-11.38],[-10.984,-11.38]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.235,11.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":5,"s":[0,0]},{"t":13,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[38.525,-2.388],[-38.525,-2.388],[-38.525,2.388],[38.525,2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.775,38.569],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":25,"s":[0,0]},{"t":33,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[38.525,-2.388],[-38.525,-2.388],[-38.525,2.388],[38.525,2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.775,29.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":20,"s":[0,0]},{"t":28,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-25.389,2.398],[25.389,2.398],[25.389,-2.398],[-25.389,-2.398]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.91,20.613],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":17,"s":[0,0]},{"t":25,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-25.389,2.388],[25.389,2.388],[25.389,-2.388],[-25.389,-2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.91,11.621],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":13,"s":[0,0]},{"t":21,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-25.389,2.388],[25.389,2.388],[25.389,-2.388],[-25.389,-2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.91,2.639],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":8,"s":[0,0]},{"t":16,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":3522,"st":5,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[290.7,270.456,0],"ix":2},"a":{"a":0,"k":[83.243,125.505,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"t":21,"s":[0,0,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[30.044,-3.745],[-30.044,-3.745],[-30.044,3.745],[30.044,3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.271,226.759],"ix":2},"a":{"a":0,"k":[-30.01,-0.388],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":51,"s":[0,100]},{"t":60,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.66,3.745],[-67.66,3.745],[-67.66,-3.745],[67.66,-3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.303,212.228],"ix":2},"a":{"a":0,"k":[-67.594,-0.077],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":47,"s":[0,100]},{"t":56,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.66,3.745],[-67.66,3.745],[-67.66,-3.745],[67.66,-3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.548,198.51],"ix":2},"a":{"a":0,"k":[-67.349,-0.062],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":42,"s":[0,100]},{"t":51,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.66,3.745],[-67.66,3.745],[-67.66,-3.745],[67.66,-3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.334,184.707],"ix":2},"a":{"a":0,"k":[-67.562,-0.131],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":38,"s":[0,100]},{"t":47,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[39.04,4.075],[-39.04,4.075],[-39.04,-4.075],[39.04,-4.075]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.878,35.178],"ix":2},"a":{"a":0,"k":[-39.019,0.072],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":34,"s":[0,100]},{"t":43,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.642,4.075],[-67.642,4.075],[-67.642,-4.075],[67.642,-4.075]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.524,21.997],"ix":2},"a":{"a":0,"k":[-67.372,0.059],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":24,"s":[0,100]},{"t":33,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[66.831,56.493],[-66.831,56.493],[-66.831,-56.493]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[100]},{"t":39,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[84.067,114.153],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.781,-1.857],[0.434,1.857],[-0.092,0.211],[-1.781,-0.148]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[118.021,62.276],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":44,"s":[0,0]},{"t":46,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.025,23.44]],"o":[[25.412,-6.643],[0,0]],"v":[[-46.435,27.285],[46.435,-27.285]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0]},{"t":44,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[71.667,89.664],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.902,21.98],[5.902,21.98],[5.902,-21.98],[-5.902,-21.98]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[33.228,170.371],"ix":2},"a":{"a":0,"k":[0.291,21.715],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":28,"s":[100,0]},{"t":37,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-24.856],[-5.902,-24.856],[-5.902,24.856],[5.902,24.856]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.924,170.478],"ix":2},"a":{"a":0,"k":[-0.377,24.698],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":29,"s":[100,0]},{"t":38,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-30.273],[-5.902,-30.273],[-5.902,30.273],[5.902,30.273]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.058,170.416],"ix":2},"a":{"a":0,"k":[-0.605,30.054],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":31,"s":[100,0]},{"t":40,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-37.02],[-5.902,-37.02],[-5.902,37.02],[5.902,37.02]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.972999961703,0.855000035903,0.675,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[109.002,170.622],"ix":2},"a":{"a":0,"k":[-0.025,37.005],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":32,"s":[100,0]},{"t":41,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-53.807],[-5.902,-53.807],[-5.902,53.807],[5.902,53.807]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.932,170.355],"ix":2},"a":{"a":0,"k":[-0.459,53.525],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":34,"s":[100,0]},{"t":43,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[82.993,125.255],[-82.993,125.255],[-82.993,-125.255],[82.993,-125.255]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.922000002394,0.991999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.243,125.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[83.243,125.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":36,"s":[0,0]},{"t":51,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":0,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false}],"ip":21,"op":3538,"st":21,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 11 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[227.153,368.133,0],"ix":2},"a":{"a":0,"k":[111.025,58.467,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.996,2.076],[-64.997,2.076],[-64.997,-2.076],[64.996,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[92.02,98.241],"ix":2},"a":{"a":0,"k":[-64.784,0.031],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":11,"s":[0,100]},{"t":18,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.996,2.076],[-64.997,2.076],[-64.997,-2.076],[64.996,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[91.777,105.996],"ix":2},"a":{"a":0,"k":[-65.027,-0.412],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":14,"s":[0,100]},{"t":21,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.996,2.076],[-64.997,2.076],[-64.997,-2.076],[64.996,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[91.863,114.688],"ix":2},"a":{"a":0,"k":[-64.941,0.079],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":18,"s":[0,100]},{"t":25,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.283,34.599],"ix":2},"a":{"a":0,"k":[-37.456,0.065],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":8,"s":[0,0]},{"t":15,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.425,2.578],"ix":2},"a":{"a":0,"k":[-37.314,0.253],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":0,"s":[0,100]},{"t":7,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.543,10.423],"ix":2},"a":{"a":0,"k":[-37.196,-0.102],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":2,"s":[0,100]},{"t":9,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.407,18.824],"ix":2},"a":{"a":0,"k":[-37.332,0.1],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":4,"s":[0,100]},{"t":11,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.799,26.837],"ix":2},"a":{"a":0,"k":[-36.94,-0.088],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":6,"s":[0,100]},{"t":13,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-3],[-14.675,0],[-4.158,2.495]],"o":[[0,0],[-0.988,2.832],[0,14.675],[4.849,0],[0,0]],"v":[[6.493,-8.971],[-18.766,-17.781],[-20.258,-8.971],[6.493,17.781],[20.258,13.967]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.081,76.599],"ix":2},"a":{"a":0,"k":[6.604,-10.783],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Group 12').transform.scale;"},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[59]},{"t":15,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.243,3.997],[0,4.584]],"o":[[0,0],[3.913,-2.389],[2.243,-3.998],[0,0]],"v":[[-13.376,-11.415],[0.566,11.416],[9.954,1.675],[13.376,-11.415]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.461,77.182],"ix":2},"a":{"a":0,"k":[-14.271,-12.146],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Group 12').transform.scale;"},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[128]},{"t":15,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.487,3.323],[2.68,2.463]],"o":[[0,0],[-0.051,-3.64],[-1.486,-3.323],[0,0]],"v":[[-13.374,9.848],[13.374,9.478],[11.044,-1.077],[4.729,-9.848]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.58,77.469],"ix":2},"a":{"a":0,"k":[-14.305,10.692],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Group 12').transform.scale;"},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[175]},{"t":15,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,17.887],[17.887,0],[0,-17.887],[-17.886,0]],"o":[[0,-17.887],[-17.886,0],[0,17.887],[17.887,0]],"v":[[32.387,0],[-0.001,-32.387],[-32.387,0],[-0.001,32.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.922000002394,0.991999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.739,77.913],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":0,"s":[0,0]},{"t":15,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Layer 12 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[225.071,369.387,0],"ix":2},"a":{"a":0,"k":[147.075,83.127,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.223,0.02],[0,0],[-0.021,4.223],[0,0],[-4.223,-0.02],[0,0],[0.021,-4.223],[0,0]],"o":[[0,0],[-4.223,-0.02],[0,0],[0.02,-4.223],[0,0],[4.223,0.02],[0,0],[-0.02,4.223]],"v":[[113.755,71.215],[-114.43,70.126],[-122.039,62.443],[-121.438,-63.605],[-113.755,-71.215],[114.429,-70.126],[122.039,-62.443],[121.438,63.605]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.452,77.483],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.032,6.742],[0,0],[0,0],[-6.742,-0.032],[0,0]],"o":[[0,0],[0,0],[-0.032,6.742],[0,0],[6.742,0.033]],"v":[[146.825,-5.391],[146.825,-5.391],[-146.793,-6.792],[-134.644,5.475],[134.559,6.758]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882360421,0.105882360421,0.254901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.075,159.212],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.404,0.026],[0,0],[-0.026,5.404],[0,0],[-5.404,-0.026],[0,0],[0.025,-5.404],[0,0]],"o":[[0,0],[-5.405,-0.026],[0,0],[0.026,-5.405],[0,0],[5.404,0.026],[0,0],[-0.025,5.404]],"v":[[117.729,76.607],[-118.454,75.48],[-128.193,65.648],[-127.561,-66.868],[-117.729,-76.607],[118.454,-75.48],[128.193,-65.648],[127.56,66.868]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882360421,0.105882360421,0.254901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.455,76.883],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Layer 16 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.656,240.403,0],"ix":2},"a":{"a":0,"k":[49.029,29.887,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-47.154,-28.013],[-47.154,28.013],[47.154,28.013]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":34,"s":[1]},{"t":47,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[49.029,29.888],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.92156869173,0.92156869173,0.992156922817,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.138,21.449],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":41,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":44,"s":[122,122]},{"t":47,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098102093,0.647058844566,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.774,38.571],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":47,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":50,"s":[122,122]},{"t":53,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882361531,0.105882361531,0.254901975393,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.37,12.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":53,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":56,"s":[122,122]},{"t":59,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.200000017881,0.223529428244,0.780392229557,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.591,12.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":64,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":67,"s":[122,122]},{"t":70,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.972549080849,0.854902029037,0.674509823322,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75.729,41.765],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":59,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":62,"s":[122,122]},{"t":65,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":34,"op":3551,"st":34,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-135.625,-18],[-118.75,-0.25],[-98.125,-27.25],[-73.75,2],[-59.5,-27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.56862745098,0.576470588235,0.972549079446,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44,"s":[0]},{"t":64,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":34,"op":3551,"st":34,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index fa5db3400e..1544f18a03 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -324,7 +324,7 @@ Specify a custom Gradle installation to use for build. This OVERRIDES the version specified in gradle-wrapper.properties. Gradle installation path Leave empty to use Gradle wrapper. - You need to install the JDK and Android SDK for the IDE to work. To install click \'Yes\' and follow the instructions here]]> + You need to install the JDK and Android SDK for the IDE to work. To install follow the instructions here

Or read the documentation]]>
No builds in progress Build in progress… @@ -624,4 +624,5 @@ Selected file is not a directory Project directory does not exist A file save operation is already in progress! + JDK & SDK From 8dc598ad5e380d552191f2629b865f673e860f8d Mon Sep 17 00:00:00 2001 From: Vivek Date: Sat, 9 Dec 2023 14:51:15 +0530 Subject: [PATCH 03/10] feat: add pages for permissions and unsupported arch --- .../androidide/activities/MainActivity.kt | 44 ------ .../activities/OnboardingActivity.kt | 127 +++++++++++++++--- .../onboarding/OnboardingFragment.kt | 17 +++ .../main/res/layout/fragment_onboarding.xml | 17 +++ .../itsaky/androidide/app/BaseIDEActivity.kt | 45 ------- resources/src/main/res/values/strings.xml | 2 + 6 files changed, 147 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt index a377045e2e..6a37bc4fa0 100755 --- a/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt @@ -89,10 +89,6 @@ class MainActivity : LimitlessIDEActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (!checkDeviceSupported()) { - return - } - showStatConsentDialogIfNeeded { app.reportStatsIfNecessary() @@ -177,51 +173,11 @@ class MainActivity : LimitlessIDEActivity() { } } - override fun onStorageDenied() { - flashError(string.msg_storage_denied) - finishAffinity() - } - override fun bindLayout(): View { _binding = ActivityMainBinding.inflate(layoutInflater) return binding.root } - private fun checkDeviceSupported(): Boolean { - val configProvider = IDEBuildConfigProvider.getInstance() - - val supported = if ( - configProvider.isArm64v8aBuild() - && !configProvider.isArm64v8aDevice() - && configProvider.isArmeabiv7aDevice() - ) { - // IDE = 64-bit - // Device = 32-bit - // NOT SUPPORTED - DialogUtils.show64bitOn32bit(this) - false - - } else if ( - configProvider.isArmeabiv7aBuild() - && configProvider.isArm64v8aDevice() - ) { - // IDE = 32-bit - // Device = 64-bit - // SUPPORTED, but warn the user - if (!prefManager.getBoolean("ide.archConfigWarn.hasShown", false)) { - DialogUtils.show32bitOn64bit(this) - } - true - - } else configProvider.supportsBuildFlavor() - - if (!supported) { - DialogUtils.showDeviceNotSupported(this) - } - - return supported - } - private fun checkToolsIsInstalled(): Boolean { return Environment.JAVA.exists() && Environment.ANDROID_HOME.exists() } diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt index 4149355495..d66d9e4dba 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -17,18 +17,24 @@ package com.itsaky.androidide.activities +import android.Manifest.permission import android.content.Intent +import android.content.pm.PackageManager import android.os.Bundle import androidx.activity.OnBackPressedCallback +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.github.appintro.AppIntro2 import com.github.appintro.AppIntroPageTransformerType import com.itsaky.androidide.R import com.itsaky.androidide.R.string +import com.itsaky.androidide.app.IDEBuildConfigProvider import com.itsaky.androidide.fragments.onboarding.OnboardingFragment +import com.itsaky.androidide.preferences.internal.prefManager import com.itsaky.androidide.preferences.internal.statConsentDialogShown import com.itsaky.androidide.preferences.internal.statOptIn import com.itsaky.androidide.utils.Environment +import com.itsaky.androidide.utils.flashError class OnboardingActivity : AppIntro2() { @@ -38,6 +44,13 @@ class OnboardingActivity : AppIntro2() { } } + private val isStoragePermissionGranted: Boolean + get() = + (ContextCompat.checkSelfPermission(this, permission.READ_EXTERNAL_STORAGE) == + PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission(this, permission.WRITE_EXTERNAL_STORAGE) == + PackageManager.PERMISSION_GRANTED) + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setTransformer(AppIntroPageTransformerType.Fade) @@ -46,26 +59,53 @@ class OnboardingActivity : AppIntro2() { setProgressIndicator() showStatusBar(true) - if (!statConsentDialogShown) { - addSlide(OnboardingFragment.newInstance( - string.title_androidide_statistics, - string.msg_androidide_statistics, - R.raw.statistics_animation, - "statistics" - )) - } - if (!checkToolsIsInstalled()) { - addSlide(OnboardingFragment.newInstance( - string.title_install_jdk_sdk, - string.msg_require_install_jdk_and_android_sdk, - R.raw.java_animation, - "install_jdk_sdk" - )) + if (checkDeviceSupported()) { + if (!isStoragePermissionGranted) { + addSlide(OnboardingFragment.newInstance( + string.title_file_access, + string.msg_file_access, + R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one + name = "" + )) + askForPermissions( + permissions = arrayOf( + permission.WRITE_EXTERNAL_STORAGE, + permission.READ_EXTERNAL_STORAGE + ), + slideNumber = if (!archConfigWarnHasShown()) 1 else 2, + required = true + ) + } + if (!statConsentDialogShown) { + addSlide(OnboardingFragment.newInstance( + string.title_androidide_statistics, + string.msg_androidide_statistics, + R.raw.statistics_animation, + "statistics" + )) + } + if (!checkToolsIsInstalled()) { + addSlide(OnboardingFragment.newInstance( + string.title_install_jdk_sdk, + string.msg_require_install_jdk_and_android_sdk, + R.raw.java_animation, + "install_jdk_sdk" + )) + } } onBackPressedDispatcher.addCallback(this, onBackPressedCallback) } + override fun onUserDeniedPermission(permissionName: String) { + // User pressed "Deny" on the permission dialog + flashError(string.msg_storage_denied) + } + + override fun onUserDisabledPermission(permissionName: String) { + // User pressed "Deny" + "Don't ask again" on the permission dialog + } + override fun onResume() { super.onResume() if (isSetupDone()) { @@ -100,6 +140,7 @@ class OnboardingActivity : AppIntro2() { if (currentFragment is OnboardingFragment) { when (currentFragment.name) { "install_jdk_sdk" -> openActivity(TerminalActivity::class.java) + "device_not_supported" -> finishAffinity() else -> openActivity(MainActivity::class.java) } } @@ -113,5 +154,59 @@ class OnboardingActivity : AppIntro2() { return Environment.JAVA.exists() && Environment.ANDROID_HOME.exists() } - private fun isSetupDone(): Boolean = checkToolsIsInstalled() && statConsentDialogShown + private fun isSetupDone() = + (checkToolsIsInstalled() && statConsentDialogShown && isStoragePermissionGranted) + + private fun checkDeviceSupported(): Boolean { + val configProvider = IDEBuildConfigProvider.getInstance() + + val supported = if ( + configProvider.isArm64v8aBuild() + && !configProvider.isArm64v8aDevice() + && configProvider.isArmeabiv7aDevice() + ) { + // IDE = 64-bit + // Device = 32-bit + // NOT SUPPORTED + addSlide(OnboardingFragment.newInstance( + string.title_device_not_supported, + string.msg_64bit_on_32bit_device, + R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one + name = "" + )) + false + + } else if ( + configProvider.isArmeabiv7aBuild() + && configProvider.isArm64v8aDevice() + ) { + // IDE = 32-bit + // Device = 64-bit + // SUPPORTED, but warn the user + if (!archConfigWarnHasShown()) { + addSlide(OnboardingFragment.newInstance( + string.title_32bit_on_64bit_device, + string.msg_32bit_on_64bit_device, + R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one + name = "" + )) + } + true + + } else configProvider.supportsBuildFlavor() + + if (!supported) { + addSlide(OnboardingFragment.newInstance( + string.title_device_not_supported, + string.msg_device_not_supported, + R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one + "device_not_supported" + )) + } + + return supported + } + + private fun archConfigWarnHasShown() = + prefManager.getBoolean("ide.archConfigWarn.hasShown", false) } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt index afbc669a30..5717b97854 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt @@ -1,3 +1,20 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + package com.itsaky.androidide.fragments.onboarding import android.os.Bundle diff --git a/app/src/main/res/layout/fragment_onboarding.xml b/app/src/main/res/layout/fragment_onboarding.xml index c3dbfcdb69..e66e8e5521 100644 --- a/app/src/main/res/layout/fragment_onboarding.xml +++ b/app/src/main/res/layout/fragment_onboarding.xml @@ -1,4 +1,21 @@ + + , - grantResults: IntArray - ) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - if (requestCode == REQCODE_STORAGE) { - if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) - onStorageGranted() - else onStorageDenied() - } - } - - protected open fun onStorageGranted() {} - - protected open fun onStorageAlreadyGranted() {} - protected open fun onStorageDenied() {} protected open fun preSetContentLayout() {} protected abstract fun bindLayout(): View diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index 1544f18a03..9144d6221b 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -625,4 +625,6 @@ Project directory does not exist A file save operation is already in progress! JDK & SDK + File Access Permission + This app needs permission to access files to function. Please grant permission to continue. From 9f487dd7af544423b5fb3a0b43299515b6107b95 Mon Sep 17 00:00:00 2001 From: Vivek Date: Sat, 9 Dec 2023 14:53:37 +0530 Subject: [PATCH 04/10] chore: remove unused imports --- .../java/com/itsaky/androidide/activities/MainActivity.kt | 8 -------- .../java/com/itsaky/androidide/app/BaseIDEActivity.kt | 4 ---- 2 files changed, 12 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt index 6a37bc4fa0..d505301e04 100755 --- a/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt @@ -21,34 +21,26 @@ import android.content.Intent import android.graphics.Rect import android.os.Bundle import android.text.TextUtils -import android.text.method.LinkMovementMethod import android.view.View -import android.widget.TextView import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels -import androidx.core.text.HtmlCompat import androidx.core.view.isVisible import androidx.transition.TransitionManager import androidx.transition.doOnEnd -import com.blankj.utilcode.util.SizeUtils import com.google.android.material.transition.MaterialSharedAxis import com.itsaky.androidide.activities.editor.EditorActivityKt -import com.itsaky.androidide.app.IDEBuildConfigProvider import com.itsaky.androidide.app.LimitlessIDEActivity import com.itsaky.androidide.databinding.ActivityMainBinding import com.itsaky.androidide.preferences.internal.NO_OPENED_PROJECT import com.itsaky.androidide.preferences.internal.autoOpenProjects import com.itsaky.androidide.preferences.internal.confirmProjectOpen import com.itsaky.androidide.preferences.internal.lastOpenedProject -import com.itsaky.androidide.preferences.internal.prefManager import com.itsaky.androidide.preferences.internal.statConsentDialogShown -import com.itsaky.androidide.preferences.internal.statOptIn import com.itsaky.androidide.projects.ProjectManagerImpl import com.itsaky.androidide.resources.R.string import com.itsaky.androidide.templates.ITemplateProvider import com.itsaky.androidide.utils.DialogUtils import com.itsaky.androidide.utils.Environment -import com.itsaky.androidide.utils.flashError import com.itsaky.androidide.utils.flashInfo import com.itsaky.androidide.viewmodel.MainViewModel import com.itsaky.androidide.viewmodel.MainViewModel.Companion.SCREEN_MAIN diff --git a/common/src/main/java/com/itsaky/androidide/app/BaseIDEActivity.kt b/common/src/main/java/com/itsaky/androidide/app/BaseIDEActivity.kt index fb9db16b8b..454b6526b5 100755 --- a/common/src/main/java/com/itsaky/androidide/app/BaseIDEActivity.kt +++ b/common/src/main/java/com/itsaky/androidide/app/BaseIDEActivity.kt @@ -16,13 +16,9 @@ */ package com.itsaky.androidide.app -import android.Manifest.permission -import android.content.pm.PackageManager import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity -import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.itsaky.androidide.common.R import com.itsaky.androidide.tasks.cancelIfActive From 4ab0f9a2233960519763ae623aad9eea2826cd4f Mon Sep 17 00:00:00 2001 From: Vivek Date: Sun, 17 Dec 2023 09:17:31 +0530 Subject: [PATCH 05/10] fix: remove SplashActivity --- .idea/compiler.xml | 2 +- .idea/kotlinc.xml | 2 +- app/build.gradle.kts | 5 +- app/src/main/AndroidManifest.xml | 125 +++++++++--------- .../androidide/activities/MainActivity.kt | 19 +-- .../activities/OnboardingActivity.kt | 62 +++++---- .../androidide/activities/SplashActivity.kt | 32 ----- .../onboarding/OnboardingFragment.kt | 3 +- .../onboarding/StatisticsFragment.kt | 35 +++++ .../main/res/layout/fragment_statistics.xml | 76 +++++++++++ 10 files changed, 215 insertions(+), 146 deletions(-) delete mode 100644 app/src/main/java/com/itsaky/androidide/activities/SplashActivity.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt create mode 100644 app/src/main/res/layout/fragment_statistics.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 2e1f4ab954..c0791d9814 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -18,7 +18,7 @@ - + diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index f8467b458e..ae3f30ae18 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f562737b2f..ec2be5634c 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -47,7 +47,7 @@ android { "about.mappings", "about.properties", "about.ini", - "modeling32.png", + "modeling32.png" ) ) } @@ -56,9 +56,6 @@ android { abortOnError = false disable.addAll(arrayOf("VectorPath", "NestedWeights", "ContentDescription", "SmallSp")) } - buildFeatures { - viewBinding = true - } } kapt { arguments { arg("eventBusIndex", "${BuildConfig.packageName}.events.AppEventsIndex") } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfa05a63f3..7932c636f1 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,26 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" tools:ignore="Instantiatable"> - - - - - - - - - - - - + tools:ignore="DiscouragedApi,MediaCapabilities,UnusedAttribute"> + + android:name=".activities.OnboardingActivity"> + - + android:name=".activities.MainActivity" + android:theme="@style/Theme.AndroidIDE" /> + android:configChanges="orientation|screenSize" + android:name=".activities.AboutActivity" /> - - - - - - - - - - + + + + android:grantUriPermissions="true" + android:name=".provider.IDEFileProvider"> - - - + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt index d505301e04..5b35edf402 100755 --- a/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt @@ -80,12 +80,7 @@ class MainActivity : LimitlessIDEActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - - showStatConsentDialogIfNeeded { - app.reportStatsIfNecessary() - - if (!checkToolsIsInstalled()) openOnboarding() else openLastProject() - } + openLastProject() viewModel.currentScreen.observe(this) { screen -> if (screen == -1) { @@ -108,14 +103,6 @@ class MainActivity : LimitlessIDEActivity() { onBackPressedDispatcher.addCallback(this, onBackPressedCallback) } - private fun showStatConsentDialogIfNeeded(onResult: () -> Unit) { - if (statConsentDialogShown) { - onResult() - return - } - openOnboarding() - } - private fun openOnboarding() { startActivity(Intent(this, OnboardingActivity::class.java)) } @@ -170,10 +157,6 @@ class MainActivity : LimitlessIDEActivity() { return binding.root } - private fun checkToolsIsInstalled(): Boolean { - return Environment.JAVA.exists() && Environment.ANDROID_HOME.exists() - } - private fun openLastProject() { binding.root.post { tryOpenLastProject() } } diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt index d66d9e4dba..07f0e12e77 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -28,8 +28,10 @@ import com.github.appintro.AppIntro2 import com.github.appintro.AppIntroPageTransformerType import com.itsaky.androidide.R import com.itsaky.androidide.R.string +import com.itsaky.androidide.app.IDEApplication import com.itsaky.androidide.app.IDEBuildConfigProvider import com.itsaky.androidide.fragments.onboarding.OnboardingFragment +import com.itsaky.androidide.fragments.onboarding.StatisticsFragment import com.itsaky.androidide.preferences.internal.prefManager import com.itsaky.androidide.preferences.internal.statConsentDialogShown import com.itsaky.androidide.preferences.internal.statOptIn @@ -38,12 +40,20 @@ import com.itsaky.androidide.utils.flashError class OnboardingActivity : AppIntro2() { + private var statisticsFragmentHasShown = false + private val onBackPressedCallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { finishAffinity() } } + companion object { + + const val FRAGMENT_SETUP_SDK = "install_jdk_sdk" + const val FRAGMENT_DEVICE_NOT_SUPPORTED = "device_not_supported" + } + private val isStoragePermissionGranted: Boolean get() = (ContextCompat.checkSelfPermission(this, permission.READ_EXTERNAL_STORAGE) == @@ -53,6 +63,11 @@ class OnboardingActivity : AppIntro2() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + if (isSetupDone()) { + openActivity(MainActivity::class.java) + finish() + } + setTransformer(AppIntroPageTransformerType.Fade) isIndicatorEnabled = true isWizardMode = true @@ -60,36 +75,36 @@ class OnboardingActivity : AppIntro2() { showStatusBar(true) if (checkDeviceSupported()) { + if (!statConsentDialogShown || !statOptIn) { + addSlide(StatisticsFragment.newInstance()) + statConsentDialogShown = true + statisticsFragmentHasShown = true + } if (!isStoragePermissionGranted) { addSlide(OnboardingFragment.newInstance( string.title_file_access, string.msg_file_access, - R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one - name = "" + R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one )) askForPermissions( permissions = arrayOf( permission.WRITE_EXTERNAL_STORAGE, permission.READ_EXTERNAL_STORAGE ), - slideNumber = if (!archConfigWarnHasShown()) 1 else 2, + slideNumber = if (archConfigWarnHasShown()) { + if (statisticsFragmentHasShown) 3 else 2 + } else { + if (statisticsFragmentHasShown) 2 else 1 + }, required = true ) } - if (!statConsentDialogShown) { - addSlide(OnboardingFragment.newInstance( - string.title_androidide_statistics, - string.msg_androidide_statistics, - R.raw.statistics_animation, - "statistics" - )) - } if (!checkToolsIsInstalled()) { addSlide(OnboardingFragment.newInstance( string.title_install_jdk_sdk, string.msg_require_install_jdk_and_android_sdk, R.raw.java_animation, - "install_jdk_sdk" + FRAGMENT_SETUP_SDK )) } } @@ -125,13 +140,9 @@ class OnboardingActivity : AppIntro2() { } private fun checkConsent(fragment: Fragment?) { - if (fragment is OnboardingFragment) { - when (fragment.name) { - "statistics" -> { - statOptIn = true - statConsentDialogShown = true - } - } + if (fragment is StatisticsFragment) { + statOptIn = fragment.statOptIn + IDEApplication.instance.reportStatsIfNecessary() } } @@ -139,8 +150,8 @@ class OnboardingActivity : AppIntro2() { super.onDonePressed(currentFragment) if (currentFragment is OnboardingFragment) { when (currentFragment.name) { - "install_jdk_sdk" -> openActivity(TerminalActivity::class.java) - "device_not_supported" -> finishAffinity() + FRAGMENT_SETUP_SDK -> openActivity(TerminalActivity::class.java) + FRAGMENT_DEVICE_NOT_SUPPORTED -> finishAffinity() else -> openActivity(MainActivity::class.java) } } @@ -171,8 +182,7 @@ class OnboardingActivity : AppIntro2() { addSlide(OnboardingFragment.newInstance( string.title_device_not_supported, string.msg_64bit_on_32bit_device, - R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one - name = "" + R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one )) false @@ -187,9 +197,9 @@ class OnboardingActivity : AppIntro2() { addSlide(OnboardingFragment.newInstance( string.title_32bit_on_64bit_device, string.msg_32bit_on_64bit_device, - R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one - name = "" + R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one )) + prefManager.putBoolean("ide.archConfigWarn.hasShown", true) } true @@ -200,7 +210,7 @@ class OnboardingActivity : AppIntro2() { string.title_device_not_supported, string.msg_device_not_supported, R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one - "device_not_supported" + FRAGMENT_DEVICE_NOT_SUPPORTED )) } diff --git a/app/src/main/java/com/itsaky/androidide/activities/SplashActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/SplashActivity.kt deleted file mode 100644 index a7ebc4b131..0000000000 --- a/app/src/main/java/com/itsaky/androidide/activities/SplashActivity.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * This file is part of AndroidIDE. - * - * AndroidIDE is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * AndroidIDE is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AndroidIDE. If not, see . - */ - -package com.itsaky.androidide.activities - -import android.app.Activity -import android.content.Intent -import android.os.Bundle - -class SplashActivity : Activity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - startActivity(Intent(this, MainActivity::class.java)) - finish() - } - -} diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt index 5717b97854..126e34da33 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt @@ -66,7 +66,8 @@ class OnboardingFragment : Fragment() { companion object { @JvmStatic - fun newInstance(@StringRes title: Int, @StringRes message: Int, @RawRes icon: Int, name: String) = + @JvmOverloads + fun newInstance(@StringRes title: Int, @StringRes message: Int, @RawRes icon: Int, name: String = "") = OnboardingFragment().apply { this.title = title this.message = message diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt new file mode 100644 index 0000000000..f1bcd6f17a --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt @@ -0,0 +1,35 @@ +package com.itsaky.androidide.fragments.onboarding + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.itsaky.androidide.databinding.FragmentStatisticsBinding + +class StatisticsFragment : Fragment() { + + private var _binding: FragmentStatisticsBinding? = null + private val binding: FragmentStatisticsBinding + get() = checkNotNull(_binding) { "Fragment has been destroyed" } + + val statOptIn: Boolean + get() = binding.statOptIn.isChecked + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle?): View { + _binding = FragmentStatisticsBinding.inflate(inflater, container, false) + return binding.root + } + + override fun onDestroy() { + super.onDestroy() + _binding = null + } + + companion object { + + @JvmStatic + fun newInstance() = StatisticsFragment() + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_statistics.xml b/app/src/main/res/layout/fragment_statistics.xml new file mode 100644 index 0000000000..079f833e92 --- /dev/null +++ b/app/src/main/res/layout/fragment_statistics.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + \ No newline at end of file From 02ae899cd40b66b5d3c6380a51df7693a7d3efab Mon Sep 17 00:00:00 2001 From: Vivek Date: Sun, 17 Dec 2023 12:18:44 +0530 Subject: [PATCH 06/10] fix: addSlide for ExperimentalWarning of archConfig --- .../activities/OnboardingActivity.kt | 79 ++++++++----------- .../onboarding/OnboardingFragment.kt | 30 +++---- .../main/res/layout/fragment_statistics.xml | 2 + .../itsaky/androidide/utils/DialogUtils.kt | 22 ------ 4 files changed, 51 insertions(+), 82 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt index 07f0e12e77..bd15e75075 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -29,7 +29,7 @@ import com.github.appintro.AppIntroPageTransformerType import com.itsaky.androidide.R import com.itsaky.androidide.R.string import com.itsaky.androidide.app.IDEApplication -import com.itsaky.androidide.app.IDEBuildConfigProvider +import com.itsaky.androidide.app.configuration.IDEBuildConfigProvider import com.itsaky.androidide.fragments.onboarding.OnboardingFragment import com.itsaky.androidide.fragments.onboarding.StatisticsFragment import com.itsaky.androidide.preferences.internal.prefManager @@ -82,8 +82,8 @@ class OnboardingActivity : AppIntro2() { } if (!isStoragePermissionGranted) { addSlide(OnboardingFragment.newInstance( - string.title_file_access, - string.msg_file_access, + getString(string.title_file_access), + getString(string.msg_file_access), R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one )) askForPermissions( @@ -91,7 +91,7 @@ class OnboardingActivity : AppIntro2() { permission.WRITE_EXTERNAL_STORAGE, permission.READ_EXTERNAL_STORAGE ), - slideNumber = if (archConfigWarnHasShown()) { + slideNumber = if (archConfigExperimentalWarningIsShown()) { if (statisticsFragmentHasShown) 3 else 2 } else { if (statisticsFragmentHasShown) 2 else 1 @@ -101,10 +101,11 @@ class OnboardingActivity : AppIntro2() { } if (!checkToolsIsInstalled()) { addSlide(OnboardingFragment.newInstance( - string.title_install_jdk_sdk, - string.msg_require_install_jdk_and_android_sdk, + getString(string.title_install_jdk_sdk), + getString(string.msg_require_install_jdk_and_android_sdk), R.raw.java_animation, - FRAGMENT_SETUP_SDK + FRAGMENT_SETUP_SDK, + true )) } } @@ -171,52 +172,38 @@ class OnboardingActivity : AppIntro2() { private fun checkDeviceSupported(): Boolean { val configProvider = IDEBuildConfigProvider.getInstance() - val supported = if ( - configProvider.isArm64v8aBuild() - && !configProvider.isArm64v8aDevice() - && configProvider.isArmeabiv7aDevice() - ) { - // IDE = 64-bit - // Device = 32-bit - // NOT SUPPORTED + if (!configProvider.supportsBuildFlavor()) { addSlide(OnboardingFragment.newInstance( - string.title_device_not_supported, - string.msg_64bit_on_32bit_device, - R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one + getString(string.title_unsupported_device), + getString( + string.msg_unsupported_device, + configProvider.flavorArch.abi, + configProvider.deviceArch.abi + ), + R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one + FRAGMENT_DEVICE_NOT_SUPPORTED )) - false - - } else if ( - configProvider.isArmeabiv7aBuild() - && configProvider.isArm64v8aDevice() - ) { - // IDE = 32-bit - // Device = 64-bit - // SUPPORTED, but warn the user - if (!archConfigWarnHasShown()) { + return false + } + + if (configProvider.flavorArch != configProvider.deviceArch) { + // IDE's build flavor is NOT the primary arch of the device + // warn the user + if (!archConfigExperimentalWarningIsShown()) { addSlide(OnboardingFragment.newInstance( - string.title_32bit_on_64bit_device, - string.msg_32bit_on_64bit_device, + getString(string.title_experiment_flavor), + getString(string.msg_experimental_flavor, + configProvider.flavorArch.abi, + configProvider.deviceArch.abi + ), R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one )) - prefManager.putBoolean("ide.archConfigWarn.hasShown", true) + prefManager.putBoolean("ide.archConfig.experimentalWarning.isShown", true) } - true - - } else configProvider.supportsBuildFlavor() - - if (!supported) { - addSlide(OnboardingFragment.newInstance( - string.title_device_not_supported, - string.msg_device_not_supported, - R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one - FRAGMENT_DEVICE_NOT_SUPPORTED - )) } - - return supported + return true } - private fun archConfigWarnHasShown() = - prefManager.getBoolean("ide.archConfigWarn.hasShown", false) + private fun archConfigExperimentalWarningIsShown() = + prefManager.getBoolean("ide.archConfig.experimentalWarning.isShown", false) } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt index 126e34da33..b8009d26d7 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt @@ -23,55 +23,57 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.annotation.RawRes -import androidx.annotation.StringRes import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import com.itsaky.androidide.databinding.FragmentOnboardingBinding class OnboardingFragment : Fragment() { - @StringRes - private var title: Int? = null - - @StringRes - private var message: Int? = null + private var title: String? = null + private var message: String? = null + private var hasHtml: Boolean = false @RawRes private var icon: Int? = null var name: String? = null - private var binding: FragmentOnboardingBinding? = null + private var _binding: FragmentOnboardingBinding? = null + private val binding get() = checkNotNull(_binding) { "Fragment has been destroyed" } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - binding = FragmentOnboardingBinding.inflate(inflater, container, false) - return binding!!.root + _binding = FragmentOnboardingBinding.inflate(inflater, container, false) + return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding?.apply { + binding.apply { tvMessage.movementMethod = LinkMovementMethod.getInstance() - title?.let(this@OnboardingFragment::getString).also(tvTitle::setText) - message?.let { HtmlCompat.fromHtml(getString(it), HtmlCompat.FROM_HTML_MODE_COMPACT) }.also(tvMessage::setText) + tvTitle.text = title + tvMessage.text = if (hasHtml) message?.let { + HtmlCompat.fromHtml(it, HtmlCompat.FROM_HTML_MODE_COMPACT) + } else message icon?.let(animationView::setAnimation) } } override fun onDestroyView() { super.onDestroyView() - binding = null + _binding = null } companion object { + @JvmStatic @JvmOverloads - fun newInstance(@StringRes title: Int, @StringRes message: Int, @RawRes icon: Int, name: String = "") = + fun newInstance(title: String, message: String, @RawRes icon: Int, name: String = "", hasHtml: Boolean = false) = OnboardingFragment().apply { this.title = title this.message = message this.icon = icon + this.hasHtml = hasHtml this.name = name } } diff --git a/app/src/main/res/layout/fragment_statistics.xml b/app/src/main/res/layout/fragment_statistics.xml index 079f833e92..582ec330c7 100644 --- a/app/src/main/res/layout/fragment_statistics.xml +++ b/app/src/main/res/layout/fragment_statistics.xml @@ -67,6 +67,8 @@ android:id="@+id/stat_opt_in" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:paddingStart="15dp" + android:paddingEnd="15dp" android:checked="true" android:text="@string/idepref_stats_optIn_summary" app:layout_constraintBottom_toBottomOf="parent" diff --git a/common/src/main/java/com/itsaky/androidide/utils/DialogUtils.kt b/common/src/main/java/com/itsaky/androidide/utils/DialogUtils.kt index a3385f1016..77f1d6e94e 100644 --- a/common/src/main/java/com/itsaky/androidide/utils/DialogUtils.kt +++ b/common/src/main/java/com/itsaky/androidide/utils/DialogUtils.kt @@ -16,13 +16,11 @@ */ package com.itsaky.androidide.utils -import android.app.Activity import android.content.Context import android.content.DialogInterface.OnClickListener import android.view.LayoutInflater import android.view.View import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.itsaky.androidide.common.R import com.itsaky.androidide.common.databinding.LayoutDialogProgressBinding import com.itsaky.androidide.resources.R.string import com.itsaky.androidide.resources.R.style @@ -36,26 +34,6 @@ import java.util.concurrent.atomic.AtomicInteger */ object DialogUtils { - @JvmStatic - fun showUnSupportedDevice(context: Activity, buildFlavor: String, deviceArch: String) { - val builder = newMaterialDialogBuilder(context) - builder.setTitle(R.string.title_unsupported_device) - builder.setMessage(context.getString(R.string.msg_unsupported_device, buildFlavor, deviceArch)) - builder.setCancelable(false) - builder.setPositiveButton(android.R.string.ok) { _, _ -> context.finishAffinity() } - builder.create().show() - } - - @JvmStatic - fun showExperimentalArchSupportWarning(context: Activity, buildFlavor: String, deviceArch: String) { - val builder = newMaterialDialogBuilder(context) - builder.setTitle(R.string.title_experiment_flavor) - builder.setMessage(context.getString(R.string.msg_experimental_flavor, buildFlavor, deviceArch)) - builder.setCancelable(false) - builder.setPositiveButton(android.R.string.ok) { dialog, _ -> dialog.dismiss() } - builder.create().show() - } - @JvmStatic @JvmOverloads fun newProgressDialog( From 2e78d6ad35a27d4e8cd7370b289124a6398ebd4e Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Tue, 19 Dec 2023 20:15:26 +0530 Subject: [PATCH 07/10] fix: update onboarding fragments This updates the look and feel of the onboarding fragments and add a few more fragments for permissions, tool installation, etc. --- app/build.gradle.kts | 1 - app/src/main/AndroidManifest.xml | 41 +-- .../activities/OnboardingActivity.kt | 137 ++++----- .../androidide/activities/TerminalActivity.kt | 2 + .../DefaultOnboardingItemAdapter.kt | 106 +++++++ .../OnboardingPermissionsAdapter.kt | 80 ++++++ .../fragments/TemplateListFragment.kt | 38 +-- .../onboarding/OnboardingFragment.kt | 78 +++-- .../onboarding/OnboardingGreetingFragment.kt | 27 ++ .../onboarding/OnboardingInfoFragment.kt | 71 +++++ .../OnboardingMultiActionFragment.kt | 84 ++++++ .../OnboardingPermissionsFragment.kt | 164 +++++++++++ .../OnboardingToolInstallationFragment.kt | 266 ++++++++++++++++++ .../onboarding/StatisticsFragment.kt | 51 ++-- .../models/DefaultOnboardingItem.kt | 36 +++ .../models/HyperlinkedOnboardingItem.kt | 38 +++ .../androidide/models/OnboardingItem.kt | 67 +++++ .../models/OnboardingPermissionItem.kt | 34 +++ .../services/builder/GradleBuildService.kt | 13 + .../itsaky/androidide/utils/FlexboxUtils.kt | 63 +++++ .../res/layout-land/fragment_onboarding.xml | 89 ++++++ .../fragment_onboarding_greeting.xml | 62 ++++ .../layout-land/fragment_onboarding_info.xml | 69 +++++ .../layout-sw600dp/fragment_onboarding.xml | 89 ++++++ .../fragment_onboarding_greeting.xml | 62 ++++ .../fragment_onboarding_info.xml | 69 +++++ .../main/res/layout/fragment_onboarding.xml | 101 ++++--- .../layout/fragment_onboarding_greeting.xml | 60 ++++ .../res/layout/fragment_onboarding_info.xml | 75 +++++ app/src/main/res/layout/layout_chip_error.xml | 36 +++ .../main/res/layout/layout_chip_warning.xml | 36 +++ .../res/layout/layout_icon_title_subtitle.xml | 66 +++++ .../res/layout/layout_onboarding_item.xml | 30 ++ .../layout/layout_onboarding_multiaction.xml | 28 ++ .../layout_onboarding_permission_item.xml | 54 ++++ ...s.xml => layout_onboarding_statistics.xml} | 59 ++-- .../main/res/layout/layout_title_subtitle.xml | 53 ++++ .../androidide/app/BaseApplication.java | 10 - .../androidide/utils/buildVersionExt.kt | 45 +++ .../androidide/utils/connectionUtilExt.kt | 87 ++++++ gradle/libs.versions.toml | 2 - resources/src/main/res/drawable/ic_alert.xml | 26 ++ .../main/res/drawable/ic_android_colored.xml | 10 + resources/src/main/res/drawable/ic_bell.xml | 26 ++ .../src/main/res/drawable/ic_java_colored.xml | 12 + .../src/main/res/drawable/ic_ui_mode_dark.xml | 26 ++ .../main/res/drawable/ic_ui_mode_light.xml | 9 + .../src/main/res/raw/java_animation.json | 1 - .../main/res/raw/statistics_animation.json | 1 - resources/src/main/res/values-ar/strings.xml | 2 +- resources/src/main/res/values-bn/strings.xml | 2 +- resources/src/main/res/values-de/strings.xml | 2 +- resources/src/main/res/values-es/strings.xml | 2 +- resources/src/main/res/values-fr/strings.xml | 2 +- resources/src/main/res/values-hi/strings.xml | 2 +- resources/src/main/res/values-id/strings.xml | 2 +- resources/src/main/res/values-in/strings.xml | 2 +- resources/src/main/res/values-pt/strings.xml | 2 +- resources/src/main/res/values-ro/strings.xml | 2 +- resources/src/main/res/values-ru/strings.xml | 2 +- resources/src/main/res/values-tr/strings.xml | 2 +- resources/src/main/res/values-zh/strings.xml | 2 +- resources/src/main/res/values/colors.xml | 10 +- resources/src/main/res/values/strings.xml | 28 +- resources/src/main/res/values/styles.xml | 6 + subprojects/flashbar/build.gradle.kts | 2 + .../src/main/res/drawable/ic_info.png | Bin 4717 -> 0 bytes .../src/main/res/drawable/ic_copy.xml | 5 - .../src/main/res/drawable/ic_info.xml | 5 - .../src/main/res/drawable/ic_settings.xml | 5 - .../src/main/res/drawable/ic_share.xml | 5 - 71 files changed, 2434 insertions(+), 348 deletions(-) create mode 100644 app/src/main/java/com/itsaky/androidide/adapters/onboarding/DefaultOnboardingItemAdapter.kt create mode 100644 app/src/main/java/com/itsaky/androidide/adapters/onboarding/OnboardingPermissionsAdapter.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingInfoFragment.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt create mode 100644 app/src/main/java/com/itsaky/androidide/models/DefaultOnboardingItem.kt create mode 100644 app/src/main/java/com/itsaky/androidide/models/HyperlinkedOnboardingItem.kt create mode 100644 app/src/main/java/com/itsaky/androidide/models/OnboardingItem.kt create mode 100644 app/src/main/java/com/itsaky/androidide/models/OnboardingPermissionItem.kt create mode 100644 app/src/main/java/com/itsaky/androidide/utils/FlexboxUtils.kt create mode 100644 app/src/main/res/layout-land/fragment_onboarding.xml create mode 100644 app/src/main/res/layout-land/fragment_onboarding_greeting.xml create mode 100644 app/src/main/res/layout-land/fragment_onboarding_info.xml create mode 100644 app/src/main/res/layout-sw600dp/fragment_onboarding.xml create mode 100644 app/src/main/res/layout-sw600dp/fragment_onboarding_greeting.xml create mode 100644 app/src/main/res/layout-sw600dp/fragment_onboarding_info.xml create mode 100644 app/src/main/res/layout/fragment_onboarding_greeting.xml create mode 100644 app/src/main/res/layout/fragment_onboarding_info.xml create mode 100644 app/src/main/res/layout/layout_chip_error.xml create mode 100644 app/src/main/res/layout/layout_chip_warning.xml create mode 100644 app/src/main/res/layout/layout_icon_title_subtitle.xml create mode 100644 app/src/main/res/layout/layout_onboarding_item.xml create mode 100644 app/src/main/res/layout/layout_onboarding_multiaction.xml create mode 100644 app/src/main/res/layout/layout_onboarding_permission_item.xml rename app/src/main/res/layout/{fragment_statistics.xml => layout_onboarding_statistics.xml} (50%) create mode 100644 app/src/main/res/layout/layout_title_subtitle.xml create mode 100644 common/src/main/java/com/itsaky/androidide/utils/buildVersionExt.kt create mode 100644 common/src/main/java/com/itsaky/androidide/utils/connectionUtilExt.kt create mode 100644 resources/src/main/res/drawable/ic_alert.xml create mode 100755 resources/src/main/res/drawable/ic_android_colored.xml create mode 100644 resources/src/main/res/drawable/ic_bell.xml create mode 100644 resources/src/main/res/drawable/ic_java_colored.xml create mode 100644 resources/src/main/res/drawable/ic_ui_mode_dark.xml create mode 100644 resources/src/main/res/drawable/ic_ui_mode_light.xml delete mode 100644 resources/src/main/res/raw/java_animation.json delete mode 100644 resources/src/main/res/raw/statistics_animation.json delete mode 100644 subprojects/flashbar/src/main/res/drawable/ic_info.png delete mode 100644 termux/termux-shared/src/main/res/drawable/ic_copy.xml delete mode 100644 termux/termux-shared/src/main/res/drawable/ic_info.xml delete mode 100644 termux/termux-shared/src/main/res/drawable/ic_settings.xml delete mode 100644 termux/termux-shared/src/main/res/drawable/ic_share.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 87f4fa9a23..bab4b9e2e1 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -70,7 +70,6 @@ dependencies { implementation(libs.common.jsoup) implementation(libs.common.kotlin.coroutines.android) implementation(libs.common.appintro) - implementation(libs.common.lottie) implementation(libs.google.auto.service.annotations) implementation(libs.google.gson) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 004d411517..c10203116d 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,27 @@ android:installLocation="internalOnly" tools:ignore="Instantiatable"> + + + + + + + + + + + + + + - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt index bd15e75075..539894d6f5 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -17,9 +17,7 @@ package com.itsaky.androidide.activities -import android.Manifest.permission import android.content.Intent -import android.content.pm.PackageManager import android.os.Bundle import androidx.activity.OnBackPressedCallback import androidx.core.content.ContextCompat @@ -28,20 +26,22 @@ import com.github.appintro.AppIntro2 import com.github.appintro.AppIntroPageTransformerType import com.itsaky.androidide.R import com.itsaky.androidide.R.string -import com.itsaky.androidide.app.IDEApplication import com.itsaky.androidide.app.configuration.IDEBuildConfigProvider -import com.itsaky.androidide.fragments.onboarding.OnboardingFragment +import com.itsaky.androidide.fragments.onboarding.OnboardingGreetingFragment +import com.itsaky.androidide.fragments.onboarding.OnboardingInfoFragment +import com.itsaky.androidide.fragments.onboarding.OnboardingPermissionsFragment +import com.itsaky.androidide.fragments.onboarding.OnboardingToolInstallationFragment import com.itsaky.androidide.fragments.onboarding.StatisticsFragment import com.itsaky.androidide.preferences.internal.prefManager import com.itsaky.androidide.preferences.internal.statConsentDialogShown import com.itsaky.androidide.preferences.internal.statOptIn +import com.itsaky.androidide.ui.themes.IThemeManager import com.itsaky.androidide.utils.Environment import com.itsaky.androidide.utils.flashError +import com.itsaky.androidide.utils.resolveAttr class OnboardingActivity : AppIntro2() { - private var statisticsFragmentHasShown = false - private val onBackPressedCallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { finishAffinity() @@ -50,76 +50,45 @@ class OnboardingActivity : AppIntro2() { companion object { - const val FRAGMENT_SETUP_SDK = "install_jdk_sdk" - const val FRAGMENT_DEVICE_NOT_SUPPORTED = "device_not_supported" + private const val KEY_ARCHCONFIG_WARNING_IS_SHOWN = "ide.archConfig.experimentalWarning.isShown" } - private val isStoragePermissionGranted: Boolean - get() = - (ContextCompat.checkSelfPermission(this, permission.READ_EXTERNAL_STORAGE) == - PackageManager.PERMISSION_GRANTED && - ContextCompat.checkSelfPermission(this, permission.WRITE_EXTERNAL_STORAGE) == - PackageManager.PERMISSION_GRANTED) - override fun onCreate(savedInstanceState: Bundle?) { + IThemeManager.getInstance().applyTheme(this) + super.onCreate(savedInstanceState) + if (isSetupDone()) { openActivity(MainActivity::class.java) finish() } + onBackPressedDispatcher.addCallback(this, onBackPressedCallback) + setTransformer(AppIntroPageTransformerType.Fade) - isIndicatorEnabled = true - isWizardMode = true setProgressIndicator() showStatusBar(true) + isIndicatorEnabled = true + isWizardMode = true - if (checkDeviceSupported()) { - if (!statConsentDialogShown || !statOptIn) { - addSlide(StatisticsFragment.newInstance()) - statConsentDialogShown = true - statisticsFragmentHasShown = true - } - if (!isStoragePermissionGranted) { - addSlide(OnboardingFragment.newInstance( - getString(string.title_file_access), - getString(string.msg_file_access), - R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one - )) - askForPermissions( - permissions = arrayOf( - permission.WRITE_EXTERNAL_STORAGE, - permission.READ_EXTERNAL_STORAGE - ), - slideNumber = if (archConfigExperimentalWarningIsShown()) { - if (statisticsFragmentHasShown) 3 else 2 - } else { - if (statisticsFragmentHasShown) 2 else 1 - }, - required = true - ) - } - if (!checkToolsIsInstalled()) { - addSlide(OnboardingFragment.newInstance( - getString(string.title_install_jdk_sdk), - getString(string.msg_require_install_jdk_and_android_sdk), - R.raw.java_animation, - FRAGMENT_SETUP_SDK, - true - )) - } + addSlide(OnboardingGreetingFragment()) + + if (!checkDeviceSupported()) { + return } - onBackPressedDispatcher.addCallback(this, onBackPressedCallback) - } + if (!statConsentDialogShown) { + addSlide(StatisticsFragment.newInstance(this)) + statConsentDialogShown = true + } - override fun onUserDeniedPermission(permissionName: String) { - // User pressed "Deny" on the permission dialog - flashError(string.msg_storage_denied) - } + if (!OnboardingPermissionsFragment.areAllPermissionsGranted(this)) { + addSlide(OnboardingPermissionsFragment.newInstance(this)) + } - override fun onUserDisabledPermission(permissionName: String) { - // User pressed "Deny" + "Don't ask again" on the permission dialog + if (!checkToolsIsInstalled()) { + addSlide(OnboardingToolInstallationFragment.newInstance(this)) + } } override fun onResume() { @@ -130,32 +99,18 @@ class OnboardingActivity : AppIntro2() { } } - override fun onSlideChanged(oldFragment: Fragment?, newFragment: Fragment?) { - super.onSlideChanged(oldFragment, newFragment) - checkConsent(oldFragment) - } - - override fun onNextPressed(currentFragment: Fragment?) { - super.onNextPressed(currentFragment) - checkConsent(currentFragment) - } - - private fun checkConsent(fragment: Fragment?) { - if (fragment is StatisticsFragment) { - statOptIn = fragment.statOptIn - IDEApplication.instance.reportStatsIfNecessary() + override fun onDonePressed(currentFragment: Fragment?) { + if (!IDEBuildConfigProvider.getInstance().supportsBuildFlavor()) { + finishAffinity() + return } - } - override fun onDonePressed(currentFragment: Fragment?) { - super.onDonePressed(currentFragment) - if (currentFragment is OnboardingFragment) { - when (currentFragment.name) { - FRAGMENT_SETUP_SDK -> openActivity(TerminalActivity::class.java) - FRAGMENT_DEVICE_NOT_SUPPORTED -> finishAffinity() - else -> openActivity(MainActivity::class.java) - } + if (!checkToolsIsInstalled()) { + openActivity(TerminalActivity::class.java) + return } + + openActivity(MainActivity::class.java) } private fun openActivity(cls: Class<*>) { @@ -167,21 +122,21 @@ class OnboardingActivity : AppIntro2() { } private fun isSetupDone() = - (checkToolsIsInstalled() && statConsentDialogShown && isStoragePermissionGranted) + (checkToolsIsInstalled() && statConsentDialogShown && OnboardingPermissionsFragment.areAllPermissionsGranted(this)) private fun checkDeviceSupported(): Boolean { val configProvider = IDEBuildConfigProvider.getInstance() if (!configProvider.supportsBuildFlavor()) { - addSlide(OnboardingFragment.newInstance( + addSlide(OnboardingInfoFragment.newInstance( getString(string.title_unsupported_device), getString( string.msg_unsupported_device, configProvider.flavorArch.abi, configProvider.deviceArch.abi ), - R.raw.statistics_animation, // TODO: Replace the animation with a more appropriate one - FRAGMENT_DEVICE_NOT_SUPPORTED + R.drawable.ic_alert, + ContextCompat.getColor(this, R.color.color_error) )) return false } @@ -190,20 +145,22 @@ class OnboardingActivity : AppIntro2() { // IDE's build flavor is NOT the primary arch of the device // warn the user if (!archConfigExperimentalWarningIsShown()) { - addSlide(OnboardingFragment.newInstance( + addSlide(OnboardingInfoFragment.newInstance( getString(string.title_experiment_flavor), getString(string.msg_experimental_flavor, configProvider.flavorArch.abi, configProvider.deviceArch.abi ), - R.raw.statistics_animation // TODO: Replace the animation with a more appropriate one + R.drawable.ic_alert, + ContextCompat.getColor(this, R.color.color_warning) )) - prefManager.putBoolean("ide.archConfig.experimentalWarning.isShown", true) + prefManager.putBoolean(KEY_ARCHCONFIG_WARNING_IS_SHOWN, true) } } + return true } private fun archConfigExperimentalWarningIsShown() = - prefManager.getBoolean("ide.archConfig.experimentalWarning.isShown", false) + prefManager.getBoolean(KEY_ARCHCONFIG_WARNING_IS_SHOWN, false) } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt index 48468a34fc..59bd3df8c3 100755 --- a/app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt @@ -54,6 +54,8 @@ class TerminalActivity : TermuxActivity() { override fun onServiceConnected(componentName: ComponentName?, service: IBinder?) { super.onServiceConnected(componentName, service) writeSourcesList() + + Environment.mkdirIfNotExits(Environment.TMP_DIR) } private fun writeSourcesList() { diff --git a/app/src/main/java/com/itsaky/androidide/adapters/onboarding/DefaultOnboardingItemAdapter.kt b/app/src/main/java/com/itsaky/androidide/adapters/onboarding/DefaultOnboardingItemAdapter.kt new file mode 100644 index 0000000000..a9647c16ee --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/adapters/onboarding/DefaultOnboardingItemAdapter.kt @@ -0,0 +1,106 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.adapters.onboarding + +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.core.view.isVisible +import androidx.recyclerview.widget.RecyclerView +import com.itsaky.androidide.R +import com.itsaky.androidide.databinding.LayoutOnboardingItemBinding +import com.itsaky.androidide.models.OnboardingItem +import com.itsaky.androidide.utils.resolveAttr + +/** + * Default implmentation of [RecyclerView.Adapter] for showing [OnboardingItem]s. + * + * @author Akash Yadav + */ +open class DefaultOnboardingItemAdapter( + protected val items: List, + protected val onItemClickListener: OnItemClickListener? = null, + protected val onItemLongClickListener: OnItemLongClickListener? = null +) : RecyclerView.Adapter() { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + return ViewHolder( + LayoutOnboardingItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + doBindViewHolder(holder, position, getItem(position), holder.binding) + } + + protected open fun doBindViewHolder( + holder: ViewHolder, + position: Int, + item: T, + binding: LayoutOnboardingItemBinding + ) { + binding.content.title.text = item.title + + if (item.description.isNotBlank()) { + binding.content.subtitle.text = item.description + } else { + binding.content.subtitle.visibility = View.INVISIBLE + } + + if (item.icon != 0) { + binding.content.icon.setImageResource(item.icon) + if (item.iconTint != 0) { + binding.content.icon.supportImageTintList = ColorStateList.valueOf(item.iconTint) + } + } else { + binding.content.icon.visibility = View.INVISIBLE + } + + binding.root.isClickable = item.isClickable + binding.root.isFocusable = item.isClickable + + if (item.isClickable && onItemClickListener != null) { + binding.root.setOnClickListener { onItemClickListener.onClick(item, position, binding) } + } + + if (item.isLongClickable && onItemLongClickListener != null) { + binding.root.setOnLongClickListener { onItemLongClickListener.onLongClick(item, position, binding) } + } + } + + override fun getItemCount(): Int { + return items.size + } + + fun getItem(index: Int): T { + return items[index] + } + + class ViewHolder(val binding: LayoutOnboardingItemBinding) : + RecyclerView.ViewHolder(binding.root) + + fun interface OnItemClickListener { + + fun onClick(item: T, position: Int, binding: LayoutOnboardingItemBinding) + } + + fun interface OnItemLongClickListener { + + fun onLongClick(item: T, position: Int, binding: LayoutOnboardingItemBinding): Boolean + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/adapters/onboarding/OnboardingPermissionsAdapter.kt b/app/src/main/java/com/itsaky/androidide/adapters/onboarding/OnboardingPermissionsAdapter.kt new file mode 100644 index 0000000000..ea5ad792f3 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/adapters/onboarding/OnboardingPermissionsAdapter.kt @@ -0,0 +1,80 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.adapters.onboarding + +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import com.blankj.utilcode.util.SizeUtils +import com.google.android.material.button.MaterialButton +import com.itsaky.androidide.R +import com.itsaky.androidide.databinding.LayoutOnboardingPermissionItemBinding +import com.itsaky.androidide.models.OnboardingPermissionItem +import com.itsaky.androidide.utils.ILogger + +/** + * @author Akash Yadav + */ +class OnboardingPermissionsAdapter(private val permissions: List, + private val requestPermission: (String) -> Unit) : + RecyclerView.Adapter() { + + class ViewHolder(val binding: LayoutOnboardingPermissionItemBinding) : + RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + return ViewHolder( + LayoutOnboardingPermissionItemBinding.inflate(LayoutInflater.from(parent.context), parent, + false)) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val binding = holder.binding + val permission = permissions[position] + + binding.infoContent.apply { + title.setText(permission.title) + subtitle.setText(permission.description) + } + + binding.grantButton.setOnClickListener { + requestPermission(permission.permission) + } + + if (permission.isGranted) { + binding.grantButton.apply { + isEnabled = false + text = "" + icon = ContextCompat.getDrawable(binding.root.context, R.drawable.ic_ok) + iconTint = ColorStateList.valueOf( + ContextCompat.getColor(binding.root.context, R.color.green_500)) + iconGravity = MaterialButton.ICON_GRAVITY_TEXT_TOP + iconPadding = 0 + iconSize = SizeUtils.dp2px(28f) + } + } + } + + private val log = ILogger.newInstance("OnboardingPermissionsAdapter") + + override fun getItemCount(): Int { + return permissions.size + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/TemplateListFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/TemplateListFragment.kt index 42194343bb..3752387881 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/TemplateListFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/TemplateListFragment.kt @@ -29,18 +29,18 @@ import com.itsaky.androidide.adapters.TemplateListAdapter import com.itsaky.androidide.databinding.FragmentTemplateListBinding import com.itsaky.androidide.templates.ITemplateProvider import com.itsaky.androidide.templates.ProjectTemplate +import com.itsaky.androidide.utils.FlexboxUtils import com.itsaky.androidide.utils.ILogger import com.itsaky.androidide.viewmodel.MainViewModel -import kotlin.math.ceil /** * A fragment to show the list of available templates. * * @author Akash Yadav */ -class TemplateListFragment : FragmentWithBinding( - R.layout.fragment_template_list, FragmentTemplateListBinding::bind -) { +class TemplateListFragment : + FragmentWithBinding(R.layout.fragment_template_list, + FragmentTemplateListBinding::bind) { private var adapter: TemplateListAdapter? = null private var layoutManager: FlexboxLayoutManager? = null @@ -59,30 +59,11 @@ class TemplateListFragment : FragmentWithBinding( // This makes sure that the items are evenly distributed in the list // and the last row is always aligned to the start - globalLayoutListener = object : OnGlobalLayoutListener { - override fun onGlobalLayout() { - val adapter = this@TemplateListFragment.adapter ?: return - val layoutManager = this@TemplateListFragment.layoutManager ?: return - - val columns = layoutManager.flexLinesInternal.firstOrNull()?.itemCount ?: 0 - if (columns == 0) { - return - } - - val itemCount = adapter.itemCount - val rows = ceil(itemCount.toFloat() / columns.toFloat()).toInt() - if (itemCount % columns == 0) { - return - } - - val diff = rows * columns - itemCount - if (diff <= 0) { - return - } - - adapter.fillDiff(diff) - } + globalLayoutListener = FlexboxUtils.createGlobalLayoutListenerToDistributeFlexboxItemsEvenly( + { adapter }, { layoutManager }) { adapter, diff -> + adapter.fillDiff(diff) } + binding.list.viewTreeObserver.addOnGlobalLayoutListener(globalLayoutListener) binding.exitButton.setOnClickListener { @@ -113,8 +94,7 @@ class TemplateListFragment : FragmentWithBinding( // Show only project templates // reloading the tempaltes also makes sure that the resources are // released from template parameter widgets - val templates = ITemplateProvider.getInstance(reload = true) - .getTemplates() + val templates = ITemplateProvider.getInstance(reload = true).getTemplates() .filterIsInstance() adapter = TemplateListAdapter(templates) { template, _ -> diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt index b8009d26d7..20d5f65a10 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingFragment.kt @@ -18,63 +18,53 @@ package com.itsaky.androidide.fragments.onboarding import android.os.Bundle -import android.text.method.LinkMovementMethod -import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.annotation.RawRes -import androidx.core.text.HtmlCompat -import androidx.fragment.app.Fragment +import androidx.core.text.method.LinkMovementMethodCompat +import androidx.core.view.updateLayoutParams import com.itsaky.androidide.databinding.FragmentOnboardingBinding +import com.itsaky.androidide.fragments.FragmentWithBinding -class OnboardingFragment : Fragment() { +open class OnboardingFragment : + FragmentWithBinding(FragmentOnboardingBinding::inflate) { - private var title: String? = null - private var message: String? = null - private var hasHtml: Boolean = false - - @RawRes - private var icon: Int? = null - - var name: String? = null + companion object { - private var _binding: FragmentOnboardingBinding? = null - private val binding get() = checkNotNull(_binding) { "Fragment has been destroyed" } + const val KEY_ONBOARDING_TITLE = "ide.onboarding.fragment.title" + const val KEY_ONBOARDING_SUBTITLE = "ide.onboarding.fragment.subtitle" + const val KEY_ONBOARDING_EXTRA_INFO = "ide.onboarding.fragment.extraInfo" - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?): View { - _binding = FragmentOnboardingBinding.inflate(inflater, container, false) - return binding.root + @JvmStatic + fun newInstance(title: CharSequence, subtitle: CharSequence, + extraInfo: CharSequence = ""): OnboardingFragment { + return OnboardingFragment().apply { + arguments = Bundle().apply { + putCharSequence(KEY_ONBOARDING_TITLE, title) + putCharSequence(KEY_ONBOARDING_SUBTITLE, subtitle) + putCharSequence(KEY_ONBOARDING_EXTRA_INFO, extraInfo) + } + } + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding.apply { - tvMessage.movementMethod = LinkMovementMethod.getInstance() - tvTitle.text = title - tvMessage.text = if (hasHtml) message?.let { - HtmlCompat.fromHtml(it, HtmlCompat.FROM_HTML_MODE_COMPACT) - } else message - icon?.let(animationView::setAnimation) + binding.onboardingTitle.text = requireArguments().getCharSequence(KEY_ONBOARDING_TITLE) + binding.onboardingSubtitle.text = requireArguments().getCharSequence(KEY_ONBOARDING_SUBTITLE) + + val extraInfo = requireArguments().getCharSequence(KEY_ONBOARDING_EXTRA_INFO, "") + if (extraInfo.isBlank()) { + binding.onboardingExtraInfo.updateLayoutParams { + height = 0 + } + } else { + binding.onboardingExtraInfo.movementMethod = LinkMovementMethodCompat.getInstance() + binding.onboardingExtraInfo.text = extraInfo } - } - override fun onDestroyView() { - super.onDestroyView() - _binding = null + binding.contentContainer.removeAllViews() + createContentView(binding.contentContainer, true) } - companion object { - - @JvmStatic - @JvmOverloads - fun newInstance(title: String, message: String, @RawRes icon: Int, name: String = "", hasHtml: Boolean = false) = - OnboardingFragment().apply { - this.title = title - this.message = message - this.icon = icon - this.hasHtml = hasHtml - this.name = name - } - } + protected open fun createContentView(parent: ViewGroup, attachToParent: Boolean) {} } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt new file mode 100644 index 0000000000..5bb69ce2cf --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt @@ -0,0 +1,27 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.fragments.onboarding + +import com.itsaky.androidide.databinding.FragmentOnboardingGreetingBinding +import com.itsaky.androidide.fragments.FragmentWithBinding + +/** + * @author Akash Yadav + */ +class OnboardingGreetingFragment : + FragmentWithBinding(FragmentOnboardingGreetingBinding::inflate) \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingInfoFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingInfoFragment.kt new file mode 100644 index 0000000000..42c15baa42 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingInfoFragment.kt @@ -0,0 +1,71 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.fragments.onboarding + +import android.content.res.ColorStateList +import android.os.Bundle +import android.view.View +import androidx.annotation.ColorInt +import androidx.annotation.DrawableRes +import androidx.core.widget.ImageViewCompat +import com.itsaky.androidide.databinding.FragmentOnboardingInfoBinding +import com.itsaky.androidide.fragments.FragmentWithBinding + +/** + * @author Akash Yadav + */ +class OnboardingInfoFragment : + FragmentWithBinding(FragmentOnboardingInfoBinding::inflate) { + + companion object { + + const val KEY_INFO_TEXT = "ide.onboarding.infoFragment.info" + const val KEY_INFO_ICON = "ide.onboarding.infoFragment.icon" + const val KEY_INFO_ICON_TINT = "ide.onboarding.infoFragment.icon.tint" + + @JvmStatic + fun newInstance( + title: CharSequence, + info: CharSequence, + @DrawableRes icon: Int, + @ColorInt iconTint: Int + ): OnboardingInfoFragment { + return OnboardingInfoFragment().apply { + arguments = Bundle().apply { + putCharSequence(OnboardingFragment.KEY_ONBOARDING_TITLE, title) + putCharSequence(KEY_INFO_TEXT, info) + putInt(KEY_INFO_ICON, icon) + putInt(KEY_INFO_ICON_TINT, iconTint) + } + } + } + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + binding.infoTitle.text = requireArguments().getCharSequence( + OnboardingFragment.KEY_ONBOARDING_TITLE) + + binding.infoMessage.text = requireArguments().getCharSequence(KEY_INFO_TEXT) + binding.image.setImageResource(requireArguments().getInt(KEY_INFO_ICON)) + ImageViewCompat.setImageTintList(binding.image, + ColorStateList.valueOf(requireArguments().getInt( + KEY_INFO_ICON_TINT))) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt new file mode 100644 index 0000000000..2ea134ba81 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt @@ -0,0 +1,84 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.fragments.onboarding + +import android.os.Build +import android.os.Bundle +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.itsaky.androidide.adapters.onboarding.DefaultOnboardingItemAdapter +import com.itsaky.androidide.databinding.LayoutOnboardingMultiactionBinding +import com.itsaky.androidide.models.OnboardingItem +import com.itsaky.androidide.utils.uncheckedCast + +/** + * @author Akash Yadav + */ +open class OnboardingMultiActionFragment : OnboardingFragment() { + + protected var recyclerView: RecyclerView? = null + private set + + companion object { + + const val KEY_ACTION_ITEMS = "ide.onboarding.multiActionFragment.items" + + @JvmStatic + fun newInstance( + title: CharSequence, + subtitle: CharSequence, + items: List + ): OnboardingFragment { + return OnboardingMultiActionFragment().apply { + arguments = Bundle().apply { + putCharSequence(KEY_ONBOARDING_TITLE, title) + putCharSequence(KEY_ONBOARDING_SUBTITLE, subtitle) + + val arr = items.toTypedArray() + putParcelableArray(KEY_ACTION_ITEMS, arr) + } + } + } + } + + override fun createContentView(parent: ViewGroup, attachToParent: Boolean) { + val binding = LayoutOnboardingMultiactionBinding.inflate(layoutInflater, parent, attachToParent) + RecyclerView.setVerboseLoggingEnabled(true) + binding.onboardingItems.adapter = createAdapter() + recyclerView = binding.onboardingItems + } + + protected inline fun getItemsFromArgs(): Array { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + requireArguments().getParcelableArray(KEY_ACTION_ITEMS, T::class.java)!! + } else { + uncheckedCast( + @Suppress("DEPRECATION") requireArguments().getParcelableArray(KEY_ACTION_ITEMS)!!) + } + } + + override fun onDestroyView() { + super.onDestroyView() + recyclerView = null + } + + protected open fun createAdapter(): RecyclerView.Adapter<*> { + val items = getItemsFromArgs() + return DefaultOnboardingItemAdapter(items.toList()) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt new file mode 100644 index 0000000000..1ad121b8e1 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt @@ -0,0 +1,164 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.fragments.onboarding + +import android.Manifest +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import android.os.Bundle +import android.os.Environment +import android.provider.Settings +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.app.ActivityCompat +import androidx.recyclerview.widget.RecyclerView +import com.github.appintro.SlidePolicy +import com.itsaky.androidide.R +import com.itsaky.androidide.adapters.onboarding.OnboardingPermissionsAdapter +import com.itsaky.androidide.buildinfo.BuildInfo +import com.itsaky.androidide.models.OnboardingPermissionItem +import com.itsaky.androidide.utils.flashError +import com.itsaky.androidide.utils.isAtLeastR + +/** + * @author Akash Yadav + */ +class OnboardingPermissionsFragment : OnboardingMultiActionFragment(), SlidePolicy { + + var adapter: OnboardingPermissionsAdapter? = null + + private val storagePermissionRequestLauncher = registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions()) { + onPermissionsUpdated() + } + + private val settingsTogglePermissionRequestLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult()) { + onPermissionsUpdated() + } + + private val permissions by lazy { + getRequiredPermissions(requireContext()) + } + + companion object { + + @JvmStatic + fun newInstance(context: Context): OnboardingPermissionsFragment { + return OnboardingPermissionsFragment().apply { + arguments = Bundle().apply { + putCharSequence(KEY_ONBOARDING_TITLE, + context.getString(R.string.onboarding_title_permissions)) + putCharSequence(KEY_ONBOARDING_SUBTITLE, + context.getString(R.string.onboarding_subtitle_permissions)) + } + } + } + + @JvmStatic + fun getRequiredPermissions(context: Context): List { + val permissions = mutableListOf() + + permissions.add(OnboardingPermissionItem(Manifest.permission_group.STORAGE, + R.string.permission_title_storage, R.string.permission_desc_storage, + isStoragePermissionGranted(context))) + + permissions.add(OnboardingPermissionItem(Manifest.permission.REQUEST_INSTALL_PACKAGES, + R.string.permission_title_install_packages, R.string.permission_desc_install_packages, + canRequestPackageInstalls(context))) + + return permissions + } + + @JvmStatic + fun areAllPermissionsGranted(context: Context) : Boolean = getRequiredPermissions(context).all { it.isGranted } + + @JvmStatic + fun isStoragePermissionGranted(context: Context): Boolean { + if (isAtLeastR()) { + return Environment.isExternalStorageManager() + } + + return checkSelfPermission(context, + Manifest.permission.READ_EXTERNAL_STORAGE) && checkSelfPermission(context, + Manifest.permission.WRITE_EXTERNAL_STORAGE) + } + + @JvmStatic + fun canRequestPackageInstalls(context: Context): Boolean { + return context.packageManager.canRequestPackageInstalls() + } + + @JvmStatic + fun isPermissionGranted(context: Context, permission: String): Boolean { + return when (permission) { + Manifest.permission_group.STORAGE -> isStoragePermissionGranted(context) + Manifest.permission.REQUEST_INSTALL_PACKAGES -> context.packageManager.canRequestPackageInstalls() + else -> checkSelfPermission(context, permission) + } + } + + @JvmStatic + fun checkSelfPermission(context: Context, permission: String): Boolean { + return ActivityCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED + } + } + + override fun createAdapter(): RecyclerView.Adapter<*> { + return OnboardingPermissionsAdapter(permissions, + this::requestPermission).also { this.adapter = it } + } + + private fun onPermissionsUpdated() { + permissions.forEach { it.isGranted = isPermissionGranted(requireContext(), it.permission) } + recyclerView?.adapter = createAdapter() + } + + private fun requestPermission(permission: String) { + when (permission) { + Manifest.permission_group.STORAGE -> requestStoragePermission() + Manifest.permission.REQUEST_INSTALL_PACKAGES -> requestSettingsTogglePermission( + Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES) + } + } + + private fun requestStoragePermission() { + if (isAtLeastR()) { + requestSettingsTogglePermission(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION) + return + } + + storagePermissionRequestLauncher.launch(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE)) + } + + private fun requestSettingsTogglePermission(action: String) { + val intent = Intent(action) + intent.setData(Uri.fromParts("package", BuildInfo.PACKAGE_NAME, null)) + settingsTogglePermissionRequestLauncher.launch(intent) + } + + override val isPolicyRespected: Boolean + get() = permissions.all { it.isGranted } + + override fun onUserIllegallyRequestedNextPage() { + activity?.flashError(R.string.msg_grant_permissions) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt new file mode 100644 index 0000000000..0cfdf7173f --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt @@ -0,0 +1,266 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.fragments.onboarding + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.net.ConnectivityManager +import android.net.ConnectivityManager.NetworkCallback +import android.net.Network +import android.net.NetworkCapabilities +import android.net.NetworkRequest +import android.os.Bundle +import android.provider.Settings +import android.text.Html +import android.text.Spannable +import android.text.SpannableStringBuilder +import android.text.style.URLSpan +import android.view.View +import android.view.ViewGroup +import android.view.ViewGroup.MarginLayoutParams +import androidx.core.content.ContextCompat +import androidx.core.content.getSystemService +import androidx.core.view.setMargins +import androidx.core.view.updateLayoutParams +import com.blankj.utilcode.util.SizeUtils +import com.github.appintro.SlidePolicy +import com.google.android.material.button.MaterialButton +import com.itsaky.androidide.R +import com.itsaky.androidide.databinding.LayoutChipErrorBinding +import com.itsaky.androidide.databinding.LayoutChipWarningBinding +import com.itsaky.androidide.models.DefaultOnboardingItem +import com.itsaky.androidide.resources.R.color +import com.itsaky.androidide.resources.R.drawable +import com.itsaky.androidide.resources.R.string +import com.itsaky.androidide.tasks.runOnUiThread +import com.itsaky.androidide.utils.ConnectionInfo +import com.itsaky.androidide.utils.flashError +import com.itsaky.androidide.utils.getConnectionInfo + +/** + * @author Akash Yadav + */ +class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), SlidePolicy { + + private var cellularConnectionWarningView: LayoutChipWarningBinding? = null + private var meteredConnectionWarningView: LayoutChipWarningBinding? = null + private var backgroundDataRestrictedWarningView: LayoutChipWarningBinding? = null + private var noConnectionErrorView: LayoutChipErrorBinding? = null + + private var backgroundDataRestrictionReceiver: BroadcastReceiver? = null + private var networkStateChangeCallback: NetworkCallback? = null + + companion object { + + @JvmStatic + fun newInstance(context: Context): OnboardingToolInstallationFragment { + return OnboardingToolInstallationFragment().also { + it.arguments = Bundle().apply { + putCharSequence(KEY_ONBOARDING_TITLE, context.getString(R.string.title_install_tools)) + putCharSequence(KEY_ONBOARDING_SUBTITLE, + context.getString(R.string.subtitle_install_tools)) + putCharSequence(KEY_ONBOARDING_EXTRA_INFO, + Html.fromHtml(context.getString(R.string.msg_install_tools), + Html.FROM_HTML_MODE_COMPACT)) + + val arr = arrayOf( + DefaultOnboardingItem("jdk", context.getString(string.tool_jdk_title), + context.getString(string.tool_jdk_summary), + drawable.ic_java_colored), + DefaultOnboardingItem("sdk", context.getString(string.toolg_sdk_title), + context.getString(string.tool_sdk_summary), R.drawable.ic_android, + ContextCompat.getColor(context, color.color_android)) + ) + putParcelableArray(KEY_ACTION_ITEMS, arr) + } + } + } + } + + override fun createContentView(parent: ViewGroup, attachToParent: Boolean) { + super.createContentView(parent, attachToParent) + recyclerView?.adapter = createAdapter() + updateConnectionStatus() + } + + override fun onStart() { + super.onStart() + + val connectivityManager = requireContext().getSystemService() ?: return + networkStateChangeCallback?.also { + connectivityManager.registerDefaultNetworkCallback(it) + } + + networkStateChangeCallback = object : NetworkCallback() { + + override fun onCapabilitiesChanged( + network: Network, + networkCapabilities: NetworkCapabilities + ) { + updateConnectionStatus(networkCapabilities) + } + + override fun onLost(network: Network) { + updateConnectionStatus(ConnectionInfo.UNKNOWN) + } + } + + val networkRequest = NetworkRequest.Builder() + .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) + .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) + .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET) + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .build() + connectivityManager.registerNetworkCallback(networkRequest, networkStateChangeCallback!!) + + backgroundDataRestrictionReceiver?.also { + try { + requireContext().unregisterReceiver(it) + } catch (err: Throwable) { /*ignored*/ + } + } + + backgroundDataRestrictionReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + updateConnectionStatus() + } + } + + requireContext().registerReceiver(backgroundDataRestrictionReceiver!!, + IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED)) + } + + override fun onStop() { + super.onStop() + + networkStateChangeCallback?.also { + requireContext().getSystemService()?.unregisterNetworkCallback(it) + networkStateChangeCallback = null + } + + backgroundDataRestrictionReceiver?.also { + requireContext().unregisterReceiver(it) + backgroundDataRestrictionReceiver = null + } + } + + private fun View.removeFromParent() { + (parent as? ViewGroup?)?.removeView(this) + } + + private fun updateConnectionStatus(networkCapabilities: NetworkCapabilities? = null) = + updateConnectionStatus(getConnectionInfo(requireContext(), networkCapabilities)) + + private fun updateConnectionStatus(connectionInfo: ConnectionInfo) = runOnUiThread { + noConnectionErrorView?.root?.removeFromParent() + cellularConnectionWarningView?.root?.removeFromParent() + meteredConnectionWarningView?.root?.removeFromParent() + backgroundDataRestrictedWarningView?.root?.removeFromParent() + + if (connectionInfo === ConnectionInfo.UNKNOWN || !connectionInfo.isConnected) { + addNotConnectedWarning() + return@runOnUiThread + } + + if (connectionInfo.isCellularTransport) { + addCellularTransportWarning() + } + + if (connectionInfo.isMeteredConnection && !connectionInfo.isCellularTransport) { + addMeteredConnectionWarning() + } + + if (connectionInfo.isBackgroundDataRestricted) { + addBackgroundDataRestrictedWarning() + } + } + + private fun addBackgroundDataRestrictedWarning() { + backgroundDataRestrictedWarningView = backgroundDataRestrictedWarningView + ?: LayoutChipWarningBinding.inflate(layoutInflater, binding.contentContainer, false) + configureWarningOrErrorView(backgroundDataRestrictedWarningView!!.root, + getString(R.string.msg_disable_background_data_restriction)) + } + + private fun addMeteredConnectionWarning() { + meteredConnectionWarningView = meteredConnectionWarningView ?: LayoutChipWarningBinding.inflate( + layoutInflater, binding.contentContainer, false) + configureWarningOrErrorView(meteredConnectionWarningView!!.root, + getString(R.string.msg_connected_to_metered_connection)) + } + + private fun addCellularTransportWarning() { + cellularConnectionWarningView = cellularConnectionWarningView + ?: LayoutChipWarningBinding.inflate(layoutInflater, binding.contentContainer, false) + + configureWarningOrErrorView(cellularConnectionWarningView!!.root, + getString(R.string.msg_connected_to_cellular)) + } + + private fun addNotConnectedWarning() { + noConnectionErrorView = noConnectionErrorView ?: LayoutChipErrorBinding.inflate(layoutInflater, + binding.contentContainer, false) + val msg = SpannableStringBuilder(getString(R.string.msg_no_internet)) + msg.append(" ") + msg.append(getString(R.string.action_open_settings), URLSpan(""), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ) + + noConnectionErrorView!!.root.setOnClickListener { + it.context.startActivity(Intent(Settings.ACTION_WIFI_SETTINGS)) + } + + configureWarningOrErrorView(noConnectionErrorView!!.root, msg) + } + + private fun configureWarningOrErrorView(root: MaterialButton, msg: CharSequence) { + root.apply { + text = msg + updateLayoutParams { + val dp8 = SizeUtils.dp2px(4f) + setMargins(dp8) + + width = ViewGroup.LayoutParams.MATCH_PARENT + } + + if (parent == null) { + binding.contentContainer.addView(this, 0) + } + } + } + + override fun onDestroyView() { + super.onDestroyView() + backgroundDataRestrictionReceiver = null + networkStateChangeCallback = null + + cellularConnectionWarningView = null + meteredConnectionWarningView = null + backgroundDataRestrictedWarningView = null + noConnectionErrorView = null + } + + override val isPolicyRespected: Boolean + get() = getConnectionInfo(requireContext()).isConnected + + override fun onUserIllegallyRequestedNextPage() { + flashError(string.msg_no_internet) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt index f1bcd6f17a..57f836237f 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt @@ -1,35 +1,44 @@ package com.itsaky.androidide.fragments.onboarding +import android.content.Context import android.os.Bundle -import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup -import androidx.fragment.app.Fragment -import com.itsaky.androidide.databinding.FragmentStatisticsBinding +import com.itsaky.androidide.R +import com.itsaky.androidide.app.IDEApplication +import com.itsaky.androidide.databinding.LayoutOnboardingStatisticsBinding +import com.itsaky.androidide.preferences.internal.statOptIn -class StatisticsFragment : Fragment() { +class StatisticsFragment : OnboardingFragment() { - private var _binding: FragmentStatisticsBinding? = null - private val binding: FragmentStatisticsBinding - get() = checkNotNull(_binding) { "Fragment has been destroyed" } + private var _content: LayoutOnboardingStatisticsBinding? = null + private val content: LayoutOnboardingStatisticsBinding + get() = checkNotNull(_content) { "Fragment has been destroyed" } - val statOptIn: Boolean - get() = binding.statOptIn.isChecked + companion object { + @JvmStatic + fun newInstance(context: Context) : StatisticsFragment { + return StatisticsFragment().apply { + arguments = Bundle().apply { + putCharSequence(KEY_ONBOARDING_TITLE, context.getString(R.string.title_androidide_statistics)) + putCharSequence(KEY_ONBOARDING_SUBTITLE, context.getString(R.string.idepref_stats_optIn_summary)) + } + } + } + } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?): View { - _binding = FragmentStatisticsBinding.inflate(inflater, container, false) - return binding.root + override fun createContentView(parent: ViewGroup, attachToParent: Boolean) { + _content = LayoutOnboardingStatisticsBinding.inflate(layoutInflater, parent, attachToParent) + content.statOptIn.isChecked = statOptIn + content.statOptIn.setOnCheckedChangeListener { _, isChecked -> + statOptIn = isChecked + if (isChecked) { + IDEApplication.instance.reportStatsIfNecessary() + } + } } override fun onDestroy() { super.onDestroy() - _binding = null - } - - companion object { - - @JvmStatic - fun newInstance() = StatisticsFragment() + _content = null } } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/models/DefaultOnboardingItem.kt b/app/src/main/java/com/itsaky/androidide/models/DefaultOnboardingItem.kt new file mode 100644 index 0000000000..02c886f4fa --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/DefaultOnboardingItem.kt @@ -0,0 +1,36 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models + +import kotlinx.parcelize.Parcelize + +/** + * Default implementation of [OnboardingItem]. + * + * @author Akash Yadav + */ +@Parcelize +data class DefaultOnboardingItem( + override val key: String, + override val title: CharSequence, + override val description: CharSequence = "", + override val icon: Int = 0, + override val iconTint: Int = 0, + override val isClickable: Boolean = false, + override val isLongClickable: Boolean = false +) : OnboardingItem diff --git a/app/src/main/java/com/itsaky/androidide/models/HyperlinkedOnboardingItem.kt b/app/src/main/java/com/itsaky/androidide/models/HyperlinkedOnboardingItem.kt new file mode 100644 index 0000000000..3137ca4b7b --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/HyperlinkedOnboardingItem.kt @@ -0,0 +1,38 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models + +import kotlinx.parcelize.Parcelize + +/** + * Implementation of [OnboardingItem] which also contains a link to be opened on click. + * + * @property hyperlink The hyperlink. + * @author Akash Yadav + */ +@Parcelize +data class HyperlinkedOnboardingItem( + override val key: String, + override val title: CharSequence, + val hyperlink: String, + override val description: CharSequence = "", + override val icon: Int = 0, + override val iconTint: Int = 0, + override val isClickable: Boolean = false, + override val isLongClickable: Boolean = false +) : OnboardingItem \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/models/OnboardingItem.kt b/app/src/main/java/com/itsaky/androidide/models/OnboardingItem.kt new file mode 100644 index 0000000000..49cdd665f7 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/OnboardingItem.kt @@ -0,0 +1,67 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models + +import android.os.Parcelable +import androidx.annotation.ColorInt +import androidx.annotation.DrawableRes + +/** + * Item that is shown on the onboarding fragment. + * + * @author Akash Yadav + */ +interface OnboardingItem : Parcelable { + + /** + * The key for the item. + */ + val key: String + + /** + * Title for the item. + */ + val title: CharSequence + + /** + * Short description (or subtitle) for the item. + */ + val description: CharSequence + + /** + * Icon for the item. + */ + @get:DrawableRes + val icon: Int + + /** + * Icon tint for the item. + */ + @get:ColorInt + val iconTint: Int + + /** + * Whether is item is clickable. + */ + val isClickable: Boolean + + /** + * Whether the item is long clickable. + */ + val isLongClickable: Boolean +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/models/OnboardingPermissionItem.kt b/app/src/main/java/com/itsaky/androidide/models/OnboardingPermissionItem.kt new file mode 100644 index 0000000000..c6871f8850 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/OnboardingPermissionItem.kt @@ -0,0 +1,34 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models + +import androidx.annotation.StringRes + +/** + * @author Akash Yadav + */ +data class OnboardingPermissionItem( + val permission: String, + + @StringRes + val title: Int, + + @StringRes + val description: Int, + var isGranted: Boolean +) \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/services/builder/GradleBuildService.kt b/app/src/main/java/com/itsaky/androidide/services/builder/GradleBuildService.kt index 22f2d7791d..9ee25814e4 100644 --- a/app/src/main/java/com/itsaky/androidide/services/builder/GradleBuildService.kt +++ b/app/src/main/java/com/itsaky/androidide/services/builder/GradleBuildService.kt @@ -17,15 +17,18 @@ package com.itsaky.androidide.services.builder import android.app.Notification +import android.app.NotificationChannel import android.app.NotificationManager import android.app.PendingIntent import android.app.Service import android.content.Intent import android.os.IBinder import android.text.TextUtils +import androidx.core.app.NotificationManagerCompat import com.blankj.utilcode.util.ResourceUtils import com.blankj.utilcode.util.ZipUtils import com.itsaky.androidide.BuildConfig +import com.itsaky.androidide.R.* import com.itsaky.androidide.app.BaseApplication import com.itsaky.androidide.lookup.Lookup import com.itsaky.androidide.managers.ToolsManager @@ -145,9 +148,19 @@ class GradleBuildService : Service(), BuildService, IToolingApiClient, private fun showNotification(message: String, @Suppress("SameParameterValue") isProgress: Boolean) { log.info("Showing notification to user...") + createNotificationChannels() startForeground(NOTIFICATION_ID, buildNotification(message, isProgress)) } + private fun createNotificationChannels() { + val buildNotificationChannel = NotificationChannel( + BaseApplication.NOTIFICATION_GRADLE_BUILD_SERVICE, + getString(string.title_gradle_service_notification_channel), + NotificationManager.IMPORTANCE_LOW) + NotificationManagerCompat.from(this) + .createNotificationChannel(buildNotificationChannel) + } + private fun buildNotification(message: String, isProgress: Boolean): Notification { val ticker = getString(R.string.title_gradle_service_notification_ticker) val title = getString(R.string.title_gradle_service_notification) diff --git a/app/src/main/java/com/itsaky/androidide/utils/FlexboxUtils.kt b/app/src/main/java/com/itsaky/androidide/utils/FlexboxUtils.kt new file mode 100644 index 0000000000..c6757f6a2d --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/utils/FlexboxUtils.kt @@ -0,0 +1,63 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.utils + +import android.view.ViewTreeObserver +import androidx.recyclerview.widget.RecyclerView +import com.google.android.flexbox.FlexboxLayoutManager +import kotlin.math.ceil + +/** + * @author Akash Yadav + */ +object FlexboxUtils { + + @JvmStatic + inline fun > createGlobalLayoutListenerToDistributeFlexboxItemsEvenly( + crossinline adapterProvider: () -> T?, + crossinline layoutManagerProvider: () -> FlexboxLayoutManager?, + crossinline fillDiff: (T, diff: Int) -> Unit + ): ViewTreeObserver.OnGlobalLayoutListener { + + return object : ViewTreeObserver.OnGlobalLayoutListener { + override fun onGlobalLayout() { + + val adapter = adapterProvider() ?: return + val layoutManager = layoutManagerProvider() ?: return + + val columns = layoutManager.flexLinesInternal.firstOrNull()?.itemCount ?: 0 + if (columns == 0) { + return + } + + val itemCount = adapter.itemCount + val rows = ceil(itemCount.toFloat() / columns.toFloat()).toInt() + if (itemCount % columns == 0) { + return + } + + val diff = rows * columns - itemCount + if (diff <= 0) { + return + } + + fillDiff(adapter, diff) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_onboarding.xml b/app/src/main/res/layout-land/fragment_onboarding.xml new file mode 100644 index 0000000000..94b2ecef95 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_onboarding.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_onboarding_greeting.xml b/app/src/main/res/layout-land/fragment_onboarding_greeting.xml new file mode 100644 index 0000000000..ed9f8e8bf7 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_onboarding_greeting.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_onboarding_info.xml b/app/src/main/res/layout-land/fragment_onboarding_info.xml new file mode 100644 index 0000000000..a68e8c9d00 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_onboarding_info.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-sw600dp/fragment_onboarding.xml b/app/src/main/res/layout-sw600dp/fragment_onboarding.xml new file mode 100644 index 0000000000..94b2ecef95 --- /dev/null +++ b/app/src/main/res/layout-sw600dp/fragment_onboarding.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-sw600dp/fragment_onboarding_greeting.xml b/app/src/main/res/layout-sw600dp/fragment_onboarding_greeting.xml new file mode 100644 index 0000000000..2002b42827 --- /dev/null +++ b/app/src/main/res/layout-sw600dp/fragment_onboarding_greeting.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-sw600dp/fragment_onboarding_info.xml b/app/src/main/res/layout-sw600dp/fragment_onboarding_info.xml new file mode 100644 index 0000000000..1fc93d911e --- /dev/null +++ b/app/src/main/res/layout-sw600dp/fragment_onboarding_info.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_onboarding.xml b/app/src/main/res/layout/fragment_onboarding.xml index e66e8e5521..5d8b7e93b3 100644 --- a/app/src/main/res/layout/fragment_onboarding.xml +++ b/app/src/main/res/layout/fragment_onboarding.xml @@ -1,7 +1,6 @@ - - - + android:background="?attr/colorSurface" + android:fillViewport="true"> - + android:layout_height="match_parent"> + + + + + + + + - + - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_onboarding_greeting.xml b/app/src/main/res/layout/fragment_onboarding_greeting.xml new file mode 100644 index 0000000000..68f35238f4 --- /dev/null +++ b/app/src/main/res/layout/fragment_onboarding_greeting.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_onboarding_info.xml b/app/src/main/res/layout/fragment_onboarding_info.xml new file mode 100644 index 0000000000..ce9a4023fd --- /dev/null +++ b/app/src/main/res/layout/fragment_onboarding_info.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_chip_error.xml b/app/src/main/res/layout/layout_chip_error.xml new file mode 100644 index 0000000000..b3a09ff9ab --- /dev/null +++ b/app/src/main/res/layout/layout_chip_error.xml @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_chip_warning.xml b/app/src/main/res/layout/layout_chip_warning.xml new file mode 100644 index 0000000000..9edd508113 --- /dev/null +++ b/app/src/main/res/layout/layout_chip_warning.xml @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_icon_title_subtitle.xml b/app/src/main/res/layout/layout_icon_title_subtitle.xml new file mode 100644 index 0000000000..462472a21e --- /dev/null +++ b/app/src/main/res/layout/layout_icon_title_subtitle.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_onboarding_item.xml b/app/src/main/res/layout/layout_onboarding_item.xml new file mode 100644 index 0000000000..aef9fcfad5 --- /dev/null +++ b/app/src/main/res/layout/layout_onboarding_item.xml @@ -0,0 +1,30 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_onboarding_multiaction.xml b/app/src/main/res/layout/layout_onboarding_multiaction.xml new file mode 100644 index 0000000000..9cef29f3aa --- /dev/null +++ b/app/src/main/res/layout/layout_onboarding_multiaction.xml @@ -0,0 +1,28 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_onboarding_permission_item.xml b/app/src/main/res/layout/layout_onboarding_permission_item.xml new file mode 100644 index 0000000000..888e040c70 --- /dev/null +++ b/app/src/main/res/layout/layout_onboarding_permission_item.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_statistics.xml b/app/src/main/res/layout/layout_onboarding_statistics.xml similarity index 50% rename from app/src/main/res/layout/fragment_statistics.xml rename to app/src/main/res/layout/layout_onboarding_statistics.xml index 582ec330c7..2f2a272e46 100644 --- a/app/src/main/res/layout/fragment_statistics.xml +++ b/app/src/main/res/layout/layout_onboarding_statistics.xml @@ -1,5 +1,4 @@ - - + + + + + + + + \ No newline at end of file diff --git a/common/src/main/java/com/itsaky/androidide/app/BaseApplication.java b/common/src/main/java/com/itsaky/androidide/app/BaseApplication.java index 7a34c79c1c..93b85ce8ac 100644 --- a/common/src/main/java/com/itsaky/androidide/app/BaseApplication.java +++ b/common/src/main/java/com/itsaky/androidide/app/BaseApplication.java @@ -61,16 +61,6 @@ public void onCreate() { if (!VMUtils.isJvm()) { ToolsManager.init(this, null); } - - createNotificationChannels(); - } - - private void createNotificationChannels() { - NotificationChannel buildNotificationChannel = new NotificationChannel( - NOTIFICATION_GRADLE_BUILD_SERVICE, - getString(R.string.title_gradle_service_notification_channel), - NotificationManager.IMPORTANCE_LOW); - NotificationManagerCompat.from(this).createNotificationChannel(buildNotificationChannel); } public void writeException(Throwable th) { diff --git a/common/src/main/java/com/itsaky/androidide/utils/buildVersionExt.kt b/common/src/main/java/com/itsaky/androidide/utils/buildVersionExt.kt new file mode 100644 index 0000000000..924ee2139b --- /dev/null +++ b/common/src/main/java/com/itsaky/androidide/utils/buildVersionExt.kt @@ -0,0 +1,45 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.utils + +import android.os.Build +import androidx.annotation.ChecksSdkIntAtLeast + +/** + * @author Akash Yadav + */ + +@ChecksSdkIntAtLeast(Build.VERSION_CODES.P) +fun isAtLeastP() = isAtLeast(Build.VERSION_CODES.P) + +@ChecksSdkIntAtLeast(Build.VERSION_CODES.Q) +fun isAtLeastQ() = isAtLeast(Build.VERSION_CODES.Q) + +@ChecksSdkIntAtLeast(Build.VERSION_CODES.R) +fun isAtLeastR() = isAtLeast(Build.VERSION_CODES.R) + +@ChecksSdkIntAtLeast(Build.VERSION_CODES.S) +fun isAtLeastS() = isAtLeast(Build.VERSION_CODES.S) + +@ChecksSdkIntAtLeast(Build.VERSION_CODES.TIRAMISU) +fun isAtLeastT() = isAtLeast(Build.VERSION_CODES.TIRAMISU) + +@ChecksSdkIntAtLeast(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) +fun isAtLeastU() = isAtLeast(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + +fun isAtLeast(version: Int) : Boolean = Build.VERSION.SDK_INT >= version \ No newline at end of file diff --git a/common/src/main/java/com/itsaky/androidide/utils/connectionUtilExt.kt b/common/src/main/java/com/itsaky/androidide/utils/connectionUtilExt.kt new file mode 100644 index 0000000000..c77f1eb5ce --- /dev/null +++ b/common/src/main/java/com/itsaky/androidide/utils/connectionUtilExt.kt @@ -0,0 +1,87 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.utils + +import android.Manifest +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import androidx.annotation.RequiresPermission +import androidx.core.content.getSystemService + +/** + * Information about the device's internet connection. + * + * @property isConnected Indicates whether the device is able to reach the internet. + * See [NetworkCapabilities.NET_CAPABILITY_INTERNET]. + * @property isCellularTransport Indicates whether the device is using a cellular transport. + * See [NetworkCapabilities.TRANSPORT_CELLULAR]. + * @property isMeteredConnection Indicates whether the device is using a cellular transport. + * See [NetworkCapabilities.NET_CAPABILITY_NOT_METERED] and [NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED]. + * @property isBackgroundDataRestricted Indicates whether the background data is restricted. If the + * application is whitelisted from background data restriction, this will be `false`. + * See [NetworkCapabilities.TRANSPORT_CELLULAR]. + * @author Akash Yadav + */ +data class ConnectionInfo( + val isConnected: Boolean, + val isCellularTransport: Boolean, + val isMeteredConnection: Boolean, + val isBackgroundDataRestricted: Boolean +) { + + companion object { + + @JvmStatic + val UNKNOWN = ConnectionInfo( + isConnected = false, + isCellularTransport = false, + isMeteredConnection = false, + isBackgroundDataRestricted = false + ) + } +} + +@RequiresPermission(Manifest.permission.ACCESS_NETWORK_STATE) +@JvmOverloads +fun getConnectionInfo(context: Context, networkCapabilities: NetworkCapabilities? = null): ConnectionInfo { + val connectivityManager = context.getSystemService() + ?: return ConnectionInfo.UNKNOWN + val activeNetCapabilities = networkCapabilities ?: connectivityManager.activeNetwork?.let( + connectivityManager::getNetworkCapabilities) ?: return ConnectionInfo.UNKNOWN + + val isConnected = activeNetCapabilities.hasCapability( + NetworkCapabilities.NET_CAPABILITY_VALIDATED) + val isCellularTransport = activeNetCapabilities.hasTransport( + NetworkCapabilities.TRANSPORT_CELLULAR) + val isMeteredConnection = connectivityManager.isActiveNetworkMetered + + // RESTRICT_BACKGROUND_STATUS_DISABLED -> background data usage is not restricted + // RESTRICT_BACKGROUND_STATUS_WHITELISTED -> background data usage might be restricted, but the application is whitelisted + val isBackgroundDataRestricted = !connectivityManager.restrictBackgroundStatus.let { + it == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED + || it == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED + } + + return ConnectionInfo( + isConnected = isConnected, + isCellularTransport = isCellularTransport, + isMeteredConnection = isMeteredConnection, + isBackgroundDataRestricted = isBackgroundDataRestricted + ) +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 42ddc4050d..6869923853 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,6 @@ androidx-work = "2.9.0" androidx-espresso = "3.5.1" retrofit = "2.9.0" appintro = "6.3.1" -lottie = "3.4.0" markwon = "4.6.2" maven-publish-plugin = "0.25.3" @@ -53,7 +52,6 @@ common-leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", ver common-retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } common-retrofit-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" } common-appintro = { module = "com.github.AppIntro:AppIntro", version.ref = "appintro" } -common-lottie = { module = "com.airbnb.android:lottie", version.ref = "lottie" } common-markwon-core = { module = "io.noties.markwon:core", version.ref = "markwon" } common-markwon-extStrikethrough = { module = "io.noties.markwon:ext-strikethrough", version.ref = "markwon" } common-markwon-linkify = { module = "io.noties.markwon:linkify", version.ref = "markwon" } diff --git a/resources/src/main/res/drawable/ic_alert.xml b/resources/src/main/res/drawable/ic_alert.xml new file mode 100644 index 0000000000..b14b3212cc --- /dev/null +++ b/resources/src/main/res/drawable/ic_alert.xml @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/resources/src/main/res/drawable/ic_android_colored.xml b/resources/src/main/res/drawable/ic_android_colored.xml new file mode 100755 index 0000000000..525de1f80a --- /dev/null +++ b/resources/src/main/res/drawable/ic_android_colored.xml @@ -0,0 +1,10 @@ + + + + diff --git a/resources/src/main/res/drawable/ic_bell.xml b/resources/src/main/res/drawable/ic_bell.xml new file mode 100644 index 0000000000..05dd414530 --- /dev/null +++ b/resources/src/main/res/drawable/ic_bell.xml @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/resources/src/main/res/drawable/ic_java_colored.xml b/resources/src/main/res/drawable/ic_java_colored.xml new file mode 100644 index 0000000000..7ba2749057 --- /dev/null +++ b/resources/src/main/res/drawable/ic_java_colored.xml @@ -0,0 +1,12 @@ + + + + diff --git a/resources/src/main/res/drawable/ic_ui_mode_dark.xml b/resources/src/main/res/drawable/ic_ui_mode_dark.xml new file mode 100644 index 0000000000..b34e2f23bb --- /dev/null +++ b/resources/src/main/res/drawable/ic_ui_mode_dark.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/resources/src/main/res/drawable/ic_ui_mode_light.xml b/resources/src/main/res/drawable/ic_ui_mode_light.xml new file mode 100644 index 0000000000..a0af3a3dcf --- /dev/null +++ b/resources/src/main/res/drawable/ic_ui_mode_light.xml @@ -0,0 +1,9 @@ + + + diff --git a/resources/src/main/res/raw/java_animation.json b/resources/src/main/res/raw/java_animation.json deleted file mode 100644 index 587034dc76..0000000000 --- a/resources/src/main/res/raw/java_animation.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.5.3","fr":25,"ip":0,"op":125,"w":1000,"h":1000,"nm":"JAVA","ddd":0,"assets":[{"id":"image_0","w":437,"h":258,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbUAAAECCAYAAAB5ZUkQAAAgAElEQVR4Xu2d23UjubWGN0rqZ/eJwHIEJjmtXstPliNwOwLLEViOYOQIRo7gyBFYHYGpp7OW1UPREViK4EjPLRW8UCIpiuKlLhuXAj8+zbSqcPmwgR/Y2AUY4QcBCEAAAhDIhIDJpB5UAwIQgAAEICCIGkYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RBA1LJpSioCAQhAAAKIGjYAAQhAAALZEEDUsmlKKgIBCEAAAogaNgABCEAAAtkQQNSyaUoqAgEIQAACiBo2AAEIQAAC2RDwImo3g08nUpQnfaX0VJaXv5lO7/pafsoNAQhAYF8J+BG10ehcrPzYW6i2+N3x9Nu4t+Wn4BCAAAT2lACitq7hEbU97Q5UGwIQ6DsBRA1R67sNU34IQAACCwKIGqJGd4AABCCQDQFEDVHLxpipCAQgAAFEDVGjF0AAAhDIhgCihqhlY8xUBAIQgACihqjRCyAAAQhkQwBRQ9SyMWYqAgEIQABRQ9ToBRCAAASyIYCoIWrZGDMVgQAEIICoIWr0AghAAALZEEDUELVsjJmKQAACEEDUEDV6AQQgAIFsCHgRtf8bDI4O5fAoKKWiHIiVn1Ty5EBjFYwkAgEIQCA0AS+iFroSLr/qDjdT/lMlb0RNBSOJQAAC+0WgGocb/g7laTqcTh/+NRgMjBx+nL9u5enh83Q6XZfcaj7LzyJquB8bmiCPQwACEFhP4GY4so3ZzBYRN8ORu8Pyt8vvP9nyV6sXNn8b/PDFGvuPlXyuj28nlaAiaohaYxvkBQhAAAJrV1DKoiZG/no8mZwv57VO/EQEUdtqkrgf6bEQgAAEGhOYCc7yey624pdL/3AvInfLD1hbnjk34waxejy05ZFzT7p3KhelKW7XFAxRQ9Qa2ysvQAACEGhE4GY0OhcrPy5eWrPymv9tg6iJtfKnz9PJZSVqw+GlEfNHRK1RM4gIK7WmxHgeAhCAwDsCGqImIvfHt5OjKqreFP/ZgJmVGis1eiAEIAABvwQ6itqjiPzCldBY8wdbWPfZ1nzV59yYy25NRA1R82vMpA4BCECgi6hZsX9fcjVei8hgLnJi5C8r3yUjaogaHQ4CEICAXwKdRM2Ww01BIWKL85XvkhE1RM2vMZM6BCAAgS6idnw7MeuCR1zgiJHiDlFrYl8EijShxbMQgAAE1hLoKmr/GoxOjZH/XUq8ChpZc4IUKzVWavRCCEAAAn4JdBU1V7qb4ch91/YSFDL7JABRa9purNSaEuN5CEAAAu8IaIja8pmQ83MiEbWmxoaoNSXG8xCAAAS8iNo6rIhaU2ND1JoS43kIQAACiJqmDXD1jCZN0oIABCDQnUA1Lhfl63U0ZTE+nn5zp/G/+1VBIYUs7uFcPch4+YXqdJGiOJ3/my3lbn6UFqf0r6O7Zyu1ZZ+1lfJo2bBqm3VZLAx17veu/S4PQmDPCCxfpGzEfqxOy2j4M6WZWjHVQb9P8nS3ekVLw+SyeRxR2wNRc6JVyMGR6zjW2iMj5siIfLQiv/ZsydWJ3FbsnTHmTspiTOfzTJzkkyCwEK2idGL1UazMVytv7gvzVNhrcWJn7NQJXynPd5su2/SUf9RkEbWMRG2pI52INQMj9iiAcLUx4EcRMxZjx7Ysx/vU4drA4p10CdwOBh+f5HAgRekmjAM3YVy96DKh0l+LkbGbXG5yASZU1tZFQdR6KmpOwD7IwWB2yKebBb6ei9baHKK9eG+MXJVleZm6wK35GLQLtMfj28ni+vouCfXx3TffH3WogBH596fbSWP3XdMslwSsmjSKVC7D5UN1myYZ8/lqYmmtvZrvRcUsjGbeiFpPRK3a9yoK15lORKwTser06gx/99bK+Qcpr+YXA6ZWx5vhyO1jqPB3p49/mv58lVodfZdny2WPjbNevm+r8ctbXnATxwMpTsTYk0LMIFGvh0aVH42Ry+9leZHDvhyi1gNR0xxENXpAoDQexcjFYVlepCZu30ajC2vlzzoczNfj25+/6KTVn1S2XPbYtBJvbkZu+vKm5999NKyVcOLpuJPxn60977O4IWr9EDWbeF/wWbxHa+UsJRfJjssKG7N4suWv+jyINK1w5cYzhTv6qPNq1xj526fJ5KxpGXY9v6+iNufiuB6U5XlqE8pd7eb+jqghanXsJIVnrp9seZrK4L/p6vlWoLZccd8qvcRf0tyX9DUh2HdRm5nQo7HmtG/ucUQNUUt8CHxTvGRWbd8GP3yxxv5DCV518rhSWsknozghWJzMrl1pRO2VqHNJfrD2rC+rNkQNUdMeD7yn5zrZ59vbxWkC3jPckIFW9F6V/J588K/puvUVIOKaA1F7a/QuwvS7Lb+k4inZ1ucRNUQtliZ0zNd8PbTPpzFnj5oDXypC3bFRdr6uGGTj9XMIzbbdCaU/DzxaW56k/tkNooao9adLrZTUzR4PbHkSS9g0Vx2uaoe2/J9YdQllBFqrW18BInMOiNpGi0he2BA1RC3UeOYln9grnJvhD1ci9vcqlTPyl+PJ5EIlrQQT0dyH9BUggqjVMpzHJ1sOUnVFImqIWi0rTvqhiNGDmgO1iGQdMKI4AfAWIIKo1evpsb0k7KnVa6fXpxLbtL8Zjvb5O7V6rRexzbRcaq6i1pbD1Pcs6jXI26dm36b9f5t3V9/xGSCCqNVvodhekk0lZaXGSq2+Faf9pJeTJepUWXP/JdWBog6Hbc/cjEZnYuWnrumIiNcAEUStWQuleMwbooaouS/w/21FHqoTvN0X+Uv3NFl5elhdOSzfBVU9v3wfVNgrNt60nu/ggU3dXTlgJJo4NxvOmj2ttpoN5GrWnKhsIFVdy2SMTF3fc5dcGqlOWal+q3cSLg5TXk5sdvnm/DqpSIea3x/acpBSgBOitl+i9igiUydeIe5ZcofWihQDdyCsEePON+x8LNKuodR3AMGm/BX3iySEe20XR82/a95KH6p9NUXNTRpdnytLmTrh8nntixO/Zzk4kcKeuDvcghzCHGiiUdcmEbW8Re3eih2LNWORchp7r+YlqEJO1aIF17RdLPedZsBIqKtU6g4SXZ/TO7w43OHP3UTNfHUXdKZwb1l1RVVRnFnr+p23SWVS3gVELTtRqzrU+Kksr1INuX1x1x1c+BK3ULP5VdNRc7GJSKw6dBWw1fdVDy8OeE1PE1Gr3PdGrlIQsU3tV7VDUbh9TXf4s77HJKHVGqLWf1F7tGKvCltc9e3g0dnq5lK7k8VarTUZCHeJR6z9wV3lavp3xcOLg37usLstzVd3weazlONUJ4/r2mq2/+v63G+btuWO54O2z7ayIGr9FLXeCtkq7so9YoorZd9/kAi5dXU5NMV/lAaLKHVQKvsimW/DkQuE+HXndAOvBNaL2ouQpXyBbV3Oei7h1xxTiYRE1Hokam4F0scV2a6OVm1um2KsMvjNMovVwQgYeW1tzajQ0O7YuajNXIuXh2V5mVKE364+Vefv2sIWy0OyWldErQ+iNvh0shriW8do+/SM5t6Lq3esDqYZMCISLjDCh63oHV4cnoMT5AORj7GDq3y0y3KampOwUN8Q7mKCqPVA1HY1Yi5/1wz9jnnkFAEjLxZ5Mxw9aOyXxlp159KvttVjNpmcisgvNeqbwok4iBqipmHLamlozhxDu6zmEHYHGTTAFXgvqUHJtj6quGJNJgBBi01q6Si2lTuJIfqh3IgaopZUH9Pch4k1w9esQ8wVZxfDUJuc9FTUu7CL8a5aQE8CLnNEDVGL0Ye25nkzHLnjurqHHEccENUGdXcMWcDvszSMQVPUY622NTj0KY2+fnqxjjGihqgl1/f0Olj4AIM5TE2XTqygl7aGoXV4cd/q3ZZXCu9p3qJwfDuJqitRM9dsTNUgg4jXmGgy6WtaijN97/dubWOsGTDSp1ux1epNPwzahbU8JLGDRRA1VmpBO07dzJQGxqgfMCsHjETfgK/TdoqTSwJE6gBXfEbNXiNPRhA1RE2xW+glpTVrjOkKUVxxOrC9GOTVPuhNIIpOz5r7kZKWyzz2HjCihqgl2eO0Zo0xRc2B1QwYie3W2WUomh/Q98nduotLX/6utsqOGKDlWCNqiFqSfU5L1GJHz6kNFBFPSalrIFoBPgSI1CWu+5y7/9CY4rZzqohaZ4RVApqDh0T2CesQ6XcqWqKWQlsq7Q+6Bk3q3qpVC1P71on+F63z3gxHtnPmiFpnhIiaDsKkUslK1EYjd4/VTxqAU70VW22W35O9Q422TDENRC2hVmGlllBjKBQlJ1HT/AYo1Vux1Q4vJkBEofe0TwJRa89O/U1ETR1p1ARzEjUHUi0qMNFbsbUOLyZAJGq3c4dQ436M2wSvuSNqqbTE+3JUKxU5HMz/YqU8MoUcLf7f2iMjZvH/s3/vfkyWSyiR/RlN+0ztVmwCRNLse5VLWA4/utIZsR9tYRd90Ih8tFYW/z+rgeuD3U/rZ09NxyA0B41UBkIdMn5SWe4wUpQnLx3ntaNU/61x43HX4iciaq4amgEjx7eTarBK4af12ULqnyzEZv1mcliUTpBebMBK1f9UJ4NdKouodaHHSk2H3vtU3CRhPrtbmdXprKB8FXw13ZRELcOAEa0PzFPdKwxlpi6fxURxNklcEisnYL8IWZZOeSFqnfAtXmal1o6jG5Q+yMGgck28zPj61YF2VTshUdMMGEnlVmytvc9Uozp3mVebvy9WXE68rBkYsUdJeDXaVGbdO4iaDklErR7HajZYFK4znYhYJ2L9mQHWq+LbpxIStWo2PhxeGjF/bFOV1Xdif1juyqPkUk36+7uubeVE7LsUX8TYk0LMICsBQ9S6msfm9xG1zWzcmW6lKb8YcUKmsBHsrxn1U05M1FTtNPKMWKsuOZ4g4iaPRVGcOu9H9iK22msj2yXHZK0bRhMbCNuM9EtC9iX71dg2QAm2pdLqxtU66iHHWqvOXAJEKld+UZxZK67PdY8ibNPxU3gHUdNpBa1ZY1WaBAfCOpSqTfuX2eHpXneqZVgJtqXWJZqumrFORNfaH8whQGT2SYPrc/0KoqozqLR5BlFrQ+39O/ssak7MDow519qr0WmRRFJJUNS0BKGaf4n9++fbWzegBv2pfZtm5U+fp5PLoIVXyKxqw6Jwx58xgcT9qGBRa5LYR1GrNqCNuUDMtthUgqLmSqvlunNpxTiFQ+nw4l4GiMwE/WKv3frbhnFWajoit2+iNgulPqNj7bCfREVN1V4Dn5eodXhxrFVm2xGn+nbTlBd7F/jRFBii1pTY+udVB4lEB8Jqhu+iqkxxSceqaTcJt2VfA0a0VpkpfJJQx4qcR+S5KM6tlT/XeX7vn0HUdExgH0QNt0cLW0lZ1FRPGCmHn6fTaQtCjV9ROrz4+vh2sny8U+NyhHiBSWQLyohaC2h7uKemNTvWod2jVBIWtT4GjOxTgIj7LMYa64JY8j6gQLs7I2o6RHNdqeUeDOJCuq3Iw8IKjIyr/345sqt7iHTCoqYcMBIk6OJmOHLt07VdHlM6kHndCKQl3jqjm3oqjyKyWNUbI9NFH7TyY+fcELXOCKsEchS1ypdvinGP9s8WncWKvTPG3M1a90HKoupEVp4e6rjJtM4UTP2bQ0279X1+otrhxUb+9mkycUFOSf56KGjX7yaF7h/K4mWC6CJk5Wk6nE5fJ48byHOfWkImqTk4pDIQJuhyvBYxD2KsE6iFUB1Pvy06j5ZJ7IuoVROy4ciJf+cTKHx/yKzVJikHiCQoaPcicjdfTZnSTK2Yhyd5uvvNdDqfNGp1Oy4JVSOpkFBuohZZ0O5FzLQSr7IY++pA25pdawBNZYKyo67uI96fFLqB+BQMJfFNNkBE61OFDu14LUbGtpQ7kXJax6PRIa+1r7JS0ybaIb2cRC3CbPHRir0Sa8bPUo59zACbNu0+iZpmwIivW7FnQRP/aNqOq8/7dpG2Ld+sDdzKJ1hQSLWfbOTSluU4hoCtY4WotbUgD+/lImqzfQvn3gvQucxXY+Xy0/TnKw9N0inJfRI1B0pxZe4lCEOpfF7K1snQZi8rBcDUKcq9GLl4KsurFCaPqwVG1Oo0YaBnchG1AJ3r0Ri5/F6WFyl2qrm57Juoadqv9mpIayXpaxXZdYgJ5Bm5Fluc+9h/7lr/5fcRNU2aHdPSHBRi7cNouXg2oXTHEj1be56ymO2rqLl6K52n6JJS3bfSulXA535f2+HDt9uxcjHa4ix1MVv0u+HItmW5eI+Q/s4IqwRyEDWljfh1QO/FFqd96VhVe45G56LxzUzi36ktN5bmikFTQHTE1nw9vv3Z3TOW1E/NztbVKvLg3gY0K7U21Dy903dR87VKc6uzD9ae1flGxVPTtEpWbbDpkaiprhqUBlStiMBY975tMz5V3m8zure2/JJK8EeTDoioNaHl+dm+i5qXvTSlgc1z061Nfh9FzYFQCshwSanciq1UHpWyaNuh5sp4Xjbnbjyw5UnfJpG4H7WtSyG9Poua1kkNyxi1gwUUmqhREnsraoPBwJjithGsDQ9rrI5UDi9OdHKl41Z9hd93Qavc/uypaXQ9nTT6LGpaG/Fzkn27p2qdBeyrqDkWeoNtt30srZWM5v6ezmgh4mEieX9oy0FfV2is1LQsSzGdXouaziGxFU3fRyUpNtnWpPZZ1LTExAHuciu2jku8m7D6sjdNxq6M1oa7+scXE1ZqPsm2SLvnotY9jHaxTCt+16cox01Nvc+iphrA0PJWbK2VjIYLtMVwsPMVpb3CKp8cPCOs1HaaTPgH+ipqquVW/j4pfCu+5rjPouYoKA66rYI0vo1GFwo3PbfKO4TdaX4+k6J7tS1D9tTakvPwnqo7IWAYuOZ+Wqqz4jbNvfeiphgw0uYwAZVBP9EAEa0TUnJbpeF+bDNSeXxHbRCsLDWcC09pRuxKney5em2aXa09A7Zlm3pue0crYKSpe0zrm8lUVzCa3pGcJpKImnYP7pie2iAYWNR0NuNdodPckG/brGrt2WNRU/Q+NLoV+2b4w5WI/X3btkt9BaPpHekSiNOFr693cT/6ItsiXbVBMLCoac3GJVFXT4umrF5Ra88ei5pmwEjd7xbVXHMJc9eyrVwijZf7KKLWdsTy8J6iGy+o+1HFiNw6zZo/pHiFTNum1hp4QrqS29Z123taASN1B2ClVUyyASKOteJYoXpwtA/7aZqmyngUeYJtmlY61ef13Hhh99RUjCjw6jKEDSBqL5S1zl6sTKTGt1RKASJ/OZ5MLkLYSZs81MaKyIN3m7rvekdlPIrMBVFb18oBXScqRoSobe6rAdty14DR9u9aLupd95lpCWjq+0yI2mZLVBmPELW2Xf3teypn1M2SrDOj1Sm10llriFrWoqYZMHJ8O/m4CZaGq7NppKVWP2qSDqKGqDWxl2jPqswwZqU/vp0EW8GqlTuDFcmy8eB+fKURImBELY8e2CGihqhFE6q6GWt+d+LyRNTqkvf3HKL2lq3GKmqW4trgBqXVYNIBInOiiBqi5m/kUkpZqUPOSxM0oklrpUb04wZj6sHKoU430Nrvcnmt+yhaZaBvec5knfprPqNS15cCBR0rNBlsSktlPGJPrXtTKc5igx9OqmJEDmFkQ+reim9TYKX2nqhWwMiqrWgdXpx6gIj2Sq3uZxLafcNneirjUeSxKNjekeeGeBCRX6jkEbhBVIyoqjgniqxt/0xWaq5uih6JN25Cje+2+hAgshC10ehcrPyoMV6E3KrQKO+uNFTGo8Bj6Gqdei9qWufULcAEHgQVXSHZnP3oXG2FKS6tyK93dcKdfw/cnjvL0+EBtWCOlY/1VSKHe8RZzQuQ0aEHzra+G3NhxPyxg4m+vIqodUOocU7dcglCz7wURS2LU0VmJ1qcq628ezTY1ukJeq72l5W9xqSwb244jTrP26pPK9RN9qU6iUTU6nTjzc9o7QUs5RB841dz1tjnDvayCjm47HqQ7jtryU3UFK+kcXtgGszrnivZrbfrva0ZdONuxzi05dFwOnVbIL37KR2L9rberNTa24HmKme2bA5+vI/mrNHVIdXrPra18ozBpdrqbDmzzETNVU3L7t0JIwoXgfZyUFfZO5rbWeRBvM0IOlsQuD732zbvb30nMo/e7qkpbpov2ieGIKidiv5qZcFXm207hdeOtfAPhbsbry2Hpu/5sP2mZei7+01rYjDj8Phky8FvptO7thxDvqfpHVpbbkSteXPO3Adj5Zl9NDFQC9V+nTkGX3E2acVKyIviTCsCbWveGa7UZqs1vYjfJo238mzII+U6FPPdqx7cbtHGj7pcZh4Rd9D0L+u+0+o5RK0ZNk+CJjH3BTRCqt9RTHQwn60yXCCI346V8UrNVc2LzTTritK3AJHl6invq1VJp7qnPTtxyfU5fVfjOptJTdQcACtPD5+n02lDG/f+uHpk3GuJox7v46ODuQ1sa+Xs83Ti/ObRf8HFLHNR8xAk1dhGYk4EGxd2zQsq1+ysrlzF/v3z7e2pRvm6puFs5MCYc5Uw/SaFSU7UhiM7K/+jFXtV2OIq9uWT3vdeIjdCNfMejqYq32WtGJ8LBjgoy/NY0VnRxCxzUXPVU94XajJsuWd7GSCyXEkPLsgqebeC/W7LL7H22KqFiXk+DS5mc7iRx9N3gSJbooKuxciVLctxqFXcy7LZnqmHeb/tvveHthzEGvTnRfG8+X9vrZyHWrVVk5CiOBUrbsYaxs24aUhO1A3bVEHWPe/ZZrYWMVVXWxOuHoK03mZv5K+HZXkRYmypPp6W4osxVZ8L42bcBLtHorZchUcRMxZjx1IW0+PpNxe00fnnBsMPcjAoTfnFiDkJMSCm5ELx4Q5ZaZR7MXL5VJaX2rPIyoVaFCfGyqmPFWdr48pY1GartSgBI30NEFm1I72P2TdbqJsA+PB4zYVMjD0xYr4oB8617nLJnSjS9vsNt+S2Ig9iZC5wD07w1pExYj/awg7c36y1R0bMkYi4/9c5v7F+cyQVsRR45n1vxY6NMVPXTk/ydFdX6KoTCOTgqGpDawYi1k1AQrddvVbOXNQiBYwk1W/qGcL6pwLvTc4XA67PjZvELlTllMMjKcqBtXZQiBkkNXlcxtvTlVoXO0rl3SS/LQmwWqvD/3rNQ27iEdeVWKfkq89kLmqBB+WKbkrejTYmsfqO9++26hXyXkTefOdmRD4mK1zb6oSo1Wtx7adS7ZjaF55qc+tdepmL2swF6bwjofZRsjk4e27Ls70151Xq36QtxQ6JqIVvFRcR+GkyOQufc70cI7mU6hWub0/tgaiFdFun3nfamieTybbk1ryHqCnCrJFUH6K23Mzx2Tifu8LVKzWYpPeI+WqMvVM4l1BkD0RttloLEjAS4yi5UPaZiBsyVHVX87kXW5yKKf/ZuQCIWmeEtRPo0wkIvk5OqQ0rzoOPYuT8eDK5UBtg9kTUAq3uswkQ2WTekb/9i9PrxHw9tM+n7tODtoGCbwqOqIVpxz6s0FZJeDppJAzwhrmsfrCKqDUDGCJgJNV96Gaktj+9Z16SR2PN6fLhGoiapjV5TKuPgjbHEXK/xGMTbE96zcwOUWveGp5XGdkFiGwivCfCdv1ky9PVz3gQteb9LvQbSZ1/2LbyM2Fzp2un+S1Y24qJVH78dR/vI2rNofqcAOUaILKXwrbFPYioNe93wd5w7qzSlqehjvTyXbHc9th2nUmJqLWzqJvhyEvASM4BIvsibHXGREStXb/z/ZYLNrg4nkzcVQtZ/aqTPExx2eeoyOrkGVuc7TpaDVFrZ7qeAkayDxDZRjvEUVrtWrv2W4sArF1vIGq7CAX+u9s7e7b2vO5xT4GLp5Jd5e8vinOVcHeVEtVOpNGhyohaba5vHvQRMGKs+UPsmzra0dB7q69bAG5M/GDtWd1DlRE1PZvplNI+iNkqoGC32HZqmerlRmI2zw5Raw9eOWAk6l2D7Snov+n9Ciy9IlfXhrWZ4CNqeo3QJiVvJ863KUyMd6rjfYriTKy401FSCyK5tlYu2153g6i1tyjVgJHI3xy1p+DvzYQnlNWY2OW6myxFze3biBSDopCBtdXJ+TFOz99kkffGyFVZlpe5BIBodL2ExK1qn+9ledHVBTwbmDvfIGxtebaPtjJbrXU2r3Vh350TzSSB6BfgLjiar8bKpYaLWMNuukxmNUzj3SWh6xKtBk05HFgpj0whR1Tuo/EAAAPDSURBVLPrRj6KiO+T26+NkWlZyvRZynHXgVIDWMppzO9XKoychQomcYEf7rohJhopWwZl80lg6abpUHeaVe5Fd0fbgTyP6+6X+WSQUtq1RG1Xgeei555bCN/8JSvurq0tP/Mgxlb3rtlS7owUd03u9tpVtn39u/P/H0jhbg53FwhqXrjKRGNfjYp67yTgXJNS2BOxcqI1sXy5q9LcuUuZbVmO99HzsBP80gMqotYkQ56NQ2Ax8ShK5052q2w3A1kz4XidZLhHTGmmVswDE4047Uau/SbgVnEbLkV+UzHnkaouWX75VRcsN7lEtN+UdEuPqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEkDUIsInawhAAAIQ0CWAqOnyJDUIQAACEIhIAFGLCJ+sIQABCEBAlwCipsuT1CAAAQhAICIBRC0ifLKGAAQgAAFdAoiaLk9SgwAEIACBiAQQtYjwyRoCEIAABHQJIGq6PEkNAhCAAAQiEvgvBpx5L8u7vfoAAAAASUVORK5CYII=","e":1}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Capa 5 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[520,620.657,0],"ix":2},"a":{"a":0,"k":[162.25,25.907,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-8.068,-1.665],[-17.563,-0.79],[-6.019,-0.115],[-31.219,2.291],[-23.316,3.56],[-20.969,14.139],[-2.868,9.343],[-0.117,1.195],[5.791,-3.47],[7.544,-2.482],[2.413,-0.549],[11.166,-1.898],[0,0],[54.001,3.969],[10.495,1.229]],"o":[[4.39,1.413],[13.595,2.805],[42.86,1.928],[16.264,0.313],[17.791,-1.306],[0,0],[3.537,-2.385],[0.627,-2.042],[-3.618,4.298],[-5.1,3.056],[-8.74,2.876],[-17.89,4.068],[-40.649,6.91],[-10.346,0],[-17.124,-1.259],[0,0]],"v":[[-150,14.343],[-131,19.343],[-90,23.343],[-47,25.343],[26,23.343],[88,16.343],[147,-3.657],[161,-20.657],[162,-25.657],[148,-13.657],[131,-6.657],[113,-1.657],[75,6.343],[-15,15.343],[-120,13.343],[-162,9.343]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[162.25,25.907],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":6,"s":[85]},{"t":56,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Capa 6 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[472.986,592.029,0],"ix":2},"a":{"a":0,"k":[186.43,28.422,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":56,"s":[100,100,100]},{"t":167,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.019,0.43],[2.674,0.507],[2.461,0.121],[0.865,-0.038],[4.798,-0.683],[2.876,-0.797],[4.076,-1.498],[3.695,-1.683],[5.561,-3.523],[1.822,-1.606],[0.298,-0.354],[0.694,-1.439],[0.216,-1.354],[-0.116,-0.732],[-0.708,-1.122],[-0.946,-0.707],[-0.34,-0.154],[-0.49,-0.108],[0,0],[-10.845,-1.443],[0,0],[-13.94,-0.434],[-32.53,-0.074],[-6.475,0.113],[-16.076,1.396],[-8.213,0.994],[-14.646,3.146],[-8.814,2.558],[-18.041,7.69],[-3.751,3.188],[-0.165,0.195],[-0.131,0.267],[-0.169,1.283],[0.167,0.735],[1.689,1.87],[0.848,0.725],[1.361,0.527],[-0.863,-1.624],[0.265,-0.399],[1.722,-0.875],[0,0],[1.313,-0.227],[0.841,-0.146],[12.363,-0.807],[18.812,-0.47],[12.139,0.443],[19.867,2.784],[8.3,1.221],[2.448,0.633],[1.8,0.696],[2.914,1.792],[0.42,0.985],[-0.154,0.513],[-1.125,1.074],[-3.903,1.89],[-1.64,0.752],[-4.455,1.427],[-5.879,1.375],[-3.283,0.429]],"o":[[0.011,-0.24],[-2.773,-0.525],[-2.908,-0.143],[-3.645,0.16],[-6.389,0.909],[-4.602,1.274],[-3.568,1.312],[0,0],[-0.573,0.363],[-1.122,0.989],[-0.513,0.608],[-0.331,0.687],[-0.194,1.223],[0.132,0.835],[0.486,0.771],[2.441,1.824],[2.998,1.36],[13.411,2.961],[12.227,1.674],[14.549,1.938],[26.707,2.377],[6.444,0.2],[17.891,0.041],[8.883,-0.155],[12.908,-0.863],[11.963,-1.448],[10.91,-2.343],[0,0],[0,0],[1.078,-0.917],[1.24,-1.471],[0.395,-0.807],[0.089,-0.672],[-0.084,-0.369],[-0.55,-0.608],[-2.526,-2.16],[0.807,0.458],[2.168,4.078],[-1.403,2.114],[-9.496,4.826],[-11.756,3.062],[-12.857,2.216],[-11.554,2.013],[-34.409,2.246],[-40.562,1.013],[-17.442,-0.638],[-16.246,-2.276],[-0.678,-0.1],[-2.457,-0.635],[-0.483,-0.188],[-0.8,-0.492],[-0.53,-1.241],[0.301,-1.004],[1.694,-1.618],[2.936,-1.422],[1.227,-0.562],[1.045,-0.335],[4.469,-1.045],[5.287,-0.69]],"v":[[-100.986,-26.029],[-104.986,-27.029],[-111.986,-28.029],[-117.986,-28.029],[-129.986,-27.029],[-143.986,-24.029],[-155.986,-20.029],[-165.986,-16.029],[-176.986,-10.029],[-180.986,-7.029],[-182.986,-5.029],[-184.986,-2.029],[-185.986,0.971],[-185.986,3.971],[-184.986,6.971],[-182.986,8.971],[-177.986,11.971],[-171.986,13.971],[-150.986,17.971],[-130.986,20.971],[-103.986,23.971],[-49.986,27.971],[-14.986,27.971],[12.014,27.971],[50.013,25.971],[82.014,22.971],[120.014,16.971],[147.014,9.971],[173.014,-0.029],[181.014,-5.029],[183.014,-7.029],[185.014,-10.029],[186.014,-13.029],[186.014,-15.029],[184.014,-18.029],[182.014,-20.029],[175.014,-24.029],[178.014,-21.029],[177.014,-12.029],[172.014,-8.029],[158.014,-2.029],[135.014,2.971],[112.014,6.971],[70.014,10.971],[25.013,12.971],[-47.986,12.971],[-99.986,8.971],[-132.986,2.971],[-137.986,1.971],[-143.986,-0.029],[-149.986,-3.029],[-151.986,-5.029],[-151.986,-8.029],[-149.986,-11.029],[-142.986,-15.029],[-138.986,-17.029],[-130.986,-20.029],[-119.986,-23.029],[-109.986,-25.029]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[186.43,28.422],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"t":167,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Capa 7 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[478.451,546.659,0],"ix":2},"a":{"a":0,"k":[90.799,22.909,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.039,-0.863],[2.718,-1.751],[1.363,-1.381],[0.57,-1.519],[-0.158,-0.425],[-2.381,-2.441],[-0.5,-0.326],[-3.643,-1.499],[-5.63,-1.555],[-6.9,-1.145],[-5.787,-0.639],[-7.745,0.15],[-3.739,0.306],[-7.501,1.132],[-7.872,1.743],[-8.101,2.922],[-6.387,3.305],[5.602,2.752],[3.979,2.338],[3.368,-0.578],[1.422,-0.303],[5.816,-0.869],[6.217,-0.684],[3.583,-0.185],[9.02,0.056],[5.271,0.175],[10.407,0.646],[4.4,0.509],[8.433,1.761],[1.333,0.645],[0.68,0.562],[0.504,0.766],[-0.125,1.294],[-0.265,0.17]],"o":[[-3.259,1.07],[-3.094,1.311],[-2.079,1.34],[-1.58,1.601],[-1.099,2.929],[0.154,0.413],[2.857,2.93],[2.26,1.474],[4.49,1.848],[4.649,1.284],[3.075,0.51],[11.944,1.317],[8.685,-0.169],[4.826,-0.395],[2.113,-0.319],[7.44,-1.647],[4.069,-1.468],[-5.03,-1.941],[-4.688,-2.303],[-1.849,0.145],[-2.171,0.373],[-3.276,0.697],[-4.184,0.625],[-4.889,0.538],[-4.677,0.24],[-10.389,-0.063],[-5.075,-0.169],[-9.153,-0.568],[0,0],[-0.541,-0.113],[-1.366,-0.66],[-0.986,-0.814],[-0.459,-0.697],[0.173,-1.792],[0,0]],"v":[[-64.45,-22.659],[-73.45,-19.659],[-81.45,-15.659],[-86.45,-11.659],[-89.45,-7.659],[-89.45,-1.659],[-86.45,2.341],[-80.45,7.341],[-72.45,11.341],[-58.45,16.341],[-43.45,19.341],[-29.45,21.341],[-0.45,22.341],[18.55,21.341],[36.55,19.341],[52.55,16.341],[74.55,10.341],[90.55,3.341],[74.55,-3.659],[61.55,-10.659],[53.55,-9.659],[48.55,-8.659],[36.55,-6.659],[21.55,-4.659],[10.55,-3.659],[-4.45,-3.659],[-19.45,-3.659],[-34.45,-4.659],[-49.45,-5.659],[-61.45,-7.659],[-64.45,-8.659],[-67.45,-10.659],[-69.45,-12.659],[-70.45,-15.659],[-68.45,-18.659]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[90.799,22.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Capa 8 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[475.244,487.528,0],"ix":2},"a":{"a":0,"k":[103.006,22.197,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.27,0.466],[4.546,-1.854],[2.964,-1.695],[3.218,-4.216],[0.391,-1.69],[-0.511,-1.71],[-2.205,-2.088],[-2.21,-1.358],[-7.095,-1.969],[-3.496,-0.755],[-4.048,-0.521],[-2.519,-0.179],[-6.711,-0.165],[-8.702,0.475],[-7.104,0.85],[-9.862,1.656],[-11.221,3.188],[4.433,2.852],[2.491,2.454],[1.681,-0.401],[11.918,-1.747],[8.066,-0.99],[5.928,-0.517],[13.503,-0.216],[8.887,0.266],[7.423,0.689],[0.257,0.033],[3.708,0.591],[1.421,0.388],[1.577,1.052],[0.913,1.588],[0.108,1.438],[-0.623,1.172]],"o":[[-0.242,-0.419],[-6.77,2.761],[-0.491,0.281],[-0.817,1.071],[-0.177,0.767],[0.272,0.913],[1.764,1.671],[4.54,2.789],[1.937,0.537],[4.348,0.938],[9.621,1.238],[9.33,0.663],[12.865,0.316],[7.866,-0.43],[2.01,-0.24],[19.249,-3.232],[-3.396,-1.262],[-4.203,-2.704],[-0.935,0.244],[-4.289,1.024],[-1.447,0.212],[-6.286,0.771],[-7.745,0.676],[-10.763,0.172],[-4.47,-0.134],[-4.358,-0.405],[-0.454,-0.059],[-2.392,-0.381],[-2.039,-0.557],[-0.865,-0.577],[-0.293,-0.51],[-0.116,-1.536],[2.375,-4.472]],"v":[[-74.244,-21.528],[-82.244,-18.528],[-91.244,-14.528],[-100.244,-7.528],[-102.244,-3.528],[-102.244,0.472],[-99.244,4.472],[-94.244,8.472],[-78.244,14.472],[-70.244,16.472],[-58.244,18.472],[-38.244,20.472],[-15.244,21.472],[12.756,21.472],[33.756,19.472],[54.756,16.472],[102.756,5.472],[90.756,-0.528],[80.756,-8.528],[76.756,-7.528],[54.756,-3.528],[39.756,-1.528],[21.756,0.472],[-6.244,1.472],[-32.244,1.472],[-51.244,0.472],[-60.244,-0.528],[-67.244,-1.528],[-72.244,-2.528],[-77.244,-4.528],[-80.244,-7.528],[-81.244,-10.528],[-80.244,-14.528]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[103.005,22.197],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Capa 9 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[463.584,428.946,0],"ix":2},"a":{"a":0,"k":[134.666,24.304,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.318,-1.316],[0.74,-1.558],[-0.832,-1.562],[-0.451,-0.273],[0,0],[-1.154,-0.181],[0,0],[-7.844,0.243],[-24.364,2.764],[-23.901,5.261],[-4.105,2.329],[-3.726,1.625],[5.819,-0.825],[8.149,-1.05],[19.643,-0.954],[9.278,-0.363],[16.713,0.244],[10.553,0.766],[4.015,0.719],[4.353,1.526],[0.533,1.08],[-0.101,0.241],[-2.042,1.366],[-3.771,1.788],[-1.904,0.875],[-4.507,1.442],[-4.47,1.019],[0,0],[5.06,-0.58],[6.863,-2.104],[4.293,-1.662],[7.364,-2.994]],"o":[[-2.83,1.607],[-0.696,1.466],[0.606,1.138],[6.762,4.106],[9.23,2.546],[27.297,4.267],[20,1],[25.26,-0.783],[15.619,-1.772],[3.229,-2.294],[4.234,-2.401],[-3.348,0.482],[-12.675,1.797],[-10.884,1.402],[-5.094,0.264],[-18.959,0.741],[-5.407,-0.079],[-6.173,-0.448],[0,0],[-3.491,-1.224],[-0.888,-1.798],[0.353,-0.843],[2.579,-1.725],[2.516,-1.193],[1.178,-0.542],[2.822,-0.903],[0,0],[-8.126,-0.109],[-14.336,1.642],[-7.19,2.204],[-8.304,3.213],[0,0]],"v":[[-128.584,-1.946],[-133.584,2.054],[-133.584,7.054],[-131.584,9.054],[-121.584,14.054],[-106.584,18.054],[-58.584,23.054],[-16.584,23.054],[51.416,19.054],[111.416,9.054],[122.416,2.054],[134.416,-3.946],[120.416,-1.946],[84.416,3.054],[38.416,8.054],[16.416,9.054],[-32.584,10.054],[-59.584,9.054],[-81.584,7.054],[-88.584,5.054],[-94.584,1.054],[-94.584,-2.946],[-91.584,-5.946],[-83.584,-9.946],[-78.584,-11.946],[-70.584,-14.946],[-59.584,-18.946],[-41.584,-23.946],[-61.584,-22.946],[-93.584,-15.946],[-110.584,-9.946],[-124.584,-3.946]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[134.666,24.305],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Capa 4 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[639.852,450.047,0],"ix":2},"a":{"a":0,"k":[43.103,55.203,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.278,0.386],[-18.117,-9.907],[-0.994,-1.35],[-0.308,-1.106],[0.274,-2.874],[2.29,-4.958],[1.716,-2.329],[2.723,-2.91],[0,0],[6.326,-2.285],[6.465,-1.688],[1.323,-0.316],[0,0],[-13.615,12.617],[-4.229,6.894],[-1.133,5],[5.718,10.274],[3.09,1.415],[0.937,0.076],[2.746,-0.606],[2.13,-0.967]],"o":[[0.684,-0.25],[3.604,-1.088],[8.425,4.607],[4.183,5.681],[1.705,6.131],[-0.26,2.722],[-1.502,3.253],[0,0],[-12.305,13.149],[-5.259,2.398],[-6.819,2.463],[-1.344,0.351],[0,0],[8.865,-4.187],[5.805,-5.379],[2.857,-4.658],[0.585,-2.583],[-4.983,-8.954],[-5.47,-2.505],[-4.629,-0.378],[-3.813,0.842],[0,0]],"v":[[-25.852,-45.047],[-19.852,-48.047],[21.148,-45.047],[35.148,-33.047],[41.148,-21.047],[42.148,-7.047],[39.148,4.953],[34.148,12.953],[29.148,18.953],[-1.852,40.953],[-19.852,47.953],[-38.852,53.953],[-42.852,54.953],[-39.852,51.953],[-1.852,26.953],[13.148,8.953],[19.148,-4.047],[16.148,-27.047],[0.148,-41.047],[-10.852,-44.047],[-21.852,-43.047],[-30.852,-40.047]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.19199999641,0.455000005984,0.725,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.102,55.204],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85]},{"t":50,"s":[0]}],"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Capa 10 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[528.452,387,0],"to":[2.833,-10.917,0],"ti":[-2.833,10.917,0]},{"t":56,"s":[545.452,321.5,0]}],"ix":2},"a":{"a":0,"k":[59.798,101.75,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[0,0],[0.874,-2.06],[1.045,-3.5],[1.388,-4.553],[1.904,-5.219],[2.593,-5.499],[3.454,-5.391],[4.488,-4.897],[5.696,-4.016],[2.679,-5.07],[0.161,-5.57],[-1.632,-5.673],[-2.702,-5.38],[-3.047,-4.691],[-2.668,-3.604],[-1.565,-2.122],[0.261,-0.243],[-1.337,4.16],[-2.283,6.847],[-3.243,8.276],[-4.217,8.447],[-5.205,7.36],[-6.208,5.014],[0.565,9.463],[4.371,9.695],[4.183,6.541]],"o":[[-0.877,0.233],[-0.874,2.06],[-1.045,3.5],[-1.388,4.553],[-1.904,5.219],[-2.593,5.499],[-3.454,5.391],[-4.488,4.897],[-5.92,4.174],[-2.679,5.07],[-0.161,5.57],[1.632,5.673],[2.702,5.38],[3.047,4.691],[2.668,3.604],[1.565,2.122],[0.405,-0.215],[1.337,-4.16],[2.283,-6.847],[3.243,-8.276],[4.217,-8.447],[5.205,-7.36],[7.235,-5.844],[-0.565,-9.463],[-4.371,-9.695],[-4.183,-6.541]],"v":[[-20.452,-95.25],[-23.035,-91.715],[-25.871,-83.28],[-29.476,-71.104],[-34.37,-56.349],[-41.072,-40.176],[-50.098,-23.744],[-61.969,-8.215],[-77.202,5.25],[-89.919,19.215],[-93.998,35.275],[-91.61,52.239],[-84.928,68.918],[-76.124,84.124],[-67.371,96.665],[-60.839,105.354],[-58.702,109],[-56.092,102.123],[-50.667,85.298],[-42.382,62.298],[-31.197,36.899],[-17.068,12.875],[0.048,-6],[9.054,-29.807],[0.651,-59.391],[-13.179,-84.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[2.435,-0.751],[3.741,-1.499],[4.397,-2.372],[4.402,-3.37],[3.756,-4.492],[2.459,-5.739],[0.512,-7.111],[-2.086,-8.608],[-0.644,-5.569],[0.052,-5.848],[0.526,-5.773],[0.779,-5.343],[0.812,-4.557],[0.623,-3.417],[0.214,-1.921],[-0.416,-0.071],[-4.589,7.586],[-2.643,6.565],[-0.995,5.552],[0.354,4.548],[1.406,3.553],[2.159,2.565],[-3.233,9.768],[-6.337,10.522],[-5.26,7.265]],"o":[[-0.478,0.127],[-2.435,0.751],[-3.741,1.499],[-4.397,2.372],[-4.402,3.37],[-3.756,4.492],[-2.459,5.739],[-0.512,7.111],[1.56,4.934],[0.644,5.569],[-0.052,5.848],[-0.526,5.773],[-0.779,5.343],[-0.812,4.557],[-0.623,3.417],[-0.214,1.921],[6.834,-8.615],[4.589,-7.586],[2.643,-6.565],[0.995,-5.552],[-0.354,-4.548],[-1.406,-3.553],[-4.054,-5.006],[3.233,-9.768],[6.337,-10.522],[5.26,-7.265]],"v":[[17.948,-98.25],[13.416,-96.965],[3.99,-93.622],[-8.38,-87.847],[-21.74,-79.265],[-34.139,-67.502],[-43.624,-52.186],[-48.243,-32.941],[-46.044,-9.394],[-42.794,6.449],[-41.962,23.663],[-42.883,41.184],[-44.896,57.946],[-47.339,72.885],[-49.547,84.934],[-50.858,93.03],[-50.61,96.106],[-33.551,71.806],[-22.777,50.582],[-17.394,32.408],[-16.507,17.259],[-19.222,5.11],[-24.643,-4.065],[-24.829,-27.229],[-9.428,-58.666],[9.013,-86.349]],"c":true}]},{"t":56,"s":[{"i":[[0,0],[11.287,-4.28],[18.062,-11.687],[2.273,-2.357],[4.173,-8.724],[0.032,-2.865],[-1.238,-4.173],[-4.071,-6.278],[0,0],[-2.976,-3.71],[-0.59,-0.749],[-1.8,-3.401],[0.021,-3.606],[2.091,-1.942],[-4.046,2.727],[-8.088,12.457],[-1.369,6.243],[3.108,9.61],[1.244,1.901],[3.062,4.384],[1.53,2.378],[0.75,1.731],[-0.375,1.683],[-3.381,4.82],[-5.125,4.512],[-12.307,7.874]],"o":[[-7.014,1.86],[-11.191,4.244],[-16.219,10.494],[-4.72,4.893],[-5.637,11.785],[-0.095,8.437],[0.913,3.078],[2.156,3.326],[0.746,0.964],[2.273,2.834],[2.017,2.559],[3.053,5.77],[-0.098,16.879],[2.432,-1.289],[6.669,-4.496],[3.016,-4.645],[0.431,-1.966],[-1.809,-5.591],[-1.463,-2.236],[-2.613,-3.743],[-4.833,-7.513],[-4.469,-10.315],[1.503,-6.735],[3.885,-5.54],[6.437,-5.666],[0,0]],"v":[[59.548,-101.5],[31.548,-92.5],[-13.452,-71.5],[-39.452,-51.5],[-53.452,-32.5],[-59.452,-7.5],[-56.452,11.5],[-49.452,27.5],[-44.452,34.5],[-40.452,39.5],[-36.452,44.5],[-29.452,54.5],[-26.452,69.5],[-42.452,101.5],[-32.452,95.5],[-7.452,71.5],[-0.452,56.5],[-1.452,36.5],[-7.452,24.5],[-12.452,17.5],[-18.452,8.5],[-26.452,-4.5],[-28.452,-26.5],[-20.452,-42.5],[-7.452,-56.5],[20.548,-77.5]],"c":true}]}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.795999983245,0.19199999641,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.798,101.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Capa 11 contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[493.936,405,0],"to":[0,0,0],"ti":[0,0,0]},{"t":56,"s":[481.936,257,0]}],"ix":2},"a":{"a":0,"k":[71.269,147.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[0,0,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0.874,-2.06],[1.045,-3.5],[1.388,-4.553],[1.904,-5.219],[2.593,-5.499],[3.454,-5.391],[4.488,-4.897],[5.696,-4.016],[2.679,-5.07],[0.161,-5.57],[-1.632,-5.673],[-2.702,-5.38],[-3.047,-4.691],[-2.668,-3.604],[-1.565,-2.122],[0.261,-0.243],[-1.83,5.758],[-3.198,9.084],[-4.59,10.235],[-6.008,9.213],[-7.449,6.017],[0.565,9.463],[4.371,9.695],[4.183,6.541]],"o":[[-0.877,0.233],[-0.874,2.06],[-1.045,3.5],[-1.388,4.553],[-1.904,5.219],[-2.593,5.499],[-3.454,5.391],[-4.488,4.897],[-5.92,4.174],[-2.679,5.07],[-0.161,5.57],[1.632,5.673],[2.702,5.38],[3.047,4.691],[2.668,3.604],[1.565,2.122],[0.486,-0.258],[1.83,-5.758],[3.198,-9.084],[4.59,-10.235],[6.008,-9.213],[7.235,-5.844],[-0.565,-9.463],[-4.371,-9.695],[-4.183,-6.541]],"v":[[-31.923,-140.75],[-34.506,-137.215],[-37.342,-128.78],[-40.947,-116.604],[-45.841,-101.849],[-52.543,-85.676],[-61.569,-69.244],[-73.44,-53.715],[-88.673,-40.25],[-101.39,-26.285],[-105.469,-10.225],[-103.081,6.739],[-96.399,23.418],[-87.595,38.624],[-78.842,51.165],[-72.31,59.854],[-70.173,63.5],[-66.705,53.933],[-59.169,31.127],[-47.493,1.605],[-31.602,-28.111],[-11.423,-51.5],[-2.417,-75.307],[-10.82,-104.891],[-24.65,-130.092]],"c":true}]},{"t":50,"s":[{"i":[[0,0],[3.95,-17.977],[7.08,-8.359],[4.226,-3.76],[22.202,-16.741],[10.035,-8.958],[1.546,-1.499],[5.086,-8.617],[1.346,-5.42],[-2.798,-5.705],[-1.058,-1.466],[-9.496,-8.808],[3.187,5.398],[7.819,12.032],[3.71,12.489],[0.261,5.782],[-3.852,7.107],[-3.954,3.791],[-11.305,9.361],[-3.5,3.049],[-6.155,6.421],[-1.818,2.972],[-2.938,10.186],[0.194,2.393],[1.941,4.784]],"o":[[2.311,8.789],[-4.704,21.404],[-6.058,7.152],[-6.55,5.829],[-7.157,5.397],[-1.342,1.198],[-7.236,7.012],[-3.597,6.094],[-4.082,16.443],[2.463,5.022],[15.029,20.835],[-1.475,-3.02],[-7.328,-12.415],[-5.789,-8.908],[-1.514,-5.094],[-0.642,-14.208],[6.35,-11.716],[2.043,-1.958],[7.233,-5.989],[3.691,-3.217],[11.999,-12.517],[4.983,-8.146],[3.955,-13.709],[-0.73,-9.011],[0,0]],"v":[[56.064,-147],[57.064,-105],[33.064,-61],[17.064,-45],[-11.936,-23],[-37.702,-1.953],[-41.936,2],[-59.936,24],[-66.936,39],[-60.936,76],[-54.936,86],[3.064,147],[-3.936,134],[-21.936,108],[-36.936,78],[-39.936,63],[-30.936,31],[-12.936,8],[6.064,-8],[18.064,-18],[34.064,-33],[55.064,-60],[67.064,-85],[70.064,-112],[65.064,-133]],"c":true}]}],"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.795999983245,0.19199999641,0.195999998205,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.268,147.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":125,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Capa 3","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[100]},{"t":124,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[497.117,767.384,0],"ix":2},"a":{"a":0,"k":[218.185,128.63,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":125,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/resources/src/main/res/raw/statistics_animation.json b/resources/src/main/res/raw/statistics_animation.json deleted file mode 100644 index 44e0c246de..0000000000 --- a/resources/src/main/res/raw/statistics_animation.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.6.3","fr":25,"ip":0,"op":89,"w":500,"h":500,"nm":"people","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 13 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[326.767,392.522,0],"ix":2},"a":{"a":0,"k":[30.482,95.561,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.952,0.769],[0.346,0.435],[-1.759,2.455],[-3.292,-0.183],[-1.332,-1.358],[-0.194,-0.875],[0.424,-0.042],[0.031,-1.933],[0.079,-4.936],[1.102,-1.396],[1.722,0.345],[1.06,1.399],[0.029,1.536],[0.005,1.741],[2.134,2.132]],"o":[[-0.431,-0.348],[-2.197,-2.759],[1.96,-2.735],[1.878,0.105],[0.617,0.629],[0.058,0.261],[3.245,-0.32],[-0.079,4.936],[-0.028,1.778],[-1.088,1.378],[-1.721,-0.345],[-0.9,-1.189],[-0.032,-1.723],[-0.009,-3.017],[-0.868,-0.867]],"v":[[-7.37,-4.981],[-8.551,-6.139],[-7.566,-14.405],[1.42,-18.455],[6.416,-16.385],[7.683,-14.212],[7.503,-11.857],[10.554,-3.186],[10.318,11.623],[9.111,16.717],[4.36,18.293],[0.084,15.419],[-1.933,10.917],[-1.736,5.675],[-4.469,-2.705]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.017,18.888],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-0.179,-0.173],[0.172,-0.178]],"o":[[0,0],[0,0],[0,0],[0.173,-0.179],[0.178,0.172],[0,0]],"v":[[-3.389,4.148],[-4.702,4.861],[-4.036,3.523],[3.883,-4.677],[4.519,-4.688],[4.53,-4.053]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[13.147,38.851],"to":[1.042,-0.229],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[19.397,37.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[13.147,38.851],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[19.397,37.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[13.147,38.851],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[19.397,37.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[13.147,38.851],"to":[0,0],"ti":[-1.042,0.229]},{"t":103,"s":[19.397,37.476]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.542,-0.995]],"o":[[-0.984,0.562],[0,0]],"v":[[1.175,-1.198],[-1.175,1.198]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.128,44.11],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.158,1.501],[1.16,0.398],[2.002,0.528],[0.78,0.124],[0,-2.62],[-2.532,-1.208],[-1.557,-0.466],[-1.607,0.354],[-0.368,0.605],[0.014,0.416]],"o":[[-1.051,-0.5],[-1.992,-0.683],[-0.758,-0.201],[-2.178,1.773],[2.297,1.536],[1.418,0.676],[1.557,0.466],[0.84,-0.185],[0.23,-0.377],[-0.095,-2.837]],"v":[[5.665,-2.836],[2.328,-4.173],[-3.762,-5.943],[-8.204,-6.997],[-10.997,-1.418],[-0.589,4.47],[3.794,6.321],[8.703,6.643],[10.738,5.48],[10.983,4.258]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[39.525,49.737],"to":[1.446,-0.333],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[48.2,47.736],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[39.525,49.737],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[48.2,47.736],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[39.525,49.737],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[48.2,47.736],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[39.525,49.737],"to":[0,0],"ti":[-1.446,0.333]},{"t":103,"s":[48.2,47.736]}],"ix":2},"a":{"a":0,"k":[10.657,5.162],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.429,-0.247],[-0.626,0.219],[-0.215,0.65],[0.262,0.222],[0.342,0.021],[0.5,-0.927],[0.31,0.091],[0.06,0.141],[-0.49,0.793],[-0.638,0.361],[-0.82,-0.057],[-1.4,-0.985],[-0.366,-0.26],[-1.092,-0.364],[0.341,-1.183],[0.054,-0.033],[0.065,0.016],[2.016,0.316]],"o":[[0.122,-0.652],[0.647,-0.225],[0.107,-0.326],[-0.261,-0.221],[-1.052,-0.065],[-0.154,0.285],[-0.147,-0.042],[-0.366,-0.857],[0.386,-0.623],[0.715,-0.406],[1.657,0.114],[0.367,0.259],[0.94,0.666],[-0.341,1.184],[-0.018,0.061],[-0.058,0.035],[-2.011,-0.491],[-1.445,-0.185]],"v":[[-5.146,2.636],[-3.907,1.195],[-1.949,0.318],[-1.996,-0.352],[-2.949,-0.685],[-5.565,0.768],[-6.252,1.335],[-6.555,1.01],[-5.925,-1.599],[-4.49,-3.233],[-2.082,-3.556],[2.711,-2.331],[3.779,-1.512],[6.921,-0.108],[5.898,3.443],[5.804,3.604],[5.608,3.608],[-0.74,2.39]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[15.807,40.03],"to":[1.36,-0.555],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[23.969,36.698],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[15.807,40.03],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[23.969,36.698],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[15.807,40.03],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73,"s":[23.969,36.698],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88,"s":[15.807,40.03],"to":[0,0],"ti":[-1.36,0.555]},{"t":103,"s":[23.969,36.698]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.094,-2.943],[1.49,-1.744],[1.819,-1.429],[2.239,0.219]],"o":[[-1.094,2.944],[-0.786,2.115],[-1.484,1.738],[-1.769,1.389],[0,0]],"v":[[8.252,-11.131],[4.969,-2.3],[1.947,4.261],[-2.739,9.326],[-8.252,10.912]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.861,53.261],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.656,5.02]],"o":[[0.934,-5.602],[0,0]],"v":[[-3.132,8.596],[3.132,-8.596]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.926,39.478],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.637,1.742],[2.042,-1.282],[0.617,-1.228],[0.526,-1.598],[0.509,-1.664],[0.626,-2.782],[-1.047,-2.652],[-2.222,2.108],[-0.852,2.496],[-0.856,2.507],[-0.15,2.711]],"o":[[-1.692,-1.8],[-1.195,0.749],[-0.755,1.503],[-0.543,1.653],[-0.836,2.726],[-0.625,2.782],[1.495,3.788],[1.913,-1.815],[0.856,-2.507],[0.722,-2.115],[0.139,-2.505]],"v":[[6.841,-15.43],[0.204,-16.142],[-2.214,-12.618],[-4.138,-7.958],[-5.608,-2.949],[-8.156,5.213],[-7.871,13.635],[0.831,13.303],[4.513,6.394],[7.081,-1.128],[8.78,-8.754]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.548,46.578],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.271,2.462],[0.456,0.302],[0.582,-0.026],[1.361,-2.157],[1.94,-1.656],[3.788,0.843],[-1.165,-2.718],[-5.546,2.64],[-1.187,1.813],[-0.564,1.101],[-0.58,2.709]],"o":[[-0.251,-0.486],[-0.486,-0.322],[-2.548,0.113],[-1.362,2.157],[-3.387,2.89],[-1.977,0.176],[5.08,2.231],[1.932,-0.92],[0.686,-1.048],[1.264,-2.466],[0.581,-2.709]],"v":[[17.208,-12.188],[16.194,-13.454],[14.518,-13.839],[8.592,-9.488],[4.241,-3.238],[-14.341,-2.016],[-17.412,3.49],[8.528,11.225],[13.087,6.892],[14.939,3.624],[17.996,-4.078]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.926,52.509],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.033,1.036]],"o":[[-5.108,0.583],[0,0]],"v":[[7.654,0.051],[-7.654,-0.633]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.979,83.218],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.289,0.14],[-0.158,1.826],[-0.162,4.432],[-0.661,5.048],[0.988,4.534],[2.067,2.645],[1.397,0.338],[1.744,-0.525],[1.619,-2.031],[0.628,-1.965],[0.523,-4.42],[0.237,-4.56],[2.344,-3.8],[0.782,-2.173],[-1.804,-1.382],[0.073,-0.803],[-3.879,-0.351],[-3.559,0.286],[0,0]],"o":[[0,0],[1.591,-0.818],[0.362,-4.192],[0.171,-4.69],[0.576,-4.401],[-0.739,-3.387],[-1,-1.279],[-1.745,-0.424],[-2.259,0.681],[-1.232,1.545],[-1.418,4.431],[-0.548,4.637],[-0.237,4.564],[-1.234,2],[-0.768,2.132],[-0.103,0.812],[3.628,1.765],[3.545,0.321],[1.032,0],[0,0]],"v":[[10.839,27.428],[11.507,27.134],[13.793,22.419],[12.985,9.849],[14.912,-4.711],[14.724,-18.404],[10.905,-28.2],[6.695,-30.325],[1.381,-30.183],[-4.582,-25.988],[-7.053,-19.856],[-9.975,-6.429],[-10.093,1.282],[-11.359,13.275],[-14.944,19.189],[-13.66,25.496],[-13.96,27.916],[-1.647,30.415],[9.027,30.463],[10.853,30.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.001,55.779],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.258,-0.299],[0.09,-0.145],[-1.037,-0.73],[-2.732,-0.796],[1.233,2.423],[1.638,0.442],[0.638,1.723],[0.249,0.778],[0.149,0.135],[0.158,-0.124],[0.039,-0.107],[1.638,-0.781],[0.527,-0.291]],"o":[[-0.112,0.13],[-0.842,1.353],[2.356,1.658],[1.542,0.449],[-0.842,-1.654],[-1.701,-0.318],[-0.283,-0.766],[-0.061,-0.191],[-0.149,-0.135],[-0.089,0.07],[-0.476,1.33],[-0.544,0.259],[-0.346,0.191]],"v":[[-7.174,-1.253],[-7.478,-0.84],[-5.653,2.501],[2.312,5.747],[7.087,2.674],[2.115,-0.376],[-1.677,-3.126],[-2.324,-5.489],[-2.608,-6.012],[-3.159,-6.073],[-3.333,-5.785],[-4.592,-2.688],[-6.26,-1.996]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.686,51.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.764,-0.33],[-1.921,2.911],[-4.764,0.329],[1.919,-2.911]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.334,39.906],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.107,51.081],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.762,49.859],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.416,48.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.071,47.417],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.725,46.195],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4.363,-1.575],[-3.588,2.279],[-4.363,1.575],[3.587,-2.279]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.783999992819,0.866999966491,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.663,42.508],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.15,3.46],[1.582,8.097],[-11.15,-3.46],[-1.583,-8.097]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.155,46.585],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[12.938,3.988],[1.798,9.388],[-12.938,-3.988],[-1.799,-9.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.681999954523,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.188,46.615],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.893,1.585],[-0.634,1.639],[-0.62,0.198],[-0.471,-0.624],[-0.301,-0.722],[-0.512,-0.671],[-0.153,-0.864],[0.496,-0.488]],"o":[[-0.863,-1.532],[0.235,-0.607],[0.745,-0.237],[0.472,0.623],[0.325,0.779],[0.533,0.696],[0.122,0.685],[-1.842,1.816]],"v":[[-2.752,1.066],[-3.181,-4.02],[-1.931,-5.433],[0.1,-4.594],[1.094,-2.479],[2.358,-0.291],[3.693,1.942],[3.084,3.854]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.11,50.654],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.865,2.024],[0.046,1.578],[1.092,1.315],[2.428,-0.572],[0.553,-0.321],[0.223,-1.63],[0.07,-0.37],[0.086,-0.553],[-0.052,-1.114],[-0.512,-1.2],[-0.991,-0.515],[-1.743,1.161]],"o":[[0.622,-1.456],[-0.051,-1.709],[-1.593,-1.919],[-0.622,0.147],[-1.351,0.786],[-0.05,0.365],[-0.104,0.55],[-0.169,1.1],[0.061,1.304],[0.514,1.201],[1.859,0.966],[1.816,-1.21]],"v":[[6.062,2.849],[6.962,-1.764],[5.26,-6.503],[-1.477,-8.759],[-3.251,-8.047],[-6.393,-4.052],[-6.438,-2.966],[-6.744,-1.318],[-6.956,2.013],[-6.223,5.837],[-3.907,8.365],[1.939,7.867]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.761,12.748],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.254,-0.058],[-0.116,-0.005],[0.021,0.267],[0.117,0.695],[0.21,-0.293],[0.276,-0.381],[0.008,-0.064],[-0.137,-0.068]],"o":[[0.121,0.027],[0.368,0.015],[-0.055,-0.704],[-0.254,0.265],[-0.273,0.383],[-0.038,0.053],[-0.021,0.152],[0.217,0.109]],"v":[[0.145,1.366],[0.502,1.416],[0.805,0.704],[0.632,-1.431],[0.064,-0.552],[-0.762,0.592],[-0.848,0.764],[-0.581,1.1]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.481,14.511],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.7,2.257],[1.394,0.47],[0.049,-1.006],[0.241,-0.863],[0.032,-0.087],[-0.173,0.034]],"o":[[-1.426,0.33],[0.195,0.975],[-0.044,0.893],[-0.025,0.09],[0.173,-0.021],[1.981,-1.334]],"v":[[2.28,-2.755],[-1.991,-2.952],[-1.777,0.031],[-2.19,2.691],[-2.28,2.952],[-1.76,2.868]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.430999995213,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46.636,22.141],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.044,0.893],[0.195,0.975],[-1.518,0.409],[-0.698,0.328],[-0.413,0.229],[-2.074,-2.879],[2.039,-0.348],[-1.008,2.948],[-0.279,1]],"o":[[0.05,-1.006],[1.486,0.501],[0.746,-0.2],[0.249,-0.116],[-0.908,3.351],[-1.567,1.356],[-1.752,0.299],[0.329,-0.965],[0.241,-0.863]],"v":[[-3.058,-1.963],[-3.27,-4.945],[1.286,-4.814],[3.446,-5.641],[4.557,-6.352],[5.795,3.374],[0.148,5.775],[-4.787,3.404],[-3.471,0.697]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.916,24.134],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.654,0.964],[-10.654,0.964],[-10.654,-0.964],[10.654,-0.964]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.195,189.908],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":2,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.602,1.799],[2.33,0.305],[0.3,-0.07],[0.238,-0.145],[2.584,-0.477],[1.181,-0.945],[-0.05,-0.5],[0,0]],"o":[[-2.335,0.264],[-0.306,-0.04],[-0.272,0.063],[-2.244,1.367],[-1.487,0.275],[-0.424,0.34],[0,0],[0.513,-1.981]],"v":[[10.233,-2.86],[3.902,-2.916],[2.981,-2.931],[2.229,-2.57],[-5.794,0.227],[-10.063,1.6],[-10.785,3.002],[10.078,3.002]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.814,186.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.805,0.678],[1.059,-7.143],[0,0],[0,0],[0,0],[0,0],[-4.271,10.58]],"o":[[-8.884,-0.51],[-2.237,15.086],[0,0],[0,0],[0,0],[0,0],[6.299,-14.736]],"v":[[3.386,-56.672],[-9.295,-40.385],[-15.191,10.719],[-11.955,57.182],[-5.834,56.941],[-2.413,10.965],[8.432,-28.486]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.364,127.341],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.473,0.964],[7.473,0.964],[7.473,-0.964],[-7.473,-0.964]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.274,189.908],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.602,1.799],[2.33,0.305],[0.003,0],[0.278,-0.428],[0.162,-0.203],[1.338,-0.308],[0.048,-0.015],[0.181,-1.523],[0,0]],"o":[[-2.335,0.264],[-0.003,-0.001],[-0.506,-0.067],[-0.168,0.26],[-0.866,1.092],[-0.047,0.017],[-1.592,0.199],[0,0],[0.513,-1.981]],"v":[[7.113,-2.869],[0.782,-2.925],[0.773,-2.926],[-0.508,-2.328],[-1.001,-1.622],[-4.352,0.398],[-4.489,0.457],[-7.715,2.993],[6.958,2.993]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.521,186.181],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.6,-2.292],[-0.759,-7.182],[0,0],[0,0],[0,0],[0,0],[-1.493,11.311]],"o":[[-8.73,1.725],[1.602,15.166],[0,0],[0,0],[0,0],[0,0],[2.418,-15.842]],"v":[[-2.688,-56.047],[-10.897,-37.108],[-4.887,13.963],[3.505,58.012],[9.372,58.339],[6.258,13.767],[9.238,-30.016]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.9,126.458],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":2,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[91.41,135.626,0],"ix":2},"a":{"a":0,"k":[47.348,56.988,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":7,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.366,3.387],[-35.366,3.387],[-35.366,-3.387],[35.366,-3.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.892,96.451],"ix":2},"a":{"a":0,"k":[-35.306,0.354],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":22,"s":[0,100]},{"t":28,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.366,3.387],[-35.366,3.387],[-35.366,-3.387],[35.366,-3.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.93,83.993],"ix":2},"a":{"a":0,"k":[-35.268,0.315],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":20,"s":[0,100]},{"t":26,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-34.544,-26.546],[-34.544,26.546],[34.544,26.546]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"t":7,"s":[0]},{"t":18,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.20000001496,0.219607858097,0.258823529412,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[47.738,43.625],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-15.142],[-5.255,-15.142],[-5.255,15.142],[5.255,15.142]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20000001496,0.223529426724,0.780392216701,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.303,69.659],"ix":2},"a":{"a":0,"k":[-0.071,14.9],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":18,"s":[100,0]},{"t":24,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-26.913],[-5.255,-26.913],[-5.255,26.913],[5.255,26.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098099054,0.647058823529,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.149,69.906],"ix":2},"a":{"a":0,"k":[0.022,26.918],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":16,"s":[100,0]},{"t":22,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-18.516],[-5.255,-18.516],[-5.255,18.516],[5.255,18.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.734,69.895],"ix":2},"a":{"a":0,"k":[-0.146,18.511],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":14,"s":[100,0]},{"t":20,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.255,-12.432],[-5.255,-12.432],[-5.255,12.432],[5.255,12.432]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.56862745098,0.576470588235,0.972549079446,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.257,69.643],"ix":2},"a":{"a":0,"k":[-0.376,12.174],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":12,"s":[100,0]},{"t":18,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-47.098,-56.738],[47.098,-56.738],[47.098,56.738],[-47.098,56.738]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.348,56.988],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[195.452,108.172,0],"ix":2},"a":{"a":0,"k":[31.566,31.566,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"t":35,"s":[0,0,100]},{"t":42,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-2.901],[-14.19,0],[-4.02,2.412]],"o":[[0,0],[-0.955,2.739],[0,14.19],[4.688,0],[0,0]],"v":[[6.279,-8.674],[-18.146,-17.193],[-19.589,-8.674],[6.279,17.193],[19.589,13.506]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098099054,0.647058823529,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.851,31.932],"ix":2},"a":{"a":0,"k":[6.306,-8.791],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[37]},{"t":45,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.168,3.865],[0,4.432]],"o":[[0,0],[3.783,-2.31],[2.169,-3.866],[0,0]],"v":[[-12.934,-11.038],[0.547,11.038],[9.625,1.619],[12.934,-11.038]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20000001496,0.223529426724,0.780392216701,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.151,31.494],"ix":2},"a":{"a":0,"k":[-12.946,-11.11],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[81]},{"t":45,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.437,3.213],[2.591,2.382]],"o":[[0,0],[-0.049,-3.519],[-1.438,-3.213],[0,0]],"v":[[-12.932,9.522],[12.932,9.164],[10.68,-1.041],[4.573,-9.522]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.456,30.797],"ix":2},"a":{"a":0,"k":[-12.788,9.999],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[137]},{"t":45,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,17.295],[17.296,0],[0,-17.295],[-17.295,0]],"o":[[0,-17.295],[-17.295,0],[0,17.295],[17.296,0]],"v":[[31.316,0],[0,-31.316],[-31.316,0],[0,31.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.566,31.566],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[31.566,31.566],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":0,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":35,"op":3552,"st":35,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.916,151.346,0],"ix":2},"a":{"a":0,"k":[40.623,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-38.933,-30.31],[-38.933,30.31],[38.933,30.31]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.25],"y":[1]},"o":{"x":[0.75],"y":[0]},"t":57,"s":[0]},{"t":72,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.676,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[40.623,32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[20.12,4.189],[-20.12,4.189],[-20.12,-4.189],[20.12,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.916,13.58],"ix":2},"a":{"a":0,"k":[-19.982,0.236],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":62,"s":[0,100]},{"t":67,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[35.762,4.189],[-35.762,4.189],[-35.762,-4.189],[35.762,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.606,26.481],"ix":2},"a":{"a":0,"k":[-35.934,0.183],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":64,"s":[0,100]},{"t":69,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[24.605,4.189],[-24.605,4.189],[-24.605,-4.189],[24.605,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.972999961703,0.855000035903,0.675,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.901,39.101],"ix":2},"a":{"a":0,"k":[-24.481,-0.151],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":66,"s":[0,100]},{"t":71,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[16.52,4.189],[-16.52,4.189],[-16.52,-4.189],[16.52,-4.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.666,52.269],"ix":2},"a":{"a":0,"k":[-16.632,0.063],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":68,"s":[0,100]},{"t":73,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":57,"op":3574,"st":57,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 14 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.511,374.47,0],"ix":2},"a":{"a":0,"k":[30.597,94.109,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.541,0.86]],"o":[[-0.541,-0.86],[0,0]],"v":[[0.812,1.29],[-0.812,-1.29]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.176,50.462],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.769,2.654]],"o":[[-3.679,-7.517],[0,0]],"v":[[2.45,6.449],[-2.45,-6.449]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.525,54.755],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.814,-1.199],[-1.462,-3.98],[0.095,-4.265],[1.278,-0.952],[1.614,0.384],[1.497,4.051],[0.302,5.246],[-4.748,-1.924],[-0.598,-0.624]],"o":[[2.392,3.522],[1.448,3.941],[-0.036,1.592],[-1.33,0.991],[-4.785,-1.138],[-1.822,-4.929],[-0.124,-2.156],[0.805,0.326],[1.019,1.065]],"v":[[0.173,-11.941],[5.451,0.188],[9.282,13.551],[7.337,17.737],[2.571,18.446],[-5.037,9.168],[-8.424,-6.528],[-4.629,-16.906],[-2.575,-15.344]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.98,45.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.572,0],[0,0],[0,3.573],[-3.572,0],[0,0],[0,-3.572]],"o":[[0,0],[-3.572,0],[0,-3.572],[0,0],[3.572,0],[0,3.573]],"v":[[3.149,6.469],[-3.15,6.469],[-9.618,0],[-3.15,-6.469],[3.149,-6.469],[9.618,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.153,60.852],"ix":2},"a":{"a":0,"k":[-9.838,0.455],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[9]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":35,"s":[9]},{"t":50,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.932,0.558],[1.011,0.196],[0,0],[1.439,-0.464],[0.204,-1.796],[0,0],[0,0],[0,0],[-2.102,-1.068],[-0.652,-0.265],[-8.597,1.906],[-1.553,0.349],[-3.183,1.335]],"o":[[0,0],[-0.272,0.003],[-1.322,-0.792],[0,0],[-1.238,0.154],[-1.755,0.567],[0,0],[0,0],[0,0],[1.644,1.614],[0.632,0.321],[0,0],[1.609,-0.209],[3.325,-0.746],[0,0]],"v":[[15.506,10.355],[13.582,-27.235],[12.67,-30.697],[6.73,-32.247],[-3.25,-32.157],[-7.614,-31.06],[-10.847,-27.171],[-12.236,-7.954],[-14.145,10.032],[-18.648,23.614],[-13.022,27.667],[-11.091,28.536],[6.73,30.34],[11.482,29.498],[18.648,26.934]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.794,59.599],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.77,1.472],[-5.004,-1.324],[4.488,-1.619],[6.77,1.619]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.599,26.78],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.913,-1.061],[0.451,-7.209],[-1.05,-1.452],[-1.755,0.361],[-0.941,1.646],[-0.601,2.91],[-0.585,3.332],[4.744,-1.276],[0.642,-0.531]],"o":[[-4.76,5.534],[-0.112,1.789],[1.05,1.453],[1.858,-0.382],[1.525,-2.67],[0.674,-3.263],[0.363,-2.073],[-0.804,0.217],[-1.092,0.905]],"v":[[-0.116,-13.423],[-9.657,11.41],[-8.389,16.525],[-3.725,18.554],[0.385,14.879],[4.732,2.551],[7.461,-7.116],[5.025,-17.639],[2.89,-16.379]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.009,46.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.573,0],[0,0],[0,3.573],[-3.573,0],[0,0],[0,-3.572]],"o":[[0,0],[-3.573,0],[0,-3.572],[0,0],[3.573,0],[0,3.573]],"v":[[3.149,6.469],[-3.149,6.469],[-9.618,0],[-3.149,-6.469],[3.149,-6.469],[9.618,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.263000009574,0.310000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.27,60.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[-1.009,1.676],[1.586,1.724],[2.037,0.237],[1.845,-1.143],[0.434,-2.208]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[3.303,2.145],[4.867,1.411],[4.943,-0.701],[1.845,-1.142],[4.746,-1.739]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[3.303,2.145],[4.867,1.411],[4.943,-0.701],[1.845,-1.143],[4.746,-1.739]],"c":true}]},{"t":50,"s":[{"i":[[-1.053,-1.191],[-0.694,0.92],[-0.029,0.525],[0.186,0.43],[0.61,0.129]],"o":[[0.711,0.804],[0.316,-0.42],[0.025,-0.468],[-0.253,-0.587],[-2.064,-0.436]],"v":[[-1.009,1.676],[1.586,1.724],[2.037,0.237],[1.845,-1.143],[0.434,-2.208]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.773,15.521],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[-0.526,0.002],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[1.875,-0.006],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[2.443,8.284],[2.794,5.556],[3.277,4.139],[4.779,3.687],[6.861,1.875],[6.685,-1.045],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.135,9.899]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[0.065,0.522],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[-0.206,-1.667],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[6.318,9.159],[7.794,6.056],[7.465,4.295],[6.935,3.468],[8.611,1.5],[7.81,-1.17],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.134,9.899]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[0.065,0.522],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[-0.206,-1.667],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[6.318,9.159],[7.794,6.056],[7.465,4.295],[6.935,3.468],[8.611,1.5],[7.81,-1.17],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.135,9.899]],"c":true}]},{"t":50,"s":[{"i":[[-0.263,0.061],[-0.062,0.079],[-0.041,0.315],[-0.118,0.909],[-0.472,0.36],[-0.526,0.002],[0.274,2.026],[-0.185,0.974],[-0.366,0.422],[-0.156,0.759],[4.377,-1.115],[1.455,-1.182],[0.364,-0.797],[-0.017,-0.214],[-0.067,-0.14],[-0.347,-1.905],[-0.53,-1.248],[-0.322,-0.597],[-0.191,-0.008],[-1.916,0.129]],"o":[[0.121,-0.028],[0.188,-0.243],[0.117,-0.909],[0.073,-0.572],[0.425,-0.324],[1.875,-0.006],[-0.13,-0.962],[0.118,-0.622],[0.585,-0.675],[-1.148,-3.927],[-1.907,0.487],[-0.679,0.552],[-0.09,0.196],[0.014,0.17],[-1.152,1.765],[0.243,1.335],[0.265,0.625],[0.13,0.242],[1.918,0.087],[0.226,-0.015]],"v":[[1.976,9.851],[2.26,9.696],[2.443,8.284],[2.794,5.556],[3.277,4.139],[4.779,3.687],[6.861,1.875],[6.685,-1.045],[7.318,-2.206],[8.7,-3.866],[-0.544,-8.933],[-5.926,-6.576],[-7.523,-4.568],[-7.674,-3.949],[-7.548,-3.486],[-7.645,2.539],[-6.462,6.424],[-5.579,8.257],[-4.624,9.961],[1.135,9.899]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.169,11.619],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.224,-0.345]],"o":[[-0.364,-0.191],[0,0]],"v":[[0.543,-0.047],[-0.543,0.238]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[32.006,4.025],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.437,-0.009]],"o":[[-0.544,-1.331],[0,0]],"v":[[1.69,1.132],[-1.69,-1.123]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[29.581,3.007],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.214,0.876],[-2.763,-0.069],[-0.687,-1.727],[-0.009,-2.838],[0.193,-1.41],[1.401,-0.239],[1.317,-0.02],[1.124,0.344],[0.659,1.78],[0.118,0.504]],"o":[[1.153,-0.833],[3,-0.044],[1.054,2.646],[0.004,1.423],[-0.178,1.308],[-1.299,0.222],[-1.173,0.017],[-1.93,-0.589],[-0.182,-0.492],[-0.721,-3.095]],"v":[[-5.805,-7.223],[0.755,-9.215],[6.104,-6.268],[7.595,2.082],[7.304,6.338],[5.136,8.809],[1.203,9.151],[-2.503,8.94],[-6.208,4.666],[-6.879,2.042]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[26.23,15.217],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[0.443,0.151],[0.461,0.124],[0.288,-0.096],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[0.757,1.6],[1.109,1.408]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[-0.401,0.151],[-0.508,0.031],[-0.493,-0.439],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[-0.149,1.632],[-0.329,1.126]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[-0.401,0.151],[-0.508,0.031],[-0.493,-0.439],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[-0.149,1.632],[-0.329,1.126]],"c":true}]},{"t":50,"s":[{"i":[[0.239,0.317],[0,0],[0.051,0.061],[0.312,0.631],[0.031,-0.073],[0.038,-0.265],[-0.034,-0.581],[-0.132,-0.175],[-0.422,0.061],[-0.048,0.133]],"o":[[0,0],[-0.064,-0.085],[-0.365,-0.61],[0.018,0.037],[-0.104,0.248],[-0.083,0.575],[0.013,0.219],[0.308,0.409],[0.139,-0.021],[0.144,-0.398]],"v":[[0.443,0.151],[0.461,0.124],[0.288,-0.096],[-0.663,-2.036],[-0.977,-1.56],[-1.145,-0.739],[-1.219,1.001],[-1.048,1.628],[0.757,1.6],[1.109,1.408]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.184,16.18],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.192,-1.726],[-0.019,-0.359],[-0.077,-1.438],[0.089,-1.441],[1.927,-1.01],[1.215,0.524],[0.37,1.049],[-0.003,0.732],[-0.097,2.4],[-0.664,1.427],[-2.174,-0.855]],"o":[[0.042,0.378],[0.077,1.438],[0.077,1.443],[-0.129,2.067],[-1.201,0.592],[-0.938,-0.405],[-0.243,-0.688],[0.013,-2.403],[0.063,-1.545],[0.912,-1.958],[1.71,0.674]],"v":[[3.962,-5.227],[4.049,-4.115],[4.279,0.2],[4.512,4.631],[2.014,9.69],[-1.824,9.707],[-4.321,7.616],[-4.56,5.444],[-4.504,-1.762],[-3.89,-6.402],[1.535,-9.427]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.431,24.033],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.957,-0.534],[-3.03,-0.318],[-5.504,1.915],[0.206,1.218],[4.292,0.6],[1.304,-0.378],[3.41,-1.101],[0.572,-8.458]],"o":[[2.94,0.802],[5.922,0.621],[-0.135,-1.972],[-0.636,-3.749],[-1.218,-0.17],[-2.577,-2.714],[-8.196,2.648],[1.676,1.108]],"v":[[-10.323,11.87],[-1.256,13.6],[15.898,11.361],[15.391,6.507],[7.323,-10.748],[3.442,-10.426],[-6.458,-13.12],[-15.898,9.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.498,81.287],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.628,6.647]],"o":[[-0.627,-6.647],[0,0]],"v":[[0.941,9.97],[-0.941,-9.97]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[20.796,98.729],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.483,8.744],[4.292,0.599],[1.887,-2.413],[0.3,-2.457],[-0.263,-4.139],[0,0],[0.142,-13.473],[-0.022,0.394],[-0.002,8.209]],"o":[[-0.636,-3.749],[-2.814,-0.393],[-1.465,1.873],[-0.504,4.126],[0.416,6.564],[0,0],[2.566,3.382],[0.602,-10.62],[0.001,-8.835]],"v":[[8.912,-38.905],[0.844,-56.159],[-7.429,-53.023],[-9.955,-46.249],[-9.8,-33.619],[-7.746,-14.678],[-0.048,53.17],[9.857,52.762],[9.847,9.963]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.976,126.699],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.691,-0.498],[-0.053,-0.009],[-0.411,-0.007],[-0.102,-0.007],[-0.491,-0.027],[-3.771,0.014],[-1.183,0.496],[1.24,0.668],[1.387,0.579],[1.603,1.086],[2.254,0.053]],"o":[[0.049,0.014],[0.41,-0.004],[0.105,-0.001],[0.491,0.013],[3.829,0.207],[1.318,-0.005],[3.054,-1.281],[-1.303,-0.701],[-1.758,-0.735],[-2.187,0.593],[-1.156,-0.027]],"v":[[-9.973,3.452],[-9.818,3.483],[-8.585,3.49],[-8.275,3.499],[-6.801,3.555],[4.724,4.337],[8.61,3.763],[6.626,0.331],[2.805,-1.612],[-2.253,-4.35],[-8.952,-3.536]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.92,183.618],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.114,-1.045],[-2.114,1.045]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[15.759,138.927],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1.788,0.354],[-1.788,-0.354]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[16.122,137.538],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.974,2.286],[0.022,0.025],[3.522,-1.138],[0.758,-8.428],[0.882,-8.905],[1.966,-16.881],[-1.628,-0.162],[-0.904,0.732],[-2.75,15.284],[-1.551,8.01],[-1.443,5.922],[-0.237,2.678]],"o":[[-0.022,-0.025],[-2.569,-2.915],[-9.26,2.991],[-0.802,8.914],[-1.677,16.921],[1.446,0.761],[2.828,0.282],[2.365,-15.364],[1.446,-8.035],[1.159,-5.982],[0.657,-2.694],[0.278,-3.142]],"v":[[11.911,-52.484],[11.846,-52.56],[1.691,-55.523],[-7.984,-29.773],[-10.51,-3.044],[-14.958,55.409],[-10.492,56.379],[-5.829,55.648],[4.988,2.209],[9.096,-17.73],[12.036,-35.785],[14.68,-43.713]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.35,123.691],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.623,1.444],[0.77,0.979],[0.469,0.213],[0.38,-0.029],[2.048,-0.096],[0.313,-1.634],[-0.338,-0.777]],"o":[[-0.329,-1.629],[-0.949,-0.658],[-0.356,-0.451],[-0.353,-0.16],[-2.045,0.156],[0.002,1.657],[-0.111,0.583],[0,0]],"v":[[6.673,4.026],[5.266,-0.628],[2.646,-3.014],[1.479,-4.19],[0.355,-4.293],[-5.789,-3.942],[-6.141,1.132],[-6.335,4.35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6.923,182.958],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.135,-2.819],[-2.819,-0.135],[-0.135,2.818],[2.818,0.135]],"o":[[-0.135,2.819],[2.818,0.136],[0.136,-2.819],[-2.819,-0.135]],"v":[[-5.104,-0.245],[-0.245,5.103],[5.103,0.245],[0.245,-5.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[55.704,59.74],"to":[0,0.708],"ti":[0,-0.708]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":15,"s":[55.704,63.99],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[55.704,63.99],"to":[0,-0.708],"ti":[0,0.708]},{"t":50,"s":[55.704,59.74]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.822],[2.822,0],[0,2.822],[-2.821,0]],"o":[[0,2.822],[-2.821,0],[0,-2.822],[2.822,0]],"v":[[5.109,0],[-0.001,5.109],[-5.109,0],[-0.001,-5.109]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.823,57.81],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.256,13.965],[-10.256,13.965],[-10.256,-13.965],[10.256,-13.965]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.722000002394,0.380000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[44.074,58.976],"to":[0,0.583],"ti":[0,-0.583]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":15,"s":[44.074,62.476],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[44.074,62.476],"to":[0,-0.583],"ti":[0,0.583]},{"t":50,"s":[44.074,58.976]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 15 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[401.976,358.223,0],"ix":2},"a":{"a":0,"k":[31.926,94.197,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-1.197,1.589],[1.374,1.941],[1.997,0.518],[1.969,-0.874],[0.693,-2.098]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-0.322,1.777],[0.811,1.691],[1.497,0.268],[1.344,-1.187],[0.318,-2.16]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-0.322,1.777],[0.811,1.691],[1.497,0.268],[1.344,-1.187],[0.318,-2.16]],"c":true}]},{"t":74,"s":[{"i":[[-0.906,-1.307],[-0.797,0.832],[-0.09,0.518],[0.134,0.449],[0.591,0.2]],"o":[[0.612,0.882],[0.364,-0.38],[0.08,-0.461],[-0.182,-0.612],[-1.998,-0.676]],"v":[[-1.197,1.589],[1.374,1.941],[1.997,0.518],[1.969,-0.874],[0.693,-2.098]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.497,14.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.174,-0.912],[-0.03,-0.106],[-0.037,0.068],[-1.523,1.507],[-0.076,0.726],[0.132,0.289],[0.136,0.102],[0.226,-0.027],[-0.134,-2.186]],"o":[[0.021,0.113],[0.069,-0.022],[0.991,-1.819],[0.519,-0.513],[0.034,-0.316],[-0.071,-0.154],[-0.182,-0.136],[-2.984,0.351],[0.056,0.914]],"v":[[-1.608,4.3],[-1.531,4.63],[-1.284,4.488],[0.664,-1.542],[2.056,-3.158],[1.836,-4.072],[1.551,-4.488],[0.894,-4.603],[-1.759,1.359]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.113999998803,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[31.683,9.163],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[5.571,6.686],[3.818,3.352],[4.135,1.543],[3.391,-0.093],[2.086,-0.442],[-8.141,-2.816],[-7.92,-3.413]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[6.383,6.373],[4.693,3.352],[5.197,0.543],[3.891,0.22],[1.773,0.934],[-8.579,-1.566],[-8.17,-2.038]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[6.383,6.373],[4.693,3.352],[5.197,0.543],[3.891,0.22],[1.773,0.934],[-8.579,-1.566],[-8.17,-2.038]],"c":true}]},{"t":74,"s":[{"i":[[-0.739,0.468],[-1.951,0.259],[-0.041,-4.8],[1.864,-0.738],[-0.292,1.622],[-0.012,0.614],[0.54,0.353],[0.454,0.044],[-0.112,2.941],[-0.112,0.185]],"o":[[1.584,-1.003],[4.979,-0.659],[0.014,1.642],[-2.268,0.898],[0.108,-0.604],[0.012,-0.614],[-0.377,-0.248],[-1.557,-0.152],[0.008,-0.214],[0.455,-0.748]],"v":[[-6.096,-5.218],[-0.474,-6.924],[8.239,0.598],[5.571,6.686],[3.818,3.352],[4.135,1.543],[3.391,-0.093],[2.086,-0.442],[-8.141,-2.816],[-7.92,-3.413]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.113999998803,0.246999987434,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.821,7.834],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.074,0.502],[0.42,2.895],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.479,-0.599],[-0.075,-0.52],[-0.05,-3.225]],"v":[[-4.547,-8.218],[2.432,-9.475],[7.135,-5.861],[6.159,3.887],[5.162,6.002],[-3.277,9.365],[-7.521,3.803],[-7.623,1.061]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.134,0.024],[1.044,2.779],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.887,-0.033],[-0.518,-0.658],[-0.05,-3.225]],"v":[[-5.297,-8.28],[1.307,-9.662],[6.26,-6.048],[6.159,3.887],[5.162,6.002],[-1.402,9.427],[-6.959,4.178],[-7.623,1.061]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.134,0.024],[1.044,2.779],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.887,-0.033],[-0.518,-0.658],[-0.05,-3.225]],"v":[[-5.297,-8.28],[1.307,-9.662],[6.26,-6.048],[6.159,3.887],[5.162,6.002],[-1.402,9.427],[-6.959,4.178],[-7.623,1.061]],"c":true}]},{"t":74,"s":[{"i":[[-1.401,0.748],[-2.744,-0.392],[-0.313,-1.833],[1.391,-2.813],[0.28,-0.444],[2.074,0.502],[0.42,2.895],[0.008,0.526]],"o":[[1.331,-0.711],[3.005,0.304],[0.538,3.15],[-0.233,0.471],[-2.231,3.549],[-2.479,-0.599],[-0.075,-0.52],[-0.05,-3.225]],"v":[[-4.547,-8.218],[2.432,-9.475],[7.135,-5.861],[6.159,3.887],[5.162,6.002],[-3.277,9.365],[-7.521,3.803],[-7.623,1.061]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.864,13.955],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.73,0.104],[-1.437,1.208],[1.537,0.794],[1.538,-0.904],[-0.46,-2.029],[-1.632,-0.615]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.043,0.292],[-0.749,1.396],[1.537,0.794],[1.538,-0.904],[0.165,-1.904],[-0.945,-0.428]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.043,0.292],[-0.749,1.396],[1.537,0.794],[1.538,-0.904],[0.165,-1.904],[-0.945,-0.428]],"c":true}]},{"t":74,"s":[{"i":[[-0.005,-0.243],[-0.187,-0.336],[-0.476,1.285],[0.175,0.541],[0.957,-0.496],[0.181,-0.602]],"o":[[0.008,0.385],[0.731,1.316],[0.199,-0.538],[-0.287,-0.891],[-0.558,0.289],[-0.071,0.233]],"v":[[-1.73,0.104],[-1.437,1.208],[1.537,0.794],[1.538,-0.904],[-0.46,-2.029],[-1.632,-0.615]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.430999995213,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.269,13.956],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.135,-2.819],[-2.819,-0.136],[-0.135,2.819],[2.818,0.136]],"o":[[-0.135,2.819],[2.818,0.135],[0.136,-2.819],[-2.819,-0.135]],"v":[[-5.104,-0.245],[-0.245,5.104],[5.103,0.245],[0.245,-5.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[46.94,64.354],"to":[0,-1.042],"ti":[0,1.042]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":21,"s":[46.94,58.104],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[46.94,58.104],"to":[0,1.042],"ti":[0,-1.042]},{"t":74,"s":[46.94,64.354]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.822],[2.822,0],[0,2.822],[-2.821,0]],"o":[[0,2.822],[-2.821,0],[0,-2.822],[2.822,0]],"v":[[5.11,0],[-0.001,5.109],[-5.11,0],[-0.001,-5.109]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[23.059,62.423],"to":[0,-0.854],"ti":[0,0.854]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":21,"s":[23.059,57.298],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[23.059,57.298],"to":[0,0.854],"ti":[0,-0.854]},{"t":74,"s":[23.059,62.423]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.255,13.965],[-10.255,13.965],[-10.255,-13.965],[10.255,-13.965]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6,"s":[35.31,63.588],"to":[0,-0.812],"ti":[0,0.812]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":21,"s":[35.31,58.713],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[35.31,58.713],"to":[0,0.812],"ti":[0,-0.812]},{"t":74,"s":[35.31,63.588]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.704,0.982],[-2.377,-1.048]],"o":[[2.704,-0.982],[2.321,-0.842],[0,0]],"v":[[-7.66,2.18],[0.453,-0.766],[7.66,-1.132]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.178,56.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.084,-0.936],[0,0],[0.936,3.084],[-3.084,0.936],[0,0],[-0.935,-3.085]],"o":[[0,0],[-3.084,0.936],[-0.935,-3.084],[0,0],[3.084,-0.935],[0.936,3.084]],"v":[[5.375,4.467],[-1.987,6.701],[-9.266,2.811],[-5.375,-4.469],[1.987,-6.702],[9.264,-2.811]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.402,61.304],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-2.405,-12.485],[2.405,-7.265],[-0.71,-6.979],[1.702,0.759],[-2.35,12.485]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.747,40.283],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.541,0.86]],"o":[[-0.541,-0.86],[0,0]],"v":[[0.812,1.29],[-0.812,-1.29]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46.995,50.916],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.769,2.655]],"o":[[-0.769,-2.654],[0,0]],"v":[[1.154,3.982],[-1.154,-3.982]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.047,52.742],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.814,-1.199],[-1.463,-3.98],[0.094,-4.265],[1.278,-0.952],[1.614,0.384],[1.497,4.051],[0.302,5.246],[-4.748,-1.924],[-0.599,-0.625]],"o":[[2.391,3.522],[1.448,3.941],[-0.036,1.592],[-1.33,0.991],[-4.785,-1.138],[-1.822,-4.93],[-0.124,-2.156],[0.805,0.326],[1.019,1.065]],"v":[[0.174,-11.941],[5.452,0.188],[9.283,13.551],[7.337,17.737],[2.572,18.446],[-5.036,9.168],[-8.423,-6.528],[-4.628,-16.906],[-2.574,-15.344]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.798,46.191],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.553,0.349],[-3.184,1.335],[0,0],[0,0],[0.933,0.558],[1.011,0.195],[0,0]],"o":[[3.326,-0.746],[0,0],[0,0],[-0.272,0.003],[-1.322,-0.792],[0,0],[1.608,-0.209]],"v":[[-1.208,30.451],[5.959,27.887],[2.817,11.309],[0.892,-26.282],[-0.02,-29.744],[-5.959,-31.294],[-5.959,31.294]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.303,59.1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.588,-1.418]],"o":[[1.359,0.713],[0,0]],"v":[[-1.521,-1.666],[1.521,1.666]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.567,55.409],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.539,-1.365],[0.35,-2.028]],"o":[[1.971,-0.59],[1.539,1.366],[0,0]],"v":[[-4.037,-3.132],[1.734,-1.857],[3.687,3.722]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.796,58.378],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.519],[3.519,0],[0,3.519],[-3.519,0]],"o":[[0,3.519],[-3.519,0],[0,-3.519],[3.519,0]],"v":[[6.372,0],[0,6.372],[-6.372,0],[0,-6.372]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.693,60.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.055,-3.811],[0,0]],"o":[[0,0],[-0.031,2.199],[0,0]],"v":[[2.556,-16.528],[-0.487,-4.679],[-2.556,16.528]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[25.311,51.849],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.86,-12.385],[-2.562,-7.803],[0.493,-7.132],[-2.86,0.245],[-0.296,12.385]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.504,40.282],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.102,-1.068],[-0.652,-0.266],[0.003,0.122],[1.439,-0.464],[0.204,-1.796],[0,0],[0,0],[0,0]],"o":[[0.632,0.321],[2.103,-15.953],[-1.238,0.153],[-1.755,0.566],[0,0],[0,0],[0,0],[1.644,1.613]],"v":[[-2.074,29.476],[-0.143,30.346],[7.697,-30.346],[3.333,-29.249],[0.1,-25.361],[-1.289,-6.144],[-3.198,11.842],[-7.701,25.424]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.666,58.243],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.913,-1.061],[0.451,-7.209],[-1.051,-1.452],[-1.756,0.361],[-0.941,1.646],[-0.601,2.91],[-0.585,3.332],[4.743,-1.276],[0.642,-0.531]],"o":[[-4.76,5.534],[-0.112,1.789],[1.049,1.453],[1.857,-0.382],[1.525,-2.67],[0.674,-3.262],[0.363,-2.073],[-0.805,0.217],[-1.092,0.905]],"v":[[-0.116,-13.423],[-9.657,11.41],[-8.388,16.525],[-3.724,18.554],[0.385,14.879],[4.732,2.551],[7.461,-7.116],[5.026,-17.639],[2.89,-16.379]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.234999997008,0.74900004069,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.155,47.092],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.651,0.97]],"o":[[1.691,0.899],[0,0]],"v":[[-2.749,-0.391],[2.749,-0.508]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[38.481,34.916],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.284,7.037]],"o":[[6.384,-4.421],[0,0]],"v":[[-7.424,8.799],[7.424,-8.799]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[40.715,72.647],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":2,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.379,5.729]],"o":[[5.912,-3.046],[0,0]],"v":[[-7.158,6.76],[7.158,-6.76]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.299,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[42.905,62.009],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":2,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.967,5.124],[0,0],[0,0],[0.903,0.575],[0.568,0.148],[0.144,-0.537],[0.782,-0.583],[1.275,3.668],[0.022,0.567],[1.42,-0.481],[0.128,-1.819],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.267,0.003],[-1.399,-0.89],[0.006,0.63],[-0.167,0.625],[-2.37,1.768],[-0.17,-0.489],[-1.235,0.16],[-1.727,0.584],[0,0],[0,0],[9.483,7.611]],"v":[[15.695,24.098],[12.769,9.254],[13.77,-24.095],[13.011,-27.623],[6.559,-29.291],[6.415,-27.543],[4.38,-25.155],[-2.253,-27.222],[-2.524,-29.161],[-7.171,-27.997],[-10.231,-24.031],[-11.77,9.168],[-15.695,21.68]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.208,57.038],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":2,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.397,1.498],[-0.373,1.931],[0.022,0.192],[1.711,0.674],[0.911,-1.958],[0.062,-1.544],[-0.001,-1.301]],"o":[[1.348,-1.446],[-0.015,-0.189],[-0.192,-1.726],[-2.173,-0.855],[-0.665,1.427],[-0.053,1.3],[1.99,0.713]],"v":[[1.68,4.245],[4.285,-0.947],[4.24,-1.512],[1.814,-5.712],[-3.61,-2.687],[-4.224,1.952],[-4.284,5.854]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.430999995213,0.344999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.971,20.771],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":2,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.192,-1.726],[-0.019,-0.359],[-0.077,-1.438],[0.089,-1.44],[1.927,-1.01],[1.215,0.524],[0.37,1.049],[-0.003,0.733],[-0.097,2.4],[-0.665,1.428],[-2.174,-0.856]],"o":[[0.042,0.378],[0.077,1.438],[0.077,1.443],[-0.129,2.067],[-1.201,0.592],[-0.938,-0.405],[-0.243,-0.688],[0.012,-2.402],[0.063,-1.544],[0.912,-1.958],[1.71,0.673]],"v":[[3.962,-5.227],[4.048,-4.115],[4.28,0.2],[4.512,4.631],[2.013,9.69],[-1.823,9.707],[-4.32,7.616],[-4.56,5.444],[-4.504,-1.762],[-3.889,-6.402],[1.535,-9.426]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.713999968884,0.6,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.249,24.487],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":2,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.777,1.15],[4.035,0.666],[1.313,-0.345],[3.436,-1.016],[0.934,-7.211],[-4.161,-0.593],[0,-0.001],[-0.083,-0.011],[-0.444,-0.046],[-0.153,-0.014],[-0.52,-0.029],[-0.083,-0.005],[-0.454,-0.01],[-0.149,-0.002],[-0.491,0.008],[0,0],[-0.022,0.001]],"o":[[-0.751,-4.466],[-1.213,-0.201],[-2.508,-2.777],[-6.473,1.915],[3.445,2.415],[0,0.001],[0.084,0.011],[0.446,0.061],[0.154,0.015],[0.525,0.048],[0.083,0.004],[0.46,0.023],[0.149,0.004],[0.501,0.006],[0,0],[0.021,0],[3.976,-0.068]],"v":[[15.317,9.285],[7.795,-7.441],[3.907,-7.217],[-5.922,-10.156],[-15.317,6.452],[-3.565,10.742],[-3.565,10.745],[-3.314,10.775],[-1.979,10.934],[-1.52,10.979],[0.048,11.096],[0.295,11.107],[1.665,11.156],[2.111,11.165],[3.601,11.165],[3.601,11.163],[3.666,11.163]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.726,77.837],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":2,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.462,6.661]],"o":[[-0.462,-6.66],[0,0]],"v":[[0.693,9.99],[-0.693,-9.99]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[33.798,98.325],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":2,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.265,8.778],[4.276,0.707],[1.946,-2.365],[0.361,-2.448],[-0.16,-4.143],[0,0],[0.477,-13.465],[-0.032,0.393],[-0.206,8.207]],"o":[[-0.542,-3.763],[-2.803,-0.462],[-1.511,1.836],[-0.607,4.113],[0.253,6.573],[0,0],[2.481,3.445],[0.866,-10.602],[0.222,-8.832]],"v":[[9.01,-38.678],[1.374,-56.128],[-6.974,-53.199],[-9.668,-46.49],[-9.828,-33.86],[-8.246,-14.873],[-2.239,53.145],[7.673,52.984],[8.728,10.198]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.430999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.147,126.522],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":2,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.678,-0.54],[-0.053,-0.01],[-0.411,-0.018],[-0.101,-0.009],[-0.491,-0.039],[-3.771,-0.08],[-1.195,0.466],[1.223,0.698],[1.371,0.614],[1.576,1.126],[2.252,0.109]],"o":[[0.048,0.015],[0.411,0.006],[0.105,0.001],[0.491,0.025],[3.822,0.302],[1.318,0.028],[3.085,-1.204],[-1.285,-0.733],[-1.74,-0.778],[-2.2,0.539],[-1.155,-0.055]],"v":[[-9.988,3.166],[-9.834,3.201],[-8.602,3.239],[-8.292,3.254],[-6.82,3.348],[4.682,4.415],[8.581,3.939],[6.682,0.458],[2.912,-1.579],[-2.077,-4.443],[-8.793,-3.795]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.735,183.702],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":2,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.14,-0.992],[-2.14,0.992]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[27.761,138.385],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":2,"cix":2,"bm":0,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1.779,0.398],[-1.779,-0.398]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[28.159,137.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 37","np":2,"cix":2,"bm":0,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.916,2.335],[0.021,0.026],[3.55,-1.049],[0.968,-8.405],[1.104,-8.881],[2.386,-16.827],[-1.623,-0.203],[-0.922,0.71],[-3.13,15.211],[-1.751,7.97],[-1.59,5.884],[-0.303,2.671]],"o":[[-0.021,-0.026],[-2.496,-2.978],[-9.331,2.76],[-1.024,8.892],[-2.097,16.874],[1.427,0.796],[2.821,0.352],[2.748,-15.301],[1.645,-7.997],[1.307,-5.951],[0.724,-2.676],[0.357,-3.134]],"v":[[13.321,-52.141],[13.257,-52.219],[3.178,-55.434],[-7.134,-29.933],[-10.325,-3.274],[-16.227,55.05],[-11.787,56.131],[-7.106,55.516],[5.038,2.363],[9.642,-17.468],[13.03,-35.444],[15.87,-43.304]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.059000000299,0.019999999626,0.435000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.625,123.114],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 38","np":2,"cix":2,"bm":0,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.24,0.124],[-2.139,0.219],[-1.799,0.266],[-1.221,0.509],[0.111,0.565],[-0.052,1.369],[2.05,0.087],[0.359,-0.139],[0.37,-0.381],[1.982,-1.059],[1.004,-2.163],[-0.014,-0.184]],"o":[[2.141,-0.214],[1.807,-0.184],[1.276,-0.189],[0.772,-0.322],[-0.266,-1.344],[-2.056,-0.038],[-0.381,-0.016],[-0.478,0.186],[-1.612,1.656],[-1.982,1.059],[-0.079,0.171],[1.243,-0.036]],"v":[[-6.335,4.705],[0.065,3.855],[5.485,3.302],[9.302,2.347],[9.467,-0.564],[9.263,-4.75],[3.1,-4.915],[1.968,-4.806],[0.762,-3.809],[-4.942,-0.194],[-9.925,4.391],[-10.06,4.945]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105999995213,0.105999995213,0.255000005984,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.324,182.996],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 39","np":2,"cix":2,"bm":0,"ix":36,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428.507,214.13,0],"ix":2},"a":{"a":0,"k":[38.775,20.604,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.984,11.38],[10.984,11.38],[10.984,-11.38],[-10.984,-11.38]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.235,11.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":5,"s":[0,0]},{"t":13,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[38.525,-2.388],[-38.525,-2.388],[-38.525,2.388],[38.525,2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.775,38.569],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":25,"s":[0,0]},{"t":33,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[38.525,-2.388],[-38.525,-2.388],[-38.525,2.388],[38.525,2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.775,29.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":20,"s":[0,0]},{"t":28,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-25.389,2.398],[25.389,2.398],[25.389,-2.398],[-25.389,-2.398]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.91,20.613],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":17,"s":[0,0]},{"t":25,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-25.389,2.388],[25.389,2.388],[25.389,-2.388],[-25.389,-2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.91,11.621],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":13,"s":[0,0]},{"t":21,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-25.389,2.388],[25.389,2.388],[25.389,-2.388],[-25.389,-2.388]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568687289,0.921568687289,0.992156922583,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.91,2.639],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":8,"s":[0,0]},{"t":16,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":3522,"st":5,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[290.7,270.456,0],"ix":2},"a":{"a":0,"k":[83.243,125.505,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25,0.667],"y":[1,1,1]},"o":{"x":[0.75,0.75,0.333],"y":[0,0,0]},"t":21,"s":[0,0,100]},{"t":35,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[30.044,-3.745],[-30.044,-3.745],[-30.044,3.745],[30.044,3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.271,226.759],"ix":2},"a":{"a":0,"k":[-30.01,-0.388],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":51,"s":[0,100]},{"t":60,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.66,3.745],[-67.66,3.745],[-67.66,-3.745],[67.66,-3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.303,212.228],"ix":2},"a":{"a":0,"k":[-67.594,-0.077],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":47,"s":[0,100]},{"t":56,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.66,3.745],[-67.66,3.745],[-67.66,-3.745],[67.66,-3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.548,198.51],"ix":2},"a":{"a":0,"k":[-67.349,-0.062],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":42,"s":[0,100]},{"t":51,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.66,3.745],[-67.66,3.745],[-67.66,-3.745],[67.66,-3.745]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.334,184.707],"ix":2},"a":{"a":0,"k":[-67.562,-0.131],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":38,"s":[0,100]},{"t":47,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[39.04,4.075],[-39.04,4.075],[-39.04,-4.075],[39.04,-4.075]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.878,35.178],"ix":2},"a":{"a":0,"k":[-39.019,0.072],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":34,"s":[0,100]},{"t":43,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[67.642,4.075],[-67.642,4.075],[-67.642,-4.075],[67.642,-4.075]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.524,21.997],"ix":2},"a":{"a":0,"k":[-67.372,0.059],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":24,"s":[0,100]},{"t":33,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[66.831,56.493],[-66.831,56.493],[-66.831,-56.493]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[100]},{"t":39,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[84.067,114.153],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.781,-1.857],[0.434,1.857],[-0.092,0.211],[-1.781,-0.148]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[118.021,62.276],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":44,"s":[0,0]},{"t":46,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.025,23.44]],"o":[[25.412,-6.643],[0,0]],"v":[[-46.435,27.285],[46.435,-27.285]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0]},{"t":44,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[71.667,89.664],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.902,21.98],[5.902,21.98],[5.902,-21.98],[-5.902,-21.98]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[33.228,170.371],"ix":2},"a":{"a":0,"k":[0.291,21.715],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":28,"s":[100,0]},{"t":37,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-24.856],[-5.902,-24.856],[-5.902,24.856],[5.902,24.856]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.944999964097,0.647000002394,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[57.924,170.478],"ix":2},"a":{"a":0,"k":[-0.377,24.698],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":29,"s":[100,0]},{"t":38,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-30.273],[-5.902,-30.273],[-5.902,30.273],[5.902,30.273]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.058,170.416],"ix":2},"a":{"a":0,"k":[-0.605,30.054],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":31,"s":[100,0]},{"t":40,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-37.02],[-5.902,-37.02],[-5.902,37.02],[5.902,37.02]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.972999961703,0.855000035903,0.675,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[109.002,170.622],"ix":2},"a":{"a":0,"k":[-0.025,37.005],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":32,"s":[100,0]},{"t":41,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.902,-53.807],[-5.902,-53.807],[-5.902,53.807],[5.902,53.807]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.932,170.355],"ix":2},"a":{"a":0,"k":[-0.459,53.525],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":34,"s":[100,0]},{"t":43,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[82.993,125.255],[-82.993,125.255],[-82.993,-125.255],[82.993,-125.255]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.922000002394,0.991999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.243,125.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[83.243,125.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":36,"s":[0,0]},{"t":51,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":0,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false}],"ip":21,"op":3538,"st":21,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 11 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[227.153,368.133,0],"ix":2},"a":{"a":0,"k":[111.025,58.467,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.996,2.076],[-64.997,2.076],[-64.997,-2.076],[64.996,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[92.02,98.241],"ix":2},"a":{"a":0,"k":[-64.784,0.031],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":11,"s":[0,100]},{"t":18,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.996,2.076],[-64.997,2.076],[-64.997,-2.076],[64.996,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[91.777,105.996],"ix":2},"a":{"a":0,"k":[-65.027,-0.412],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":14,"s":[0,100]},{"t":21,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.996,2.076],[-64.997,2.076],[-64.997,-2.076],[64.996,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[91.863,114.688],"ix":2},"a":{"a":0,"k":[-64.941,0.079],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":18,"s":[0,100]},{"t":25,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.283,34.599],"ix":2},"a":{"a":0,"k":[-37.456,0.065],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":8,"s":[0,0]},{"t":15,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.425,2.578],"ix":2},"a":{"a":0,"k":[-37.314,0.253],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":0,"s":[0,100]},{"t":7,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.543,10.423],"ix":2},"a":{"a":0,"k":[-37.196,-0.102],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":2,"s":[0,100]},{"t":9,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.407,18.824],"ix":2},"a":{"a":0,"k":[-37.332,0.1],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":4,"s":[0,100]},{"t":11,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[37.49,2.076],[-37.49,2.076],[-37.49,-2.076],[37.49,-2.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.799,26.837],"ix":2},"a":{"a":0,"k":[-36.94,-0.088],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":6,"s":[0,100]},{"t":13,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-3],[-14.675,0],[-4.158,2.495]],"o":[[0,0],[-0.988,2.832],[0,14.675],[4.849,0],[0,0]],"v":[[6.493,-8.971],[-18.766,-17.781],[-20.258,-8.971],[6.493,17.781],[20.258,13.967]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.224000010771,0.779999976065,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.081,76.599],"ix":2},"a":{"a":0,"k":[6.604,-10.783],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Group 12').transform.scale;"},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[59]},{"t":15,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.243,3.997],[0,4.584]],"o":[[0,0],[3.913,-2.389],[2.243,-3.998],[0,0]],"v":[[-13.376,-11.415],[0.566,11.416],[9.954,1.675],[13.376,-11.415]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.569000004787,0.57599995931,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.461,77.182],"ix":2},"a":{"a":0,"k":[-14.271,-12.146],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Group 12').transform.scale;"},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[128]},{"t":15,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.487,3.323],[2.68,2.463]],"o":[[0,0],[-0.051,-3.64],[-1.486,-3.323],[0,0]],"v":[[-13.374,9.848],[13.374,9.478],[11.044,-1.077],[4.729,-9.848]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.58,77.469],"ix":2},"a":{"a":0,"k":[-14.305,10.692],"ix":1},"s":{"a":0,"k":[100,100],"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Group 12').transform.scale;"},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[175]},{"t":15,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,17.887],[17.887,0],[0,-17.887],[-17.886,0]],"o":[[0,-17.887],[-17.886,0],[0,17.887],[17.887,0]],"v":[[32.387,0],[-0.001,-32.387],[-32.387,0],[-0.001,32.387]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.922000002394,0.991999966491,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.739,77.913],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.25,0.25],"y":[1,1]},"o":{"x":[0.75,0.75],"y":[0,0]},"t":0,"s":[0,0]},{"t":15,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Layer 12 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[225.071,369.387,0],"ix":2},"a":{"a":0,"k":[147.075,83.127,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.223,0.02],[0,0],[-0.021,4.223],[0,0],[-4.223,-0.02],[0,0],[0.021,-4.223],[0,0]],"o":[[0,0],[-4.223,-0.02],[0,0],[0.02,-4.223],[0,0],[4.223,0.02],[0,0],[-0.02,4.223]],"v":[[113.755,71.215],[-114.43,70.126],[-122.039,62.443],[-121.438,-63.605],[-113.755,-71.215],[114.429,-70.126],[122.039,-62.443],[121.438,63.605]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.996078491211,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.452,77.483],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.032,6.742],[0,0],[0,0],[-6.742,-0.032],[0,0]],"o":[[0,0],[0,0],[-0.032,6.742],[0,0],[6.742,0.033]],"v":[[146.825,-5.391],[146.825,-5.391],[-146.793,-6.792],[-134.644,5.475],[134.559,6.758]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882360421,0.105882360421,0.254901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.075,159.212],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.404,0.026],[0,0],[-0.026,5.404],[0,0],[-5.404,-0.026],[0,0],[0.025,-5.404],[0,0]],"o":[[0,0],[-5.405,-0.026],[0,0],[0.026,-5.405],[0,0],[5.404,0.026],[0,0],[-0.025,5.404]],"v":[[117.729,76.607],[-118.454,75.48],[-128.193,65.648],[-127.561,-66.868],[-117.729,-76.607],[118.454,-75.48],[128.193,-65.648],[127.56,66.868]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882360421,0.105882360421,0.254901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.455,76.883],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3517,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Layer 16 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.656,240.403,0],"ix":2},"a":{"a":0,"k":[49.029,29.887,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-47.154,-28.013],[-47.154,28.013],[47.154,28.013]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.219999994016,0.258999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.75,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":34,"s":[1]},{"t":47,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[49.029,29.888],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.92156869173,0.92156869173,0.992156922817,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.138,21.449],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":41,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":44,"s":[122,122]},{"t":47,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098102093,0.647058844566,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.774,38.571],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":47,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":50,"s":[122,122]},{"t":53,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.105882361531,0.105882361531,0.254901975393,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[51.37,12.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":53,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":56,"s":[122,122]},{"t":59,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.200000017881,0.223529428244,0.780392229557,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.591,12.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":64,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":67,"s":[122,122]},{"t":70,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.317],[2.317,0],[0,-2.317],[-2.318,0]],"o":[[0,-2.317],[-2.318,0],[0,2.317],[2.317,0]],"v":[[4.196,0],[0.001,-4.195],[-4.196,0],[0.001,4.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.972549080849,0.854902029037,0.674509823322,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75.729,41.765],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":59,"s":[0,0]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":62,"s":[122,122]},{"t":65,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":34,"op":3551,"st":34,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-135.625,-18],[-118.75,-0.25],[-98.125,-27.25],[-73.75,2],[-59.5,-27.5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.56862745098,0.576470588235,0.972549079446,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44,"s":[0]},{"t":64,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":34,"op":3551,"st":34,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/resources/src/main/res/values-ar/strings.xml b/resources/src/main/res/values-ar/strings.xml index c7d7c07a9a..5dc829f0bf 100644 --- a/resources/src/main/res/values-ar/strings.xml +++ b/resources/src/main/res/values-ar/strings.xml @@ -302,7 +302,7 @@ حدد تثبيت Gradle مخصص لاستخدامه في البناء. سيقوم بتغيير الإصدار المحدد في gradle-wrapper.properties. مسار تثبيت Gradle اتركه فارغاً لاستخدام Gradle wrapper. - تحتاج إلى تثبيت JDK و Android SDK حتى يعمل IDE. للتثبيت انقر فوق \'نعم\' واتبع التعليمات هنا]]> + تحتاج إلى تثبيت JDK و Android SDK حتى يعمل IDE. للتثبيت انقر فوق \'نعم\' واتبع التعليمات هنا]]> لا يوجد بناء قيد التقدم البناء جارٍ... فشل البناء. راجع إخراج البناء لمزيد من التفاصيل. diff --git a/resources/src/main/res/values-bn/strings.xml b/resources/src/main/res/values-bn/strings.xml index f07c797f3d..79da5915ee 100755 --- a/resources/src/main/res/values-bn/strings.xml +++ b/resources/src/main/res/values-bn/strings.xml @@ -303,7 +303,7 @@ বিল্ডের জন্য ব্যবহার করার জন্য একটি কাস্টম গ্রেডল ইনস্টলেশন নির্দিষ্ট করুন৷ এটি gradle-wrapper.properties-এ উল্লিখিত সংস্করণটিকে ওভাররাইড করে। Gradle ইনস্টলেশন পাথ Gradle wrapper ব্যবহার করতে খালি ছেড়ে দিন - IDE কাজ করার জন্য আপনাকে JDK এবং Android SDK ইনস্টল করতে হবে৷ ইনস্টল করতে \'হ্যাঁ\' ক্লিক করুন এবং নির্দেশাবলী অনুসরণ করুন এখানে]]> + IDE কাজ করার জন্য আপনাকে JDK এবং Android SDK ইনস্টল করতে হবে৷ ইনস্টল করতে \'হ্যাঁ\' ক্লিক করুন এবং নির্দেশাবলী অনুসরণ করুন এখানে]]> কোন বিল্ড প্রক্রিয়াধীন নেই বিল্ড চলছে… বিল্ড ব্যর্থ হয়েছে৷ আরো বিস্তারিত জানার জন্য বিল্ড আউটপুট দেখুন। diff --git a/resources/src/main/res/values-de/strings.xml b/resources/src/main/res/values-de/strings.xml index 49404d152b..e573a19541 100644 --- a/resources/src/main/res/values-de/strings.xml +++ b/resources/src/main/res/values-de/strings.xml @@ -302,7 +302,7 @@ Geben Sie eine benutzerdefinierte Gradle-Installation an, die für den Build verwendet werden soll. Dies ÜBERSCHREIBT die in gradle-wrapper.properties angegebene Version Gradle installation Pfad Lass dies leer um den Gradle wrapper zu benutzen. - Sie müssen das JDK und das Android SDK installieren, damit die IDE funktioniert. Um dies zu installieren klick \'Ok\' und folge der Anleitung hier]]> + Sie müssen das JDK und das Android SDK installieren, damit die IDE funktioniert. Um dies zu installieren klick \'Ok\' und folge der Anleitung hier]]> Kein Build wird ausgeführt Build läuft… Build ist fehlgeschlagen. Sieh dir die Ausgabe an für mehr Informationen diff --git a/resources/src/main/res/values-es/strings.xml b/resources/src/main/res/values-es/strings.xml index fa534c73cf..adc3a0c535 100644 --- a/resources/src/main/res/values-es/strings.xml +++ b/resources/src/main/res/values-es/strings.xml @@ -302,7 +302,7 @@ Especifique una instalación personalizada de Gradle a usar para compilar. Esta versión SÓLO se especifica en gradle-wrapper.properties. Ruta de instalación de Gradle Dejar en blanco para usar Gradle wrapper. - Necesita instalar el JDK y Android SDK para que el IDE funcione. Para instalar haz clic en \"Yes\" y sigue las instrucciones aquí]]> + Necesita instalar el JDK y Android SDK para que el IDE funcione. Para instalar haz clic en \"Yes\" y sigue las instrucciones aquí]]> No hay compilaciones en progreso Compilación en curso... Error de compilación. Vea la salida de compilación para más detalles. diff --git a/resources/src/main/res/values-fr/strings.xml b/resources/src/main/res/values-fr/strings.xml index f390e466f6..dc02ba95dc 100644 --- a/resources/src/main/res/values-fr/strings.xml +++ b/resources/src/main/res/values-fr/strings.xml @@ -303,7 +303,7 @@ Dernier projet ouvert : \n%s Specify a custom Gradle installation to use for build. This OVERRIDES the version specified in gradle-wrapper.properties. Gradle installation path Leave empty to use Gradle wrapper. - You need to install the JDK and Android SDK for the IDE to work. To install click \'Yes\' and follow the instructions here]]> + You need to install the JDK and Android SDK for the IDE to work. To install click \'Yes\' and follow the instructions here]]> No builds in progress Build in progress… Build failed. See build output for more details. diff --git a/resources/src/main/res/values-hi/strings.xml b/resources/src/main/res/values-hi/strings.xml index 961ac89054..72b913ec8a 100644 --- a/resources/src/main/res/values-hi/strings.xml +++ b/resources/src/main/res/values-hi/strings.xml @@ -302,7 +302,7 @@ बिल्ड में उपयोग करने के लिए एक कस्टम ग्रेडल इंस्टॉलेशन निर्दिष्ट करें। यह gradle-wrapper.properties में निर्दिष्ट संस्करण को ओवरराइड करता है। ग्रेडल इंस्टॉलेशन पथ ग्रेडल रैपर का उपयोग करने के लिए खाली छोड़ दें। - IDE के काम करने के लिए आपको JDK और Android SDK इंस्टॉल करने की आवश्यकता है। इंस्टॉल करने के लिए क्लिक करे \'हां\' और इन निर्देशों का पालन करें]]> + IDE के काम करने के लिए आपको JDK और Android SDK इंस्टॉल करने की आवश्यकता है। इंस्टॉल करने के लिए क्लिक करे \'हां\' और इन निर्देशों का पालन करें]]> कोई निर्माण प्रगति पर नहीं है निर्माण चल रहा है… निर्माण विफल रहा। अधिक विवरण के लिए बिल्ड आउटपुट देखें। diff --git a/resources/src/main/res/values-id/strings.xml b/resources/src/main/res/values-id/strings.xml index 005bef67a6..a207f41f92 100644 --- a/resources/src/main/res/values-id/strings.xml +++ b/resources/src/main/res/values-id/strings.xml @@ -296,7 +296,7 @@ Tentukan penginstalan Custom Gradle yang akan digunakan untuk build. Ini MENGGANTI versi yang ditentukan dalam gradle-wrapper.properties. Path instalasi Gradle Biarkan kosong untuk menggunakan Gradle wrapper. - Anda perlu menginstal JDK dan Android SDK agar IDE berfungsi. Untuk menginstal klik \'Ya\' dan ikuti petunjuknya di sini]]> + Anda perlu menginstal JDK dan Android SDK agar IDE berfungsi. Untuk menginstal klik \'Ya\' dan ikuti petunjuknya di sini]]> Tidak ada build yang sedang berlangsung Build sedang berlangsung… Build gagal. Lihat output build untuk detail selengkapnya. diff --git a/resources/src/main/res/values-in/strings.xml b/resources/src/main/res/values-in/strings.xml index 0e53352f7e..345e4f99dd 100644 --- a/resources/src/main/res/values-in/strings.xml +++ b/resources/src/main/res/values-in/strings.xml @@ -302,7 +302,7 @@ Tentukan penginstalan Custom Gradle yang akan digunakan untuk build. Ini MENGGANTI versi yang ditentukan dalam gradle-wrapper.properties. Path instalasi Gradle Biarkan kosong untuk menggunakan Gradle wrapper. - Anda perlu menginstal JDK dan Android SDK agar IDE berfungsi. Untuk menginstal klik \'Ya\' dan ikuti petunjuknya di sini]]> + Anda perlu menginstal JDK dan Android SDK agar IDE berfungsi. Untuk menginstal klik \'Ya\' dan ikuti petunjuknya di sini]]> Tidak ada build yang sedang berlangsung Build sedang berlangsung… Build gagal. Lihat output build untuk detail selengkapnya. diff --git a/resources/src/main/res/values-pt/strings.xml b/resources/src/main/res/values-pt/strings.xml index cf47dcba27..daae6edcaf 100644 --- a/resources/src/main/res/values-pt/strings.xml +++ b/resources/src/main/res/values-pt/strings.xml @@ -302,7 +302,7 @@ Especifique uma instalação personalizada do Gradle a ser usada para compilação. Isso SUBSTITUI a versão especificada em gradle-wrapper.properties. Caminho de instalação do Gradle Deixe em branco para usar o Gradle Wrapper. - Você precisa instalar o JDK e o Android SDK para que a IDE funcione. Para instalar clique em \'Sim\' e siga as instruções aqui]]> + Você precisa instalar o JDK e o Android SDK para que a IDE funcione. Para instalar clique em \'Sim\' e siga as instruções aqui]]> Nenhuma compilação em andamento Compilação em andamento… Falha na compilação. Consulte a saída de compilação para mais detalhes. diff --git a/resources/src/main/res/values-ro/strings.xml b/resources/src/main/res/values-ro/strings.xml index b477bcfb7b..7798af2cac 100644 --- a/resources/src/main/res/values-ro/strings.xml +++ b/resources/src/main/res/values-ro/strings.xml @@ -302,7 +302,7 @@ Specificați o instalare Gradle particularizată de utilizat pentru compilare. Acest lucru suprascrie versiunea specificată în gradle-wrapper.properties. Calea spre Gradle Lăsați gol pentru a folosi Gradle wrapper. - Trebuie să instalați SDK-ul JDK și Android pentru ca IDE să funcționeze. Pentru a instala faceți clic pe \'Da\' și urmați instrucțiunile here]]> + Trebuie să instalați SDK-ul JDK și Android pentru ca IDE să funcționeze. Pentru a instala faceți clic pe \'Da\' și urmați instrucțiunile here]]> Nici o compilare în progres Compilare în progres… Compilarea nu a reușit. Consultați Log-ul pentru mai multe detalii. diff --git a/resources/src/main/res/values-ru/strings.xml b/resources/src/main/res/values-ru/strings.xml index 0bc071f407..9169c24be4 100644 --- a/resources/src/main/res/values-ru/strings.xml +++ b/resources/src/main/res/values-ru/strings.xml @@ -302,7 +302,7 @@ Укажите пользовательскую установку Gradle для использования при сборке. Это ПЕРЕОПРЕДЕЛЯЕТ версию, указанную в gradle-wrapper.properties. Путь установки Gradle Оставьте пустым, чтобы использовать Gradle wrapper. - Для работы IDE вам необходимо установить JDK и Android SDK. Для установки нажмите \"Да\" и следуйте инструкциям здесь.]]> + Для работы IDE вам необходимо установить JDK и Android SDK. Для установки нажмите \"Да\" и следуйте инструкциям здесь.]]> Сборки не выполняются Сборка в процессе… Сборка завершилась неудачей. Дополнительные сведения см. в выводе сборки. diff --git a/resources/src/main/res/values-tr/strings.xml b/resources/src/main/res/values-tr/strings.xml index c82ae2ccab..5d965eba7e 100644 --- a/resources/src/main/res/values-tr/strings.xml +++ b/resources/src/main/res/values-tr/strings.xml @@ -302,7 +302,7 @@ İnşa için kişisel bir Gradle kurulumu belirleyin. Bu işlem gradle-wrapper.properties dosyasındaki sürümünü GEÇERSİZ KILAR. Gradle kurulum yolu Gradle sarıcı kullanmak için bunu boş bırakın. - IDE\'nin çalışması için JDK ve Android SDK yüklemen gerek. Evet\'e tıklayarak anlatılanları takip et burası]]> + IDE\'nin çalışması için JDK ve Android SDK yüklemen gerek. Evet\'e tıklayarak anlatılanları takip et burası]]> Devam eden işlem yok Derleme devam ediyor… Yapı başarısız. Daha fazla detay için çıktıya bak. diff --git a/resources/src/main/res/values-zh/strings.xml b/resources/src/main/res/values-zh/strings.xml index d730fe460d..b012d1301c 100644 --- a/resources/src/main/res/values-zh/strings.xml +++ b/resources/src/main/res/values-zh/strings.xml @@ -302,7 +302,7 @@ 指定用于构建的自定义 Gradle 路径,这将会覆盖 gradle-wrapper.properties 中指定的版本 Gradle 安装路径 留空将使用 Gradle 包装器 - 您需要安装 JDK 和 Android SDK 才能使 IDE 工作。要安装,请单击“是”并按照此处]]>的说明进行操作 + 您需要安装 JDK 和 Android SDK 才能使 IDE 工作。要安装,请单击“是”并按照此处]]>的说明进行操作 没有正在进行的构建 构建正在进行中…… 构建失败,请参阅构建输出以获取详情 diff --git a/resources/src/main/res/values/colors.xml b/resources/src/main/res/values/colors.xml index 1149bafb36..450c2f66e8 100755 --- a/resources/src/main/res/values/colors.xml +++ b/resources/src/main/res/values/colors.xml @@ -9,10 +9,13 @@ ?attr/colorPrimaryVariant #85121212 - #FF7043 + #f44336 + #ff9800 - #f44336 - @color/log_warning + @color/color_warning + + @color/color_error + @color/color_warning #212121 @@ -27,5 +30,6 @@ @android:color/white @android:color/black + #3DDC84 diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index 599aef532f..ca0567fbf9 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -184,12 +184,9 @@ Activity Interface Enum - Checking storage permissions Failed to list project files! - Can\'t proceed without storage permissions - Storage permissions granted! Open with... Undo @@ -325,7 +322,6 @@ Specify a custom Gradle installation to use for build. This OVERRIDES the version specified in gradle-wrapper.properties. Gradle installation path Leave empty to use Gradle wrapper. - You need to install the JDK and Android SDK for the IDE to work. To install follow the instructions here

Or read the documentation]]>
No builds in progress Build in progress… @@ -624,7 +620,29 @@ Selected file is not a directory Project directory does not exist A file save operation is already in progress! - JDK & SDK + SDK Installation + Install the development tools + The following tools must be installed for the IDE to work. Clicking the next button will open terminal to install the tools. To install, follow the instructions here.

Or read the documentation]]>.
File Access Permission This app needs permission to access files to function. Please grant permission to continue. + Welcome + Learn, build, launch. All on your Android. + Grant + Storage + Required to access project files. + Allow installing APKs built with AndroidIDE. + Install packages + Send notifications regarding terminal and build status. + Notifications + Permissions + AndroidIDE requires the following permissions + Please grant the permissions to continue. + It seems you\'re offline. Check your internet connection. + Heads up! You\'re using cellular data. + Heads up! You\'re on a metered network. + Disable background data restriction to avoid installation failures. + OpenJDK + Java Development Kit (JDK) is required to build projects with Gradle. + Android SDK + Android SDK is required to build Android projects. diff --git a/resources/src/main/res/values/styles.xml b/resources/src/main/res/values/styles.xml index 9b902e1359..d81e2b54f1 100755 --- a/resources/src/main/res/values/styles.xml +++ b/resources/src/main/res/values/styles.xml @@ -52,6 +52,12 @@ @color/grey_500 + + + + diff --git a/subprojects/appintro/src/main/res/values-vi-rVN/strings.xml b/subprojects/appintro/src/main/res/values-vi-rVN/strings.xml new file mode 100644 index 0000000000..593d7e6843 --- /dev/null +++ b/subprojects/appintro/src/main/res/values-vi-rVN/strings.xml @@ -0,0 +1,5 @@ + + + BỎ QUA + HOÀN THÀNH + \ No newline at end of file diff --git a/subprojects/appintro/src/main/res/values-vi/strings.xml b/subprojects/appintro/src/main/res/values-vi/strings.xml new file mode 100644 index 0000000000..a37713b3ac --- /dev/null +++ b/subprojects/appintro/src/main/res/values-vi/strings.xml @@ -0,0 +1,8 @@ + + + HOÀN THÀNH + BỎ QUA + TIẾP TỤC + QUAY LẠI + hình ảnh + \ No newline at end of file diff --git a/subprojects/appintro/src/main/res/values-yo/strings.xml b/subprojects/appintro/src/main/res/values-yo/strings.xml new file mode 100644 index 0000000000..6f449ab6a0 --- /dev/null +++ b/subprojects/appintro/src/main/res/values-yo/strings.xml @@ -0,0 +1,8 @@ + + + Ti pari + Foo + Eyi to kan + Pada + Aworan + \ No newline at end of file diff --git a/subprojects/appintro/src/main/res/values-zh-rCN/strings.xml b/subprojects/appintro/src/main/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000..f18ccfeed0 --- /dev/null +++ b/subprojects/appintro/src/main/res/values-zh-rCN/strings.xml @@ -0,0 +1,8 @@ + + + 跳过 + 下一页 + 上一页 + 完成 + 图片 + diff --git a/subprojects/appintro/src/main/res/values-zh-rTW/strings.xml b/subprojects/appintro/src/main/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000000..720426d56f --- /dev/null +++ b/subprojects/appintro/src/main/res/values-zh-rTW/strings.xml @@ -0,0 +1,8 @@ + + + 跳過 + 下一頁 + 上一頁 + 完成 + 圖片 + diff --git a/subprojects/appintro/src/main/res/values/colors.xml b/subprojects/appintro/src/main/res/values/colors.xml new file mode 100644 index 0000000000..384bbac99f --- /dev/null +++ b/subprojects/appintro/src/main/res/values/colors.xml @@ -0,0 +1,15 @@ + + + #22000000 + #222222 + #FFFFFF + #FFFFFF + #22000000 + @android:color/transparent + #59000000 + #FFFFFF + #22000000 + #FFFFFF + #000000 + #1FFFFFFF + diff --git a/subprojects/appintro/src/main/res/values/dimen.xml b/subprojects/appintro/src/main/res/values/dimen.xml new file mode 100644 index 0000000000..10a1df8691 --- /dev/null +++ b/subprojects/appintro/src/main/res/values/dimen.xml @@ -0,0 +1,30 @@ + + + 24dp + + 70dp + 90dp + + 16dp + 88dp + 56dp + 1dp + + 12dp + 48dp + 48dp + + 3dp + 10dp + 12dp + + 16sp + 16dp + 8dp + 28sp + 14sp + 14sp + 12sp + 2sp + + diff --git a/subprojects/appintro/src/main/res/values/strings.xml b/subprojects/appintro/src/main/res/values/strings.xml new file mode 100644 index 0000000000..12691fc8f7 --- /dev/null +++ b/subprojects/appintro/src/main/res/values/strings.xml @@ -0,0 +1,8 @@ + + + SKIP + NEXT + BACK + DONE + graphics + diff --git a/subprojects/appintro/src/main/res/values/styles.xml b/subprojects/appintro/src/main/res/values/styles.xml new file mode 100644 index 0000000000..2e86dfbae2 --- /dev/null +++ b/subprojects/appintro/src/main/res/values/styles.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + From 7846e87b465417dd9a7c248df85d009da6f1fa26 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Tue, 19 Dec 2023 21:59:12 +0530 Subject: [PATCH 09/10] feat: restore ability to create termux sessions with custom commands --- .../actions/sidebar/TerminalSidebarAction.kt | 4 +- .../activities/OnboardingActivity.kt | 3 +- subprojects/appintro/.gitignore | 1 + .../androidide/activities/TerminalActivity.kt | 26 +- .../java/com/termux/app/TermuxActivity.java | 274 ++++++++++------ .../java/com/termux/app/TermuxService.java | 306 ++++++++++++++++-- .../termux/app/activities/HelpActivity.java | 77 +++++ .../termux/app/event/SystemEventReceiver.java | 91 ++++++ .../termux/shell/TermuxShellManager.java | 5 + 9 files changed, 643 insertions(+), 144 deletions(-) create mode 100644 subprojects/appintro/.gitignore rename {app => termux/termux-app}/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt (69%) mode change 100755 => 100644 create mode 100644 termux/termux-app/src/main/java/com/termux/app/activities/HelpActivity.java create mode 100644 termux/termux-app/src/main/java/com/termux/app/event/SystemEventReceiver.java diff --git a/app/src/main/java/com/itsaky/androidide/actions/sidebar/TerminalSidebarAction.kt b/app/src/main/java/com/itsaky/androidide/actions/sidebar/TerminalSidebarAction.kt index a758af1996..8ed41e4641 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/sidebar/TerminalSidebarAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/sidebar/TerminalSidebarAction.kt @@ -53,11 +53,11 @@ class TerminalSidebarAction(context: Context, override val order: Int) : Abstrac val context = data.requireContext() val intent = Intent(context, TerminalActivity::class.java).apply { putExtra( - TerminalActivity.KEY_WORKING_DIRECTORY, + TERMUX_ACTIVITY.EXTRA_SESSION_WORKING_DIR, Objects.requireNonNull(IProjectManager.getInstance().projectDirPath) ) putExtra( - TerminalActivity.KEY_SESSION_NAME, + TERMUX_ACTIVITY.EXTRA_SESSION_NAME, IProjectManager.getInstance().rootProject?.rootProject?.name ) putExtra(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, isFailsafe) diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt index 539894d6f5..ad2007ffe6 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -39,6 +39,7 @@ import com.itsaky.androidide.ui.themes.IThemeManager import com.itsaky.androidide.utils.Environment import com.itsaky.androidide.utils.flashError import com.itsaky.androidide.utils.resolveAttr +import com.termux.app.TermuxActivity class OnboardingActivity : AppIntro2() { @@ -106,7 +107,7 @@ class OnboardingActivity : AppIntro2() { } if (!checkToolsIsInstalled()) { - openActivity(TerminalActivity::class.java) + TermuxActivity.startTermuxActivity(this) return } diff --git a/subprojects/appintro/.gitignore b/subprojects/appintro/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/subprojects/appintro/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt b/termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt old mode 100755 new mode 100644 similarity index 69% rename from app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt rename to termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt index 59bd3df8c3..9b09bd231c --- a/app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt +++ b/termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt @@ -14,6 +14,7 @@ * You should have received a copy of the GNU General Public License * along with AndroidIDE. If not, see . */ + package com.itsaky.androidide.activities import android.content.ComponentName @@ -22,22 +23,13 @@ import android.os.IBinder import androidx.core.content.ContextCompat import androidx.core.view.WindowCompat import com.itsaky.androidide.utils.Environment -import com.itsaky.androidide.utils.ILogger import com.termux.app.TermuxActivity -import com.termux.shared.termux.TermuxConstants -import java.io.File +/** + * @author Akash Yadav + */ class TerminalActivity : TermuxActivity() { - companion object { - - const val KEY_WORKING_DIRECTORY = TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY.EXTRA_SESSION_WORKING_DIR - const val KEY_SESSION_NAME = TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY.EXTRA_SESSION_NAME - - private val LOG = ILogger.newInstance("TerminalActivity") - private val SOURCES_LIST_CONTENT = "deb https://packages.androidide.com/apt/termux-main/ stable main".toByteArray() - } - override val navigationBarColor: Int get() = ContextCompat.getColor(this, android.R.color.black) override val statusBarColor: Int @@ -53,16 +45,6 @@ class TerminalActivity : TermuxActivity() { override fun onServiceConnected(componentName: ComponentName?, service: IBinder?) { super.onServiceConnected(componentName, service) - writeSourcesList() - Environment.mkdirIfNotExits(Environment.TMP_DIR) } - - private fun writeSourcesList() { - try { - File(Environment.PREFIX, "etc/apt/sources.list").writeBytes(SOURCES_LIST_CONTENT) - } catch (th: Throwable) { - LOG.error("Unable to update sources.list", th) - } - } } \ No newline at end of file diff --git a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java index a4cd93a09e..9ff7712280 100644 --- a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java +++ b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java @@ -1,28 +1,16 @@ -/* - * This file is part of AndroidIDE. - * - * AndroidIDE is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * AndroidIDE is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AndroidIDE. If not, see . - */ - package com.termux.app; import android.annotation.SuppressLint; import android.app.AlertDialog; +import android.content.ActivityNotFoundException; +import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.ServiceConnection; +import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.view.ContextMenu; @@ -35,43 +23,51 @@ import android.view.WindowManager; import android.view.autofill.AutofillManager; import android.widget.EditText; +import android.widget.ImageButton; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.Toast; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.drawerlayout.widget.DrawerLayout; -import androidx.viewpager.widget.ViewPager; + import com.itsaky.androidide.app.BaseIDEActivity; import com.termux.R; +import com.termux.app.activities.HelpActivity; import com.termux.app.api.file.FileReceiverActivity; import com.termux.app.terminal.TermuxActivityRootView; -import com.termux.app.terminal.TermuxSessionsListViewController; import com.termux.app.terminal.TermuxTerminalSessionActivityClient; -import com.termux.app.terminal.TermuxTerminalViewClient; -import com.termux.app.terminal.io.TerminalToolbarViewPager; import com.termux.app.terminal.io.TermuxTerminalExtraKeys; -import com.termux.databinding.ActivityTermuxBinding; import com.termux.shared.activities.ReportActivity; import com.termux.shared.activity.ActivityUtils; +import com.termux.shared.activity.media.AppCompatActivityUtils; +import com.termux.shared.data.IntentUtils; import com.termux.shared.android.PermissionUtils; import com.termux.shared.data.DataUtils; -import com.termux.shared.data.IntentUtils; -import com.termux.shared.logger.Logger; +import com.termux.shared.termux.TermuxConstants; import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY; import com.termux.shared.termux.crash.TermuxCrashUtils; +import com.termux.shared.termux.settings.preferences.TermuxAppSharedPreferences; +import com.termux.app.terminal.TermuxSessionsListViewController; +import com.termux.app.terminal.io.TerminalToolbarViewPager; +import com.termux.app.terminal.TermuxTerminalViewClient; import com.termux.shared.termux.extrakeys.ExtraKeysView; import com.termux.shared.termux.interact.TextInputDialogUtils; -import com.termux.shared.termux.settings.preferences.TermuxAppSharedPreferences; +import com.termux.shared.logger.Logger; +import com.termux.shared.termux.TermuxUtils; import com.termux.shared.termux.settings.properties.TermuxAppSharedProperties; import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession; import com.termux.shared.termux.theme.TermuxThemeUtils; -import com.termux.shared.view.KeyboardUtils; +import com.termux.shared.theme.NightMode; import com.termux.shared.view.ViewUtils; import com.termux.terminal.TerminalSession; import com.termux.terminal.TerminalSessionClient; import com.termux.view.TerminalView; import com.termux.view.TerminalViewClient; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.viewpager.widget.ViewPager; + import java.util.Arrays; import java.util.Objects; import java.util.Optional; @@ -88,8 +84,6 @@ */ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection { - protected ActivityTermuxBinding binding; - /** * The connection to the {@link TermuxService}. Requested in {@link #onCreate(Bundle)} with a call to * {@link #bindService(Intent, ServiceConnection, int)}, and obtained and stored in @@ -97,6 +91,11 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection */ TermuxService mTermuxService; + /** + * The {@link TerminalView} shown in {@link TermuxActivity} that displays the terminal. + */ + TerminalView mTerminalView; + /** * The {@link TerminalViewClient} interface implementation to allow for communication between * {@link TerminalView} and {@link TermuxActivity}. @@ -119,6 +118,16 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection */ private TermuxAppSharedProperties mProperties; + /** + * The root view of the {@link TermuxActivity}. + */ + TermuxActivityRootView mTermuxActivityRootView; + + /** + * The space at the bottom of {@link @mTermuxActivityRootView} of the {@link TermuxActivity}. + */ + View mTermuxActivityBottomSpaceView; + /** * The terminal extra keys view. */ @@ -173,10 +182,8 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection private static final int CONTEXT_MENU_AUTOFILL_ID = 2; private static final int CONTEXT_MENU_RESET_TERMINAL_ID = 3; private static final int CONTEXT_MENU_KILL_PROCESS_ID = 4; - private static final int CONTEXT_MENU_STYLING_ID = 5; private static final int CONTEXT_MENU_TOGGLE_KEEP_SCREEN_ON = 6; private static final int CONTEXT_MENU_HELP_ID = 7; - private static final int CONTEXT_MENU_SETTINGS_ID = 8; private static final int CONTEXT_MENU_REPORT_ID = 9; private static final String ARG_TERMINAL_TOOLBAR_TEXT_INPUT = "terminal_toolbar_text_input"; @@ -184,11 +191,11 @@ public class TermuxActivity extends BaseIDEActivity implements ServiceConnection private static final String LOG_TAG = "TermuxActivity"; + @SuppressLint("InflateParams") @NonNull @Override protected View bindLayout() { - this.binding = ActivityTermuxBinding.inflate(getLayoutInflater()); - return binding.getRoot(); + return getLayoutInflater().inflate(R.layout.activity_termux, null, false); } @Override @@ -221,8 +228,10 @@ public void onCreate(Bundle savedInstanceState) { setMargins(); - binding.activityTermuxRootView.setActivity(this); - binding.activityTermuxRootView.setOnApplyWindowInsetsListener(new TermuxActivityRootView.WindowInsetsListener()); + mTermuxActivityRootView = findViewById(R.id.activity_termux_root_view); + mTermuxActivityRootView.setActivity(this); + mTermuxActivityBottomSpaceView = findViewById(R.id.activity_termux_bottom_space_view); + mTermuxActivityRootView.setOnApplyWindowInsetsListener(new TermuxActivityRootView.WindowInsetsListener()); View content = findViewById(android.R.id.content); content.setOnApplyWindowInsetsListener((v, insets) -> { @@ -242,7 +251,7 @@ public void onCreate(Bundle savedInstanceState) { setToggleKeyboardView(); - registerForContextMenu(binding.terminalView); + registerForContextMenu(mTerminalView); FileReceiverActivity.updateFileReceiverActivityComponentsState(this); @@ -264,6 +273,10 @@ public void onCreate(Bundle savedInstanceState) { mIsInvalidState = true; return; } + + // Send the {@link TermuxConstants#BROADCAST_TERMUX_OPENED} broadcast to notify apps that Termux + // app has been opened. + TermuxUtils.sendTermuxOpenedBroadcast(this); } @Override @@ -284,6 +297,7 @@ public void onStart() { if (mPreferences.isTerminalMarginAdjustmentEnabled()) addTermuxActivityRootViewGlobalLayoutListener(); + } @Override @@ -300,6 +314,10 @@ public void onResume() { if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onResume(); + // Check if a crash happened on last run of the app or if a plugin crashed and show a + // notification with the crash details if it did + TermuxCrashUtils.notifyAppCrashFromCrashLogFile(this, LOG_TAG); + mIsOnResumeAfterOnCreate = false; } @@ -332,13 +350,6 @@ public void onDestroy() { if (mIsInvalidState) return; - this.binding = null; - - if (mLastToast != null) { - mLastToast.cancel(); - } - mLastToast = null; - if (mTermuxService != null) { // Do not leave service and session clients with references to activity. mTermuxService.unsetTermuxTerminalSessionClient(); @@ -411,8 +422,8 @@ public void onServiceConnected(ComponentName componentName, IBinder service) { } } else { final Optional existingSession = workingDir == null ? Optional.empty() : - mTermuxService.getTermuxSessions().stream().filter(session -> Objects.equals( - session.getTerminalSession().getCwd(), workingDir)).findFirst(); + mTermuxService.getTermuxSessions().stream().filter(session -> Objects.equals( + session.getTerminalSession().getCwd(), workingDir)).findFirst(); boolean launchFailsafe = intent != null && intent.getBooleanExtra(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, @@ -468,10 +479,15 @@ private void reloadProperties() { private void setActivityTheme() { // Update NightMode.APP_NIGHT_MODE TermuxThemeUtils.setAppNightMode(mProperties.getNightMode()); + + // Set activity night mode. If NightMode.SYSTEM is set, then android will automatically + // trigger recreation of activity when uiMode/dark mode configuration is changed so that + // day or night theme takes affect. + AppCompatActivityUtils.setNightMode(this, NightMode.getAppNightMode().getName(), true); } private void setMargins() { - RelativeLayout relativeLayout = binding.activityTermuxRootRelativeLayout; + RelativeLayout relativeLayout = findViewById(R.id.activity_termux_root_relative_layout); int marginHorizontal = mProperties.getTerminalMarginHorizontal(); int marginVertical = mProperties.getTerminalMarginVertical(); ViewUtils.setLayoutMarginsInDp(relativeLayout, marginHorizontal, marginVertical, marginHorizontal, marginVertical); @@ -496,7 +512,8 @@ private void setTermuxTerminalViewAndClients() { mTermuxTerminalViewClient = new TermuxTerminalViewClient(this, mTermuxTerminalSessionActivityClient); // Set termux terminal view - binding.terminalView.setTerminalViewClient(mTermuxTerminalViewClient); + mTerminalView = findViewById(R.id.terminal_view); + mTerminalView.setTerminalViewClient(mTermuxTerminalViewClient); if (mTermuxTerminalViewClient != null) mTermuxTerminalViewClient.onCreate(); @@ -506,7 +523,7 @@ private void setTermuxTerminalViewAndClients() { } private void setTermuxSessionsListView() { - ListView termuxSessionsListView = binding.terminalSessionsList; + ListView termuxSessionsListView = findViewById(R.id.terminal_sessions_list); mTermuxSessionListViewController = new TermuxSessionsListViewController(this, mTermuxService.getTermuxSessions()); termuxSessionsListView.setAdapter(mTermuxSessionListViewController); termuxSessionsListView.setOnItemClickListener(mTermuxSessionListViewController); @@ -516,7 +533,7 @@ private void setTermuxSessionsListView() { private void setTerminalToolbarView(Bundle savedInstanceState) { - mTermuxTerminalExtraKeys = new TermuxTerminalExtraKeys(this, binding.terminalView, + mTermuxTerminalExtraKeys = new TermuxTerminalExtraKeys(this, mTerminalView, mTermuxTerminalViewClient, mTermuxTerminalSessionActivityClient); final ViewPager terminalToolbarViewPager = getTerminalToolbarViewPager(); @@ -570,8 +587,9 @@ private void saveTerminalToolbarTextInput(Bundle savedInstanceState) { } private void setNewSessionButtonView() { - binding.newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionActivityClient.addNewSession(false, null)); - binding.newSessionButton.setOnLongClickListener(v -> { + View newSessionButton = findViewById(R.id.new_session_button); + newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionActivityClient.addNewSession(false, null)); + newSessionButton.setOnLongClickListener(v -> { TextInputDialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null, R.string.action_create_named_session_confirm, text -> mTermuxTerminalSessionActivityClient.addNewSession(false, text), R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionActivityClient.addNewSession(true, text), @@ -581,18 +599,21 @@ private void setNewSessionButtonView() { } private void setToggleKeyboardView() { - binding.toggleKeyboardButton.setOnClickListener(v -> { + findViewById(R.id.toggle_keyboard_button).setOnClickListener(v -> { mTermuxTerminalViewClient.onToggleSoftKeyboardRequest(); getDrawer().closeDrawers(); }); - binding.toggleKeyboardButton.setOnLongClickListener(v -> { + findViewById(R.id.toggle_keyboard_button).setOnLongClickListener(v -> { toggleTerminalToolbar(); return true; }); } + + + @SuppressLint("RtlHardcoded") @Override public void onBackPressed() { @@ -627,28 +648,30 @@ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuIn if (currentSession == null) return; boolean addAutoFillMenu = false; - AutofillManager autofillManager = getSystemService(AutofillManager.class); - if (autofillManager != null && autofillManager.isEnabled()) { - addAutoFillMenu = true; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + AutofillManager autofillManager = getSystemService(AutofillManager.class); + if (autofillManager != null && autofillManager.isEnabled()) { + addAutoFillMenu = true; + } } menu.add(Menu.NONE, CONTEXT_MENU_SELECT_URL_ID, Menu.NONE, R.string.action_select_url); menu.add(Menu.NONE, CONTEXT_MENU_SHARE_TRANSCRIPT_ID, Menu.NONE, R.string.action_share_transcript); - if (!DataUtils.isNullOrEmpty(binding.terminalView.getStoredSelectedText())) + if (!DataUtils.isNullOrEmpty(mTerminalView.getStoredSelectedText())) menu.add(Menu.NONE, CONTEXT_MENU_SHARE_SELECTED_TEXT, Menu.NONE, R.string.action_share_selected_text); if (addAutoFillMenu) menu.add(Menu.NONE, CONTEXT_MENU_AUTOFILL_ID, Menu.NONE, R.string.action_autofill_password); menu.add(Menu.NONE, CONTEXT_MENU_RESET_TERMINAL_ID, Menu.NONE, R.string.action_reset_terminal); menu.add(Menu.NONE, CONTEXT_MENU_KILL_PROCESS_ID, Menu.NONE, getResources().getString(R.string.action_kill_process, getCurrentSession().getPid())).setEnabled(currentSession.isRunning()); menu.add(Menu.NONE, CONTEXT_MENU_TOGGLE_KEEP_SCREEN_ON, Menu.NONE, R.string.action_toggle_keep_screen_on).setCheckable(true).setChecked(mPreferences.shouldKeepScreenOn()); - menu.add(Menu.NONE, CONTEXT_MENU_SETTINGS_ID, Menu.NONE, R.string.action_open_settings); + menu.add(Menu.NONE, CONTEXT_MENU_HELP_ID, Menu.NONE, R.string.action_open_help); menu.add(Menu.NONE, CONTEXT_MENU_REPORT_ID, Menu.NONE, R.string.action_report_issue); } /** Hook system menu to show context menu instead. */ @Override public boolean onCreateOptionsMenu(Menu menu) { - binding.terminalView.showContextMenu(); + mTerminalView.showContextMenu(); return false; } @@ -678,6 +701,9 @@ public boolean onContextItemSelected(MenuItem item) { case CONTEXT_MENU_TOGGLE_KEEP_SCREEN_ON: toggleKeepScreenOn(); return true; + case CONTEXT_MENU_HELP_ID: + ActivityUtils.startActivity(this, new Intent(this, HelpActivity.class)); + return true; case CONTEXT_MENU_REPORT_ID: mTermuxTerminalViewClient.reportIssueFromTranscript(); return true; @@ -690,7 +716,7 @@ public boolean onContextItemSelected(MenuItem item) { public void onContextMenuClosed(Menu menu) { super.onContextMenuClosed(menu); // onContextMenuClosed() is triggered twice if back button is pressed to dismiss instead of tap for some reason - binding.terminalView.onContextMenuClosed(menu); + mTerminalView.onContextMenuClosed(menu); } private void showKillSessionDialog(TerminalSession session) { @@ -717,20 +743,23 @@ private void onResetTerminalSession(TerminalSession session) { } } + private void toggleKeepScreenOn() { - if (binding.terminalView.getKeepScreenOn()) { - binding.terminalView.setKeepScreenOn(false); + if (mTerminalView.getKeepScreenOn()) { + mTerminalView.setKeepScreenOn(false); mPreferences.setKeepScreenOn(false); } else { - binding.terminalView.setKeepScreenOn(true); + mTerminalView.setKeepScreenOn(true); mPreferences.setKeepScreenOn(true); } } private void requestAutoFill() { - AutofillManager autofillManager = getSystemService(AutofillManager.class); - if (autofillManager != null && autofillManager.isEnabled()) { - autofillManager.requestAutofill(binding.terminalView); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + AutofillManager autofillManager = getSystemService(AutofillManager.class); + if (autofillManager != null && autofillManager.isEnabled()) { + autofillManager.requestAutofill(mTerminalView); + } } } @@ -742,24 +771,27 @@ private void requestAutoFill() { * if targeting targetSdkVersion 30 (android 11) and running on sdk 30 (android 11) and higher. */ public void requestStoragePermission(boolean isPermissionCallback) { - new Thread(() -> { - // Do not ask for permission again - int requestCode = isPermissionCallback ? -1 : PermissionUtils.REQUEST_GRANT_STORAGE_PERMISSION; - - // If permission is granted, then also setup storage symlinks. - if(PermissionUtils.checkAndRequestLegacyOrManageExternalStoragePermission( - TermuxActivity.this, requestCode, !isPermissionCallback)) { - if (isPermissionCallback) - Logger.logInfoAndShowToast(TermuxActivity.this, LOG_TAG, - getString(com.termux.shared.R.string.msg_storage_permission_granted_on_request)); - - TermuxInstaller.setupStorageSymlinks(TermuxActivity.this); - } else { - if (isPermissionCallback) - Logger.logInfoAndShowToast(TermuxActivity.this, LOG_TAG, - getString(com.termux.shared.R.string.msg_storage_permission_not_granted_on_request)); + new Thread() { + @Override + public void run() { + // Do not ask for permission again + int requestCode = isPermissionCallback ? -1 : PermissionUtils.REQUEST_GRANT_STORAGE_PERMISSION; + + // If permission is granted, then also setup storage symlinks. + if(PermissionUtils.checkAndRequestLegacyOrManageExternalStoragePermission( + TermuxActivity.this, requestCode, !isPermissionCallback)) { + if (isPermissionCallback) + Logger.logInfoAndShowToast(TermuxActivity.this, LOG_TAG, + getString(com.termux.shared.R.string.msg_storage_permission_granted_on_request)); + + TermuxInstaller.setupStorageSymlinks(TermuxActivity.this); + } else { + if (isPermissionCallback) + Logger.logInfoAndShowToast(TermuxActivity.this, LOG_TAG, + getString(com.termux.shared.R.string.msg_storage_permission_not_granted_on_request)); + } } - }).start(); + }.start(); } @Override @@ -787,11 +819,11 @@ public int getNavBarHeight() { } public TermuxActivityRootView getTermuxActivityRootView() { - return binding.activityTermuxRootView; + return mTermuxActivityRootView; } public View getTermuxActivityBottomSpaceView() { - return binding.activityTermuxBottomSpaceView; + return mTermuxActivityBottomSpaceView; } public ExtraKeysView getExtraKeysView() { @@ -812,7 +844,7 @@ public DrawerLayout getDrawer() { public ViewPager getTerminalToolbarViewPager() { - return binding.terminalToolbarViewPager; + return (ViewPager) findViewById(R.id.terminal_toolbar_view_pager); } public float getTerminalToolbarDefaultHeight() { @@ -851,7 +883,7 @@ public TermuxService getTermuxService() { } public TerminalView getTerminalView() { - return binding.terminalView; + return mTerminalView; } public TermuxTerminalViewClient getTermuxTerminalViewClient() { @@ -864,8 +896,8 @@ public TermuxTerminalSessionActivityClient getTermuxTerminalSessionClient() { @Nullable public TerminalSession getCurrentSession() { - if (binding != null) - return binding.terminalView.getCurrentSession(); + if (mTerminalView != null) + return mTerminalView.getCurrentSession(); else return null; } @@ -879,10 +911,68 @@ public TermuxAppSharedProperties getProperties() { } + + + public static void updateTermuxActivityStyling(Context context, boolean recreateActivity) { + // Make sure that terminal styling is always applied. + Intent stylingIntent = new Intent(TERMUX_ACTIVITY.ACTION_RELOAD_STYLE); + stylingIntent.putExtra(TERMUX_ACTIVITY.EXTRA_RECREATE_ACTIVITY, recreateActivity); + context.sendBroadcast(stylingIntent); + } + + private void fixTermuxActivityBroadcastReceiverIntent(Intent intent) { + if (intent == null) return; + + String extraReloadStyle = intent.getStringExtra(TERMUX_ACTIVITY.EXTRA_RELOAD_STYLE); + if ("storage".equals(extraReloadStyle)) { + intent.removeExtra(TERMUX_ACTIVITY.EXTRA_RELOAD_STYLE); + intent.setAction(TERMUX_ACTIVITY.ACTION_REQUEST_PERMISSIONS); + } + } + + private void reloadActivityStyling(boolean recreateActivity) { + if (mProperties != null) { + reloadProperties(); + + if (mExtraKeysView != null) { + mExtraKeysView.setButtonTextAllCaps(mProperties.shouldExtraKeysTextBeAllCaps()); + mExtraKeysView.reload(mTermuxTerminalExtraKeys.getExtraKeysInfo(), mTerminalToolbarDefaultHeight); + } + + // Update NightMode.APP_NIGHT_MODE + TermuxThemeUtils.setAppNightMode(mProperties.getNightMode()); + } + + setMargins(); + setTerminalToolbarHeight(); + + FileReceiverActivity.updateFileReceiverActivityComponentsState(this); + + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.onReloadActivityStyling(); + + if (mTermuxTerminalViewClient != null) + mTermuxTerminalViewClient.onReloadActivityStyling(); + + // To change the activity and drawer theme, activity needs to be recreated. + // It will destroy the activity, including all stored variables and views, and onCreate() + // will be called again. Extra keys input text, terminal sessions and transcripts will be preserved. + if (recreateActivity) { + Logger.logDebug(LOG_TAG, "Recreating activity"); + TermuxActivity.this.recreate(); + } + } + + + + public static void startTermuxActivity(@NonNull final Context context) { + ActivityUtils.startActivity(context, newInstance(context)); + } + public static Intent newInstance(@NonNull final Context context) { Intent intent = new Intent(context, TermuxActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); return intent; } -} +} \ No newline at end of file diff --git a/termux/termux-app/src/main/java/com/termux/app/TermuxService.java b/termux/termux-app/src/main/java/com/termux/app/TermuxService.java index 54bc394a72..db2f3341a9 100644 --- a/termux/termux-app/src/main/java/com/termux/app/TermuxService.java +++ b/termux/termux-app/src/main/java/com/termux/app/TermuxService.java @@ -10,36 +10,47 @@ import android.content.res.Resources; import android.net.wifi.WifiManager; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.PowerManager; + +import androidx.annotation.NonNull; import androidx.annotation.Nullable; + import com.termux.R; +import com.termux.app.event.SystemEventReceiver; import com.termux.app.terminal.TermuxTerminalSessionActivityClient; import com.termux.app.terminal.TermuxTerminalSessionServiceClient; -import com.termux.shared.android.PermissionUtils; -import com.termux.shared.data.DataUtils; +import com.termux.shared.termux.plugins.TermuxPluginUtils; import com.termux.shared.data.IntentUtils; -import com.termux.shared.logger.Logger; -import com.termux.shared.notification.NotificationUtils; -import com.termux.shared.shell.command.ExecutionCommand; -import com.termux.shared.shell.command.ExecutionCommand.Runner; +import com.termux.shared.net.uri.UriUtils; +import com.termux.shared.errors.Errno; +import com.termux.shared.shell.ShellUtils; import com.termux.shared.shell.command.runner.app.AppShell; +import com.termux.shared.termux.settings.properties.TermuxAppSharedProperties; +import com.termux.shared.termux.shell.command.environment.TermuxShellEnvironment; +import com.termux.shared.termux.shell.TermuxShellUtils; import com.termux.shared.termux.TermuxConstants; +import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_ACTIVITY; import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE; -import com.termux.shared.termux.plugins.TermuxPluginUtils; -import com.termux.shared.termux.settings.properties.TermuxAppSharedProperties; +import com.termux.shared.termux.settings.preferences.TermuxAppSharedPreferences; import com.termux.shared.termux.shell.TermuxShellManager; -import com.termux.shared.termux.shell.TermuxShellUtils; -import com.termux.shared.termux.shell.command.environment.TermuxShellEnvironment; import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession; import com.termux.shared.termux.terminal.TermuxTerminalSessionClientBase; +import com.termux.shared.logger.Logger; +import com.termux.shared.notification.NotificationUtils; +import com.termux.shared.android.PermissionUtils; +import com.termux.shared.data.DataUtils; +import com.termux.shared.shell.command.ExecutionCommand; +import com.termux.shared.shell.command.ExecutionCommand.Runner; +import com.termux.shared.shell.command.ExecutionCommand.ShellCreateMode; import com.termux.terminal.TerminalEmulator; import com.termux.terminal.TerminalSession; import com.termux.terminal.TerminalSessionClient; + import java.util.ArrayList; import java.util.List; -import java.util.Objects; /** * A service holding a list of {@link TermuxSession} in {@link TermuxShellManager#mTermuxSessions} and background {@link AppShell} @@ -58,10 +69,10 @@ public final class TermuxService extends Service implements AppShell.AppShellCli /** This service is only bound from inside the same process and never uses IPC. */ class LocalBinder extends Binder { - public TermuxService service = TermuxService.this; + public final TermuxService service = TermuxService.this; } - private LocalBinder mBinder = null; + private final IBinder mBinder = new LocalBinder(); private final Handler mHandler = new Handler(); @@ -107,6 +118,8 @@ public void onCreate() { mShellManager = TermuxShellManager.getShellManager(); runStartForeground(); + + SystemEventReceiver.registerPackageUpdateEvents(this); } @SuppressLint("Wakelock") @@ -137,6 +150,10 @@ public int onStartCommand(Intent intent, int flags, int startId) { Logger.logDebug(LOG_TAG, "ACTION_WAKE_UNLOCK intent received"); actionReleaseWakeLock(true); break; + case TERMUX_SERVICE.ACTION_SERVICE_EXECUTE: + Logger.logDebug(LOG_TAG, "ACTION_SERVICE_EXECUTE intent received"); + actionServiceExecute(intent); + break; default: Logger.logError(LOG_TAG, "Invalid action: \"" + action + "\""); break; @@ -152,12 +169,6 @@ public int onStartCommand(Intent intent, int flags, int startId) { public void onDestroy() { Logger.logVerbose(LOG_TAG, "onDestroy"); - if (mBinder != null) { - mBinder.service = null; - } - - mBinder = null; - TermuxShellUtils.clearTermuxTMPDIR(true); actionReleaseWakeLock(false); @@ -166,15 +177,14 @@ public void onDestroy() { TermuxShellManager.onAppExit(this); + SystemEventReceiver.unregisterPackageUpdateEvents(this); + runStopForeground(); } @Override public IBinder onBind(Intent intent) { Logger.logVerbose(LOG_TAG, "onBind"); - if (mBinder == null) { - mBinder = new LocalBinder(); - } return mBinder; } @@ -254,10 +264,12 @@ private synchronized void killAllTermuxExecutionCommands() { boolean processResult; Logger.logDebug(LOG_TAG, "Killing TermuxSessions=" + mShellManager.mTermuxSessions.size() + - ", TermuxTasks=" + mShellManager.mTermuxTasks.size()); + ", TermuxTasks=" + mShellManager.mTermuxTasks.size() + + ", PendingPluginExecutionCommands=" + mShellManager.mPendingPluginExecutionCommands.size()); List termuxSessions = new ArrayList<>(mShellManager.mTermuxSessions); List termuxTasks = new ArrayList<>(mShellManager.mTermuxTasks); + List pendingPluginExecutionCommands = new ArrayList<>(mShellManager.mPendingPluginExecutionCommands); for (int i = 0; i < termuxSessions.size(); i++) { ExecutionCommand executionCommand = termuxSessions.get(i).getExecutionCommand(); @@ -275,6 +287,15 @@ private synchronized void killAllTermuxExecutionCommands() { else mShellManager.mTermuxTasks.remove(termuxTasks.get(i)); } + + for (int i = 0; i < pendingPluginExecutionCommands.size(); i++) { + ExecutionCommand executionCommand = pendingPluginExecutionCommands.get(i); + if (!executionCommand.shouldNotProcessResults() && executionCommand.isPluginExecutionCommandWithPendingResult()) { + if (executionCommand.setStateFailed(Errno.ERRNO_CANCELLED.getCode(), this.getString(com.termux.shared.R.string.error_execution_cancelled))) { + TermuxPluginUtils.processPluginExecutionCommandResult(this, LOG_TAG, executionCommand); + } + } + } } @@ -333,6 +354,104 @@ private void actionReleaseWakeLock(boolean updateNotification) { Logger.logDebug(LOG_TAG, "WakeLocks released successfully"); } + /** Process {@link TERMUX_SERVICE#ACTION_SERVICE_EXECUTE} intent to execute a shell command in + * a foreground TermuxSession or in a background TermuxTask. */ + private void actionServiceExecute(Intent intent) { + if (intent == null) { + Logger.logError(LOG_TAG, "Ignoring null intent to actionServiceExecute"); + return; + } + + ExecutionCommand executionCommand = new ExecutionCommand(TermuxShellManager.getNextShellId()); + + executionCommand.executableUri = intent.getData(); + executionCommand.isPluginExecutionCommand = true; + + // If EXTRA_RUNNER is passed, use that, otherwise check EXTRA_BACKGROUND and default to Runner.TERMINAL_SESSION + executionCommand.runner = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_RUNNER, + (intent.getBooleanExtra(TERMUX_SERVICE.EXTRA_BACKGROUND, false) ? Runner.APP_SHELL.getName() : Runner.TERMINAL_SESSION.getName())); + if (Runner.runnerOf(executionCommand.runner) == null) { + String errmsg = this.getString(R.string.error_termux_service_invalid_execution_command_runner, executionCommand.runner); + executionCommand.setStateFailed(Errno.ERRNO_FAILED.getCode(), errmsg); + TermuxPluginUtils.processPluginExecutionCommandError(this, LOG_TAG, executionCommand, false); + return; + } + + if (executionCommand.executableUri != null) { + Logger.logVerbose(LOG_TAG, "uri: \"" + executionCommand.executableUri + "\", path: \"" + executionCommand.executableUri.getPath() + "\", fragment: \"" + executionCommand.executableUri.getFragment() + "\""); + + // Get full path including fragment (anything after last "#") + executionCommand.executable = UriUtils.getUriFilePathWithFragment(executionCommand.executableUri); + executionCommand.arguments = IntentUtils.getStringArrayExtraIfSet(intent, TERMUX_SERVICE.EXTRA_ARGUMENTS, null); + if (Runner.APP_SHELL.equalsRunner(executionCommand.runner)) + executionCommand.stdin = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_STDIN, null); + executionCommand.backgroundCustomLogLevel = IntentUtils.getIntegerExtraIfSet(intent, TERMUX_SERVICE.EXTRA_BACKGROUND_CUSTOM_LOG_LEVEL, null); + } + + executionCommand.workingDirectory = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_WORKDIR, null); + executionCommand.isFailsafe = intent.getBooleanExtra(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, false); + executionCommand.sessionAction = intent.getStringExtra(TERMUX_SERVICE.EXTRA_SESSION_ACTION); + executionCommand.shellName = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_SHELL_NAME, null); + executionCommand.shellCreateMode = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_SHELL_CREATE_MODE, null); + executionCommand.commandLabel = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_COMMAND_LABEL, "Execution Intent Command"); + executionCommand.commandDescription = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_COMMAND_DESCRIPTION, null); + executionCommand.commandHelp = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_COMMAND_HELP, null); + executionCommand.pluginAPIHelp = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_PLUGIN_API_HELP, null); + executionCommand.resultConfig.resultPendingIntent = intent.getParcelableExtra(TERMUX_SERVICE.EXTRA_PENDING_INTENT); + executionCommand.resultConfig.resultDirectoryPath = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_RESULT_DIRECTORY, null); + if (executionCommand.resultConfig.resultDirectoryPath != null) { + executionCommand.resultConfig.resultSingleFile = intent.getBooleanExtra(TERMUX_SERVICE.EXTRA_RESULT_SINGLE_FILE, false); + executionCommand.resultConfig.resultFileBasename = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_RESULT_FILE_BASENAME, null); + executionCommand.resultConfig.resultFileOutputFormat = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_RESULT_FILE_OUTPUT_FORMAT, null); + executionCommand.resultConfig.resultFileErrorFormat = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_RESULT_FILE_ERROR_FORMAT, null); + executionCommand.resultConfig.resultFilesSuffix = IntentUtils.getStringExtraIfSet(intent, TERMUX_SERVICE.EXTRA_RESULT_FILES_SUFFIX, null); + } + + if (executionCommand.shellCreateMode == null) + executionCommand.shellCreateMode = ShellCreateMode.ALWAYS.getMode(); + + // Add the execution command to pending plugin execution commands list + mShellManager.mPendingPluginExecutionCommands.add(executionCommand); + + if (Runner.APP_SHELL.equalsRunner(executionCommand.runner)) + executeTermuxTaskCommand(executionCommand); + else if (Runner.TERMINAL_SESSION.equalsRunner(executionCommand.runner)) + executeTermuxSessionCommand(executionCommand); + else { + String errmsg = getString(R.string.error_termux_service_unsupported_execution_command_runner, executionCommand.runner); + executionCommand.setStateFailed(Errno.ERRNO_FAILED.getCode(), errmsg); + TermuxPluginUtils.processPluginExecutionCommandError(this, LOG_TAG, executionCommand, false); + } + } + + + + + + /** Execute a shell command in background TermuxTask. */ + private void executeTermuxTaskCommand(ExecutionCommand executionCommand) { + if (executionCommand == null) return; + + Logger.logDebug(LOG_TAG, "Executing background \"" + executionCommand.getCommandIdAndLabelLogString() + "\" TermuxTask command"); + + // Transform executable path to shell/session name, e.g. "/bin/do-something.sh" => "do-something.sh". + if (executionCommand.shellName == null && executionCommand.executable != null) + executionCommand.shellName = ShellUtils.getExecutableBasename(executionCommand.executable); + + AppShell newTermuxTask = null; + ShellCreateMode shellCreateMode = processShellCreateMode(executionCommand); + if (shellCreateMode == null) return; + if (ShellCreateMode.NO_SHELL_WITH_NAME.equals(shellCreateMode)) { + newTermuxTask = getTermuxTaskForShellName(executionCommand.shellName); + if (newTermuxTask != null) + Logger.logVerbose(LOG_TAG, "Existing TermuxTask with \"" + executionCommand.shellName + "\" shell name found for shell create mode \"" + shellCreateMode.getMode() + "\""); + else + Logger.logVerbose(LOG_TAG, "No existing TermuxTask with \"" + executionCommand.shellName + "\" shell name found for shell create mode \"" + shellCreateMode.getMode() + "\""); + } + + if (newTermuxTask == null) + newTermuxTask = createTermuxTask(executionCommand); + } /** Create a TermuxTask. */ @Nullable @@ -374,6 +493,11 @@ public synchronized AppShell createTermuxTask(ExecutionCommand executionCommand) mShellManager.mTermuxTasks.add(newTermuxTask); + // Remove the execution command from the pending plugin execution commands list since it has + // now been processed + if (executionCommand.isPluginExecutionCommand) + mShellManager.mPendingPluginExecutionCommands.remove(executionCommand); + updateNotification(); return newTermuxTask; @@ -400,13 +524,46 @@ public void onAppShellExited(final AppShell termuxTask) { } + + + + /** Execute a shell command in a foreground {@link TermuxSession}. */ + private void executeTermuxSessionCommand(ExecutionCommand executionCommand) { + if (executionCommand == null) return; + + Logger.logDebug(LOG_TAG, "Executing foreground \"" + executionCommand.getCommandIdAndLabelLogString() + "\" TermuxSession command"); + + // Transform executable path to shell/session name, e.g. "/bin/do-something.sh" => "do-something.sh". + if (executionCommand.shellName == null && executionCommand.executable != null) + executionCommand.shellName = ShellUtils.getExecutableBasename(executionCommand.executable); + + TermuxSession newTermuxSession = null; + ShellCreateMode shellCreateMode = processShellCreateMode(executionCommand); + if (shellCreateMode == null) return; + if (ShellCreateMode.NO_SHELL_WITH_NAME.equals(shellCreateMode)) { + newTermuxSession = getTermuxSessionForShellName(executionCommand.shellName); + if (newTermuxSession != null) + Logger.logVerbose(LOG_TAG, "Existing TermuxSession with \"" + executionCommand.shellName + "\" shell name found for shell create mode \"" + shellCreateMode.getMode() + "\""); + else + Logger.logVerbose(LOG_TAG, "No existing TermuxSession with \"" + executionCommand.shellName + "\" shell name found for shell create mode \"" + shellCreateMode.getMode() + "\""); + } + + if (newTermuxSession == null) + newTermuxSession = createTermuxSession(executionCommand); + if (newTermuxSession == null) return; + + handleSessionAction(DataUtils.getIntFromString(executionCommand.sessionAction, + TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY), + newTermuxSession.getTerminalSession()); + } + /** * Create a {@link TermuxSession}. * Currently called by {@link TermuxTerminalSessionActivityClient#addNewSession(boolean, String)} to add a new {@link TermuxSession}. */ @Nullable public TermuxSession createTermuxSession(String executablePath, String[] arguments, String stdin, - String workingDirectory, boolean isFailSafe, String sessionName) { + String workingDirectory, boolean isFailSafe, String sessionName) { ExecutionCommand executionCommand = new ExecutionCommand(TermuxShellManager.getNextShellId(), executablePath, arguments, stdin, workingDirectory, Runner.TERMINAL_SESSION.getName(), isFailSafe); executionCommand.shellName = sessionName; @@ -450,6 +607,11 @@ public synchronized TermuxSession createTermuxSession(ExecutionCommand execution mShellManager.mTermuxSessions.add(newTermuxSession); + // Remove the execution command from the pending plugin execution commands list since it has + // now been processed + if (executionCommand.isPluginExecutionCommand) + mShellManager.mPendingPluginExecutionCommands.remove(executionCommand); + // Notify {@link TermuxSessionsListViewController} that sessions list has been updated if // activity in is foreground if (mTermuxTerminalSessionActivityClient != null) @@ -457,6 +619,9 @@ public synchronized TermuxSession createTermuxSession(ExecutionCommand execution updateNotification(); + // No need to recreate the activity since it likely just started and theme should already have applied + TermuxActivity.updateTermuxActivityStyling(this, false); + return newTermuxSession; } @@ -494,6 +659,78 @@ public void onTermuxSessionExited(final TermuxSession termuxSession) { } + + + + private ShellCreateMode processShellCreateMode(@NonNull ExecutionCommand executionCommand) { + if (ShellCreateMode.ALWAYS.equalsMode(executionCommand.shellCreateMode)) + return ShellCreateMode.ALWAYS; // Default + else if (ShellCreateMode.NO_SHELL_WITH_NAME.equalsMode(executionCommand.shellCreateMode)) + if (DataUtils.isNullOrEmpty(executionCommand.shellName)) { + TermuxPluginUtils.setAndProcessPluginExecutionCommandError(this, LOG_TAG, executionCommand, false, + getString(R.string.error_termux_service_execution_command_shell_name_unset, executionCommand.shellCreateMode)); + return null; + } else { + return ShellCreateMode.NO_SHELL_WITH_NAME; + } + else { + TermuxPluginUtils.setAndProcessPluginExecutionCommandError(this, LOG_TAG, executionCommand, false, + getString(R.string.error_termux_service_unsupported_execution_command_shell_create_mode, executionCommand.shellCreateMode)); + return null; + } + } + + /** Process session action for new session. */ + private void handleSessionAction(int sessionAction, TerminalSession newTerminalSession) { + Logger.logDebug(LOG_TAG, "Processing sessionAction \"" + sessionAction + "\" for session \"" + newTerminalSession.mSessionName + "\""); + + switch (sessionAction) { + case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY: + setCurrentStoredTerminalSession(newTerminalSession); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.setCurrentSession(newTerminalSession); + startTermuxActivity(); + break; + case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY: + if (getTermuxSessionsSize() == 1) + setCurrentStoredTerminalSession(newTerminalSession); + startTermuxActivity(); + break; + case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_DONT_OPEN_ACTIVITY: + setCurrentStoredTerminalSession(newTerminalSession); + if (mTermuxTerminalSessionActivityClient != null) + mTermuxTerminalSessionActivityClient.setCurrentSession(newTerminalSession); + break; + case TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_DONT_OPEN_ACTIVITY: + if (getTermuxSessionsSize() == 1) + setCurrentStoredTerminalSession(newTerminalSession); + break; + default: + Logger.logError(LOG_TAG, "Invalid sessionAction: \"" + sessionAction + "\". Force using default sessionAction."); + handleSessionAction(TERMUX_SERVICE.VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY, newTerminalSession); + break; + } + } + + /** Launch the {@link }TermuxActivity} to bring it to foreground. */ + private void startTermuxActivity() { + // For android >= 10, apps require Display over other apps permission to start foreground activities + // from background (services). If it is not granted, then TermuxSessions that are started will + // show in Termux notification but will not run until user manually clicks the notification. + if (PermissionUtils.validateDisplayOverOtherAppsPermissionForPostAndroid10(this, true)) { + TermuxActivity.startTermuxActivity(this); + } else { + TermuxAppSharedPreferences preferences = TermuxAppSharedPreferences.build(this); + if (preferences == null) return; + if (preferences.arePluginErrorNotificationsEnabled(false)) + Logger.showToast(this, this.getString(R.string.error_display_over_other_apps_permission_not_granted_to_start_terminal), true); + } + } + + + + + /** If {@link TermuxActivity} has not bound to the {@link TermuxService} yet or is destroyed, then * interface functions requiring the activity should not be available to the terminal sessions, * so we just return the {@link #mTermuxTerminalSessionServiceClient}. Once {@link TermuxActivity} bind @@ -506,8 +743,10 @@ public void onTermuxSessionExited(final TermuxSession termuxSession) { * {@link TermuxService}, otherwise {@link TermuxTerminalSessionServiceClient}. */ public synchronized TermuxTerminalSessionClientBase getTermuxTerminalSessionClient() { - return Objects.requireNonNullElse(mTermuxTerminalSessionActivityClient, - mTermuxTerminalSessionServiceClient); + if (mTermuxTerminalSessionActivityClient != null) + return mTermuxTerminalSessionActivityClient; + else + return mTermuxTerminalSessionServiceClient; } /** This should be called when {@link TermuxActivity#onServiceConnected} is called to set the @@ -603,6 +842,8 @@ private Notification buildNotification() { } private void setupNotificationChannel() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return; + NotificationUtils.setupNotificationChannel(this, TermuxConstants.TERMUX_APP_NOTIFICATION_CHANNEL_ID, TermuxConstants.TERMUX_APP_NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW); } @@ -618,6 +859,17 @@ private synchronized void updateNotification() { } + + + + private void setCurrentStoredTerminalSession(TerminalSession terminalSession) { + if (terminalSession == null) return; + // Make the newly created session the current one to be displayed + TermuxAppSharedPreferences preferences = TermuxAppSharedPreferences.build(this); + if (preferences == null) return; + preferences.setCurrentSession(terminalSession.mHandle); + } + public synchronized boolean isTermuxSessionsEmpty() { return mShellManager.mTermuxSessions.isEmpty(); } @@ -704,4 +956,4 @@ public boolean wantsToStop() { return mWantsToStop; } -} +} \ No newline at end of file diff --git a/termux/termux-app/src/main/java/com/termux/app/activities/HelpActivity.java b/termux/termux-app/src/main/java/com/termux/app/activities/HelpActivity.java new file mode 100644 index 0000000000..88f806f41d --- /dev/null +++ b/termux/termux-app/src/main/java/com/termux/app/activities/HelpActivity.java @@ -0,0 +1,77 @@ +package com.termux.app.activities; + +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.view.ViewGroup; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; + +import androidx.appcompat.app.AppCompatActivity; + +import com.termux.shared.termux.TermuxConstants; + +/** Basic embedded browser for viewing help pages. */ +public final class HelpActivity extends AppCompatActivity { + + WebView mWebView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final RelativeLayout progressLayout = new RelativeLayout(this); + RelativeLayout.LayoutParams lParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + lParams.addRule(RelativeLayout.CENTER_IN_PARENT); + ProgressBar progressBar = new ProgressBar(this); + progressBar.setIndeterminate(true); + progressBar.setLayoutParams(lParams); + progressLayout.addView(progressBar); + + mWebView = new WebView(this); + WebSettings settings = mWebView.getSettings(); + settings.setCacheMode(WebSettings.LOAD_NO_CACHE); + setContentView(progressLayout); + mWebView.clearCache(true); + + mWebView.setWebViewClient(new WebViewClient() { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + if (url.equals(TermuxConstants.TERMUX_WIKI_URL) || url.startsWith(TermuxConstants.TERMUX_WIKI_URL + "/")) { + // Inline help. + setContentView(progressLayout); + return false; + } + + try { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); + } catch (ActivityNotFoundException e) { + // Android TV does not have a system browser. + setContentView(progressLayout); + return false; + } + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + setContentView(mWebView); + } + }); + mWebView.loadUrl(TermuxConstants.TERMUX_WIKI_URL); + } + + @Override + public void onBackPressed() { + if (mWebView.canGoBack()) { + mWebView.goBack(); + } else { + super.onBackPressed(); + } + } + +} \ No newline at end of file diff --git a/termux/termux-app/src/main/java/com/termux/app/event/SystemEventReceiver.java b/termux/termux-app/src/main/java/com/termux/app/event/SystemEventReceiver.java new file mode 100644 index 0000000000..d0c32ce25d --- /dev/null +++ b/termux/termux-app/src/main/java/com/termux/app/event/SystemEventReceiver.java @@ -0,0 +1,91 @@ +package com.termux.app.event; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.net.Uri; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.termux.shared.data.IntentUtils; +import com.termux.shared.logger.Logger; +import com.termux.shared.termux.TermuxUtils; +import com.termux.shared.termux.file.TermuxFileUtils; +import com.termux.shared.termux.shell.command.environment.TermuxShellEnvironment; +import com.termux.shared.termux.shell.TermuxShellManager; + +public class SystemEventReceiver extends BroadcastReceiver { + + private static SystemEventReceiver mInstance; + + private static final String LOG_TAG = "SystemEventReceiver"; + + public static synchronized SystemEventReceiver getInstance() { + if (mInstance == null) { + mInstance = new SystemEventReceiver(); + } + return mInstance; + } + + @Override + public void onReceive(@NonNull Context context, @Nullable Intent intent) { + if (intent == null) return; + Logger.logDebug(LOG_TAG, "Intent Received:\n" + IntentUtils.getIntentString(intent)); + + String action = intent.getAction(); + if (action == null) return; + + switch (action) { + case Intent.ACTION_BOOT_COMPLETED: + onActionBootCompleted(context, intent); + break; + case Intent.ACTION_PACKAGE_ADDED: + case Intent.ACTION_PACKAGE_REMOVED: + case Intent.ACTION_PACKAGE_REPLACED: + onActionPackageUpdated(context, intent); + break; + default: + Logger.logError(LOG_TAG, "Invalid action \"" + action + "\" passed to " + LOG_TAG); + } + } + + public synchronized void onActionBootCompleted(@NonNull Context context, @NonNull Intent intent) { + TermuxShellManager.onActionBootCompleted(context, intent); + } + + public synchronized void onActionPackageUpdated(@NonNull Context context, @NonNull Intent intent) { + Uri data = intent.getData(); + if (data != null && TermuxUtils.isUriDataForTermuxPluginPackage(data)) { + Logger.logDebug(LOG_TAG, intent.getAction().replaceAll("^android.intent.action.", "") + + " event received for \"" + data.toString().replaceAll("^package:", "") + "\""); + if (TermuxFileUtils.isTermuxFilesDirectoryAccessible(context, false, false) == null) + TermuxShellEnvironment.writeEnvironmentToFile(context); + } + } + + + + /** + * Register {@link SystemEventReceiver} to listen to {@link Intent#ACTION_PACKAGE_ADDED}, + * {@link Intent#ACTION_PACKAGE_REMOVED} and {@link Intent#ACTION_PACKAGE_REPLACED} broadcasts. + * They must be registered dynamically and cannot be registered implicitly in + * the AndroidManifest.xml due to Android 8+ restrictions. + * + * https://developer.android.com/guide/components/broadcast-exceptions + */ + public synchronized static void registerPackageUpdateEvents(@NonNull Context context) { + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED); + intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED); + intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED); + intentFilter.addDataScheme("package"); + context.registerReceiver(getInstance(), intentFilter); + } + + public synchronized static void unregisterPackageUpdateEvents(@NonNull Context context) { + context.unregisterReceiver(getInstance()); + } + +} \ No newline at end of file diff --git a/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/TermuxShellManager.java b/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/TermuxShellManager.java index d3988ddfd9..b5477b990b 100644 --- a/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/TermuxShellManager.java +++ b/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/TermuxShellManager.java @@ -35,6 +35,11 @@ public class TermuxShellManager { */ public final List mTermuxTasks = new ArrayList<>(); + /** + * The pending plugin ExecutionCommands that have yet to be processed by this service. + */ + public final List mPendingPluginExecutionCommands = new ArrayList<>(); + /** * The {@link ExecutionCommand.Runner#APP_SHELL} number after app process was started/restarted. */ From bccc49f3af09f89ab5f595c0d40157d929637f8d Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Wed, 20 Dec 2023 15:42:04 +0530 Subject: [PATCH 10/10] feat: add GUI for configuring 'idesetup' for installation --- .../activities/OnboardingActivity.kt | 38 +- ...reetingFragment.kt => GreetingFragment.kt} | 2 +- ...nt.kt => IdeSetupConfigurationFragment.kt} | 288 ++++++++------ .../OnboardingMultiActionFragment.kt | 1 - ...ionsFragment.kt => PermissionsFragment.kt} | 7 +- .../onboarding/StatisticsFragment.kt | 13 +- .../fragments/onboarding/ideSetupConfig.kt | 74 ++++ .../androidide/models/IdeSetupArguments.kt | 35 ++ app/src/main/res/layout/layout_chip_error.xml | 4 - .../main/res/layout/layout_chip_warning.xml | 4 - .../layout/layout_onboardng_setup_config.xml | 150 +++++++ .../itsaky/androidide/utils/Environment.java | 21 + resources/src/main/res/values/strings.xml | 15 +- .../src/main/assets/data/common/idesetup.sh | 373 ++++++++++++++++++ .../androidide/activities/TerminalActivity.kt | 95 +++++ .../androidide/terminal/IdesetupSession.kt | 105 +++++ .../java/com/termux/app/TermuxActivity.java | 91 +++-- .../runner/terminal/TermuxSession.java | 10 +- 18 files changed, 1126 insertions(+), 200 deletions(-) rename app/src/main/java/com/itsaky/androidide/fragments/onboarding/{OnboardingGreetingFragment.kt => GreetingFragment.kt} (96%) rename app/src/main/java/com/itsaky/androidide/fragments/onboarding/{OnboardingToolInstallationFragment.kt => IdeSetupConfigurationFragment.kt} (57%) rename app/src/main/java/com/itsaky/androidide/fragments/onboarding/{OnboardingPermissionsFragment.kt => PermissionsFragment.kt} (96%) create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/onboarding/ideSetupConfig.kt create mode 100644 app/src/main/java/com/itsaky/androidide/models/IdeSetupArguments.kt create mode 100644 app/src/main/res/layout/layout_onboardng_setup_config.xml create mode 100755 termux/termux-app/src/main/assets/data/common/idesetup.sh create mode 100644 termux/termux-app/src/main/java/com/itsaky/androidide/terminal/IdesetupSession.kt diff --git a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt index ad2007ffe6..bb91e9b54f 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt @@ -27,19 +27,15 @@ import com.github.appintro.AppIntroPageTransformerType import com.itsaky.androidide.R import com.itsaky.androidide.R.string import com.itsaky.androidide.app.configuration.IDEBuildConfigProvider -import com.itsaky.androidide.fragments.onboarding.OnboardingGreetingFragment +import com.itsaky.androidide.fragments.onboarding.GreetingFragment +import com.itsaky.androidide.fragments.onboarding.IdeSetupConfigurationFragment import com.itsaky.androidide.fragments.onboarding.OnboardingInfoFragment -import com.itsaky.androidide.fragments.onboarding.OnboardingPermissionsFragment -import com.itsaky.androidide.fragments.onboarding.OnboardingToolInstallationFragment +import com.itsaky.androidide.fragments.onboarding.PermissionsFragment import com.itsaky.androidide.fragments.onboarding.StatisticsFragment import com.itsaky.androidide.preferences.internal.prefManager import com.itsaky.androidide.preferences.internal.statConsentDialogShown -import com.itsaky.androidide.preferences.internal.statOptIn import com.itsaky.androidide.ui.themes.IThemeManager import com.itsaky.androidide.utils.Environment -import com.itsaky.androidide.utils.flashError -import com.itsaky.androidide.utils.resolveAttr -import com.termux.app.TermuxActivity class OnboardingActivity : AppIntro2() { @@ -66,13 +62,14 @@ class OnboardingActivity : AppIntro2() { onBackPressedDispatcher.addCallback(this, onBackPressedCallback) + setSwipeLock(true) setTransformer(AppIntroPageTransformerType.Fade) setProgressIndicator() showStatusBar(true) isIndicatorEnabled = true isWizardMode = true - addSlide(OnboardingGreetingFragment()) + addSlide(GreetingFragment()) if (!checkDeviceSupported()) { return @@ -83,12 +80,12 @@ class OnboardingActivity : AppIntro2() { statConsentDialogShown = true } - if (!OnboardingPermissionsFragment.areAllPermissionsGranted(this)) { - addSlide(OnboardingPermissionsFragment.newInstance(this)) + if (!PermissionsFragment.areAllPermissionsGranted(this)) { + addSlide(PermissionsFragment.newInstance(this)) } if (!checkToolsIsInstalled()) { - addSlide(OnboardingToolInstallationFragment.newInstance(this)) + addSlide(IdeSetupConfigurationFragment.newInstance(this)) } } @@ -100,14 +97,26 @@ class OnboardingActivity : AppIntro2() { } } + override fun onNextPressed(currentFragment: Fragment?) { + (currentFragment as? StatisticsFragment?)?.updateStatOptInStatus() + } + override fun onDonePressed(currentFragment: Fragment?) { + (currentFragment as? StatisticsFragment?)?.updateStatOptInStatus() + if (!IDEBuildConfigProvider.getInstance().supportsBuildFlavor()) { finishAffinity() return } - if (!checkToolsIsInstalled()) { - TermuxActivity.startTermuxActivity(this) + if (!checkToolsIsInstalled() && currentFragment is IdeSetupConfigurationFragment) { + val intenet = Intent(this, TerminalActivity::class.java) + if (currentFragment.isAutoInstall()) { + intenet.putExtra(TerminalActivity.EXTRA_ONBOARDING_RUN_IDESETUP, true) + intenet.putExtra(TerminalActivity.EXTRA_ONBOARDING_RUN_IDESETUP_ARGS, + currentFragment.buildIdeSetupArguments()) + } + startActivity(intenet) return } @@ -123,7 +132,8 @@ class OnboardingActivity : AppIntro2() { } private fun isSetupDone() = - (checkToolsIsInstalled() && statConsentDialogShown && OnboardingPermissionsFragment.areAllPermissionsGranted(this)) + (checkToolsIsInstalled() && statConsentDialogShown && PermissionsFragment.areAllPermissionsGranted( + this)) private fun checkDeviceSupported(): Boolean { val configProvider = IDEBuildConfigProvider.getInstance() diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/GreetingFragment.kt similarity index 96% rename from app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt rename to app/src/main/java/com/itsaky/androidide/fragments/onboarding/GreetingFragment.kt index 5bb69ce2cf..2e69f4ec99 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingGreetingFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/GreetingFragment.kt @@ -23,5 +23,5 @@ import com.itsaky.androidide.fragments.FragmentWithBinding /** * @author Akash Yadav */ -class OnboardingGreetingFragment : +class GreetingFragment : FragmentWithBinding(FragmentOnboardingGreetingBinding::inflate) \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/IdeSetupConfigurationFragment.kt similarity index 57% rename from app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt rename to app/src/main/java/com/itsaky/androidide/fragments/onboarding/IdeSetupConfigurationFragment.kt index 0cfdf7173f..5ee0d4e75b 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingToolInstallationFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/IdeSetupConfigurationFragment.kt @@ -17,6 +17,7 @@ package com.itsaky.androidide.fragments.onboarding +import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -32,37 +33,30 @@ import android.text.Html import android.text.Spannable import android.text.SpannableStringBuilder import android.text.style.URLSpan -import android.view.View +import android.util.Log import android.view.ViewGroup -import android.view.ViewGroup.MarginLayoutParams -import androidx.core.content.ContextCompat +import android.widget.ArrayAdapter import androidx.core.content.getSystemService -import androidx.core.view.setMargins -import androidx.core.view.updateLayoutParams -import com.blankj.utilcode.util.SizeUtils +import androidx.core.view.isVisible import com.github.appintro.SlidePolicy -import com.google.android.material.button.MaterialButton import com.itsaky.androidide.R -import com.itsaky.androidide.databinding.LayoutChipErrorBinding -import com.itsaky.androidide.databinding.LayoutChipWarningBinding -import com.itsaky.androidide.models.DefaultOnboardingItem -import com.itsaky.androidide.resources.R.color -import com.itsaky.androidide.resources.R.drawable +import com.itsaky.androidide.databinding.LayoutOnboardngSetupConfigBinding +import com.itsaky.androidide.models.IdeSetupArgument import com.itsaky.androidide.resources.R.string import com.itsaky.androidide.tasks.runOnUiThread import com.itsaky.androidide.utils.ConnectionInfo +import com.itsaky.androidide.utils.Environment import com.itsaky.androidide.utils.flashError import com.itsaky.androidide.utils.getConnectionInfo /** * @author Akash Yadav */ -class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), SlidePolicy { +class IdeSetupConfigurationFragment : OnboardingFragment(), SlidePolicy { - private var cellularConnectionWarningView: LayoutChipWarningBinding? = null - private var meteredConnectionWarningView: LayoutChipWarningBinding? = null - private var backgroundDataRestrictedWarningView: LayoutChipWarningBinding? = null - private var noConnectionErrorView: LayoutChipErrorBinding? = null + private var _content: LayoutOnboardngSetupConfigBinding? = null + private val content: LayoutOnboardngSetupConfigBinding + get() = checkNotNull(_content) { "Fragment has been destroyed" } private var backgroundDataRestrictionReceiver: BroadcastReceiver? = null private var networkStateChangeCallback: NetworkCallback? = null @@ -70,8 +64,8 @@ class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), Slid companion object { @JvmStatic - fun newInstance(context: Context): OnboardingToolInstallationFragment { - return OnboardingToolInstallationFragment().also { + fun newInstance(context: Context): IdeSetupConfigurationFragment { + return IdeSetupConfigurationFragment().also { it.arguments = Bundle().apply { putCharSequence(KEY_ONBOARDING_TITLE, context.getString(R.string.title_install_tools)) putCharSequence(KEY_ONBOARDING_SUBTITLE, @@ -79,103 +73,104 @@ class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), Slid putCharSequence(KEY_ONBOARDING_EXTRA_INFO, Html.fromHtml(context.getString(R.string.msg_install_tools), Html.FROM_HTML_MODE_COMPACT)) - - val arr = arrayOf( - DefaultOnboardingItem("jdk", context.getString(string.tool_jdk_title), - context.getString(string.tool_jdk_summary), - drawable.ic_java_colored), - DefaultOnboardingItem("sdk", context.getString(string.toolg_sdk_title), - context.getString(string.tool_sdk_summary), R.drawable.ic_android, - ContextCompat.getColor(context, color.color_android)) - ) - putParcelableArray(KEY_ACTION_ITEMS, arr) } } } } + @SuppressLint("PrivateResource") override fun createContentView(parent: ViewGroup, attachToParent: Boolean) { - super.createContentView(parent, attachToParent) - recyclerView?.adapter = createAdapter() - updateConnectionStatus() - } - - override fun onStart() { - super.onStart() - - val connectivityManager = requireContext().getSystemService() ?: return - networkStateChangeCallback?.also { - connectivityManager.registerDefaultNetworkCallback(it) - } - - networkStateChangeCallback = object : NetworkCallback() { - - override fun onCapabilitiesChanged( - network: Network, - networkCapabilities: NetworkCapabilities - ) { - updateConnectionStatus(networkCapabilities) + _content = LayoutOnboardngSetupConfigBinding.inflate(layoutInflater, parent, attachToParent) + + content.apply { + noConnection.root.setText(R.string.msg_no_internet) + cellularConnection.root.setText(R.string.msg_connected_to_cellular) + meteredConnection.root.setText(R.string.msg_connected_to_metered_connection) + backgroundDataRestricted.root.setText(R.string.msg_disable_background_data_restriction) + + autoInstallSwitch.setOnCheckedChangeListener { button, isChecked -> + button.setText( + if (isChecked) R.string.action_auto_install else R.string.action_manual_install) + sdkVersionLayout.isEnabled = isChecked + jdkVersionLayout.isEnabled = isChecked + installGit.isEnabled = isChecked + installOpenssh.isEnabled = isChecked } - override fun onLost(network: Network) { - updateConnectionStatus(ConnectionInfo.UNKNOWN) - } + val sdkVersions = SdkVersion.entries.map { "SDK ${it.version}" }.reversed() + sdkVersion.setText(sdkVersions[0]) + sdkVersion.setAdapter(ArrayAdapter( + requireContext(), + com.google.android.material.R.layout.m3_auto_complete_simple_item, + sdkVersions) + ) + + val jdkVersions = JdkVersion.entries.map { "JDK ${it.version}" } + jdkVersion.setText(jdkVersions[0]) + jdkVersion.setAdapter(ArrayAdapter( + requireContext(), + com.google.android.material.R.layout.m3_auto_complete_simple_item, + jdkVersions) + ) } - val networkRequest = NetworkRequest.Builder() - .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) - .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) - .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET) - .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) - .build() - connectivityManager.registerNetworkCallback(networkRequest, networkStateChangeCallback!!) + updateConnectionStatus() + } - backgroundDataRestrictionReceiver?.also { - try { - requireContext().unregisterReceiver(it) - } catch (err: Throwable) { /*ignored*/ - } + fun isAutoInstall(): Boolean = content.autoInstallSwitch.isChecked + + fun buildIdeSetupArguments(): Array { + val args = mutableListOf() + args.setArgument(IdeSetupArgument.INSTALL_DIR, Environment.HOME.absolutePath) + args.setArgument(IdeSetupArgument.SDK_VERSION, + SdkVersion.fromDisplayName(content.sdkVersion.text).version) + args.setArgument(IdeSetupArgument.JDK_VERSION, + JdkVersion.fromDisplayName(content.jdkVersion.text).version) + args.setArgument(IdeSetupArgument.ASSUME_YES) + if (content.withCmdlineTools.isChecked) { + args.setArgument(IdeSetupArgument.WITH_CMDLINE_TOOLS) } - - backgroundDataRestrictionReceiver = object : BroadcastReceiver() { - override fun onReceive(context: Context?, intent: Intent?) { - updateConnectionStatus() - } + if (content.installGit.isChecked) { + args.setArgument(IdeSetupArgument.WITH_GIT) } - - requireContext().registerReceiver(backgroundDataRestrictionReceiver!!, - IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED)) + if (content.installOpenssh.isChecked) { + args.setArgument(IdeSetupArgument.WITH_OPENSSH) + } + return args.toTypedArray() } - override fun onStop() { - super.onStop() - - networkStateChangeCallback?.also { - requireContext().getSystemService()?.unregisterNetworkCallback(it) - networkStateChangeCallback = null + private fun MutableList.setArgument(argument: IdeSetupArgument, value: Any? = null) { + val strVal = value?.toString() ?: "" + if (argument.requiresValue && strVal.isBlank()) { + throw IllegalArgumentException("${argument.name} requires a value") } - backgroundDataRestrictionReceiver?.also { - requireContext().unregisterReceiver(it) - backgroundDataRestrictionReceiver = null - } + add(argument.argumentName) + add(strVal) + } + + override fun onStart() { + super.onStart() + updateConnectionStatus() + monitorNetworkState() } - private fun View.removeFromParent() { - (parent as? ViewGroup?)?.removeView(this) + override fun onStop() { + super.onStop() + removeNetworkMonitors() } private fun updateConnectionStatus(networkCapabilities: NetworkCapabilities? = null) = updateConnectionStatus(getConnectionInfo(requireContext(), networkCapabilities)) private fun updateConnectionStatus(connectionInfo: ConnectionInfo) = runOnUiThread { - noConnectionErrorView?.root?.removeFromParent() - cellularConnectionWarningView?.root?.removeFromParent() - meteredConnectionWarningView?.root?.removeFromParent() - backgroundDataRestrictedWarningView?.root?.removeFromParent() + content.noConnection.root.isVisible = false + content.cellularConnection.root.isVisible = false + content.meteredConnection.root.isVisible = false + content.backgroundDataRestricted.root.isVisible = false if (connectionInfo === ConnectionInfo.UNKNOWN || !connectionInfo.isConnected) { - addNotConnectedWarning() + showNoConnectionWarning() return@runOnUiThread } @@ -193,55 +188,37 @@ class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), Slid } private fun addBackgroundDataRestrictedWarning() { - backgroundDataRestrictedWarningView = backgroundDataRestrictedWarningView - ?: LayoutChipWarningBinding.inflate(layoutInflater, binding.contentContainer, false) - configureWarningOrErrorView(backgroundDataRestrictedWarningView!!.root, - getString(R.string.msg_disable_background_data_restriction)) + content.backgroundDataRestricted.root.apply { + setText(R.string.msg_disable_background_data_restriction) + isVisible = true + } } private fun addMeteredConnectionWarning() { - meteredConnectionWarningView = meteredConnectionWarningView ?: LayoutChipWarningBinding.inflate( - layoutInflater, binding.contentContainer, false) - configureWarningOrErrorView(meteredConnectionWarningView!!.root, - getString(R.string.msg_connected_to_metered_connection)) + content.meteredConnection.root.apply { + setText(R.string.msg_connected_to_metered_connection) + isVisible = true + } } private fun addCellularTransportWarning() { - cellularConnectionWarningView = cellularConnectionWarningView - ?: LayoutChipWarningBinding.inflate(layoutInflater, binding.contentContainer, false) - - configureWarningOrErrorView(cellularConnectionWarningView!!.root, - getString(R.string.msg_connected_to_cellular)) + content.cellularConnection.root.apply { + setText(R.string.msg_connected_to_cellular) + isVisible = true + } } - private fun addNotConnectedWarning() { - noConnectionErrorView = noConnectionErrorView ?: LayoutChipErrorBinding.inflate(layoutInflater, - binding.contentContainer, false) + private fun showNoConnectionWarning() { val msg = SpannableStringBuilder(getString(R.string.msg_no_internet)) msg.append(" ") msg.append(getString(R.string.action_open_settings), URLSpan(""), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ) - noConnectionErrorView!!.root.setOnClickListener { - it.context.startActivity(Intent(Settings.ACTION_WIFI_SETTINGS)) - } - - configureWarningOrErrorView(noConnectionErrorView!!.root, msg) - } - - private fun configureWarningOrErrorView(root: MaterialButton, msg: CharSequence) { - root.apply { - text = msg - updateLayoutParams { - val dp8 = SizeUtils.dp2px(4f) - setMargins(dp8) - - width = ViewGroup.LayoutParams.MATCH_PARENT - } - - if (parent == null) { - binding.contentContainer.addView(this, 0) + content.noConnection.root.apply { + isVisible = true + setOnClickListener { + it.context.startActivity(Intent(Settings.ACTION_WIFI_SETTINGS)) } } } @@ -250,11 +227,6 @@ class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), Slid super.onDestroyView() backgroundDataRestrictionReceiver = null networkStateChangeCallback = null - - cellularConnectionWarningView = null - meteredConnectionWarningView = null - backgroundDataRestrictedWarningView = null - noConnectionErrorView = null } override val isPolicyRespected: Boolean @@ -263,4 +235,62 @@ class OnboardingToolInstallationFragment : OnboardingMultiActionFragment(), Slid override fun onUserIllegallyRequestedNextPage() { flashError(string.msg_no_internet) } + + private fun monitorNetworkState() { + val connectivityManager = requireContext().getSystemService() ?: return + networkStateChangeCallback?.also { + connectivityManager.registerDefaultNetworkCallback(it) + } + + networkStateChangeCallback = object : NetworkCallback() { + + override fun onCapabilitiesChanged( + network: Network, + networkCapabilities: NetworkCapabilities + ) { + updateConnectionStatus(networkCapabilities) + } + + override fun onLost(network: Network) { + updateConnectionStatus(ConnectionInfo.UNKNOWN) + } + } + + val networkRequest = NetworkRequest.Builder() + .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) + .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) + .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET) + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .build() + connectivityManager.registerNetworkCallback(networkRequest, networkStateChangeCallback!!) + + backgroundDataRestrictionReceiver?.also { + try { + requireContext().unregisterReceiver(it) + } catch (err: Throwable) { /*ignored*/ + } + } + + backgroundDataRestrictionReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + updateConnectionStatus() + } + } + + requireContext().registerReceiver(backgroundDataRestrictionReceiver!!, + IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED)) + } + + private fun removeNetworkMonitors() { + networkStateChangeCallback?.also { + requireContext().getSystemService()?.unregisterNetworkCallback(it) + networkStateChangeCallback = null + } + + backgroundDataRestrictionReceiver?.also { + requireContext().unregisterReceiver(it) + backgroundDataRestrictionReceiver = null + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt index 2ea134ba81..465c5196eb 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingMultiActionFragment.kt @@ -58,7 +58,6 @@ open class OnboardingMultiActionFragment : OnboardingFragment() { override fun createContentView(parent: ViewGroup, attachToParent: Boolean) { val binding = LayoutOnboardingMultiactionBinding.inflate(layoutInflater, parent, attachToParent) - RecyclerView.setVerboseLoggingEnabled(true) binding.onboardingItems.adapter = createAdapter() recyclerView = binding.onboardingItems } diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/PermissionsFragment.kt similarity index 96% rename from app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt rename to app/src/main/java/com/itsaky/androidide/fragments/onboarding/PermissionsFragment.kt index 1ad121b8e1..486e653f72 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/OnboardingPermissionsFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/PermissionsFragment.kt @@ -22,7 +22,6 @@ import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.net.Uri -import android.os.Build import android.os.Bundle import android.os.Environment import android.provider.Settings @@ -40,7 +39,7 @@ import com.itsaky.androidide.utils.isAtLeastR /** * @author Akash Yadav */ -class OnboardingPermissionsFragment : OnboardingMultiActionFragment(), SlidePolicy { +class PermissionsFragment : OnboardingMultiActionFragment(), SlidePolicy { var adapter: OnboardingPermissionsAdapter? = null @@ -61,8 +60,8 @@ class OnboardingPermissionsFragment : OnboardingMultiActionFragment(), SlidePoli companion object { @JvmStatic - fun newInstance(context: Context): OnboardingPermissionsFragment { - return OnboardingPermissionsFragment().apply { + fun newInstance(context: Context): PermissionsFragment { + return PermissionsFragment().apply { arguments = Bundle().apply { putCharSequence(KEY_ONBOARDING_TITLE, context.getString(R.string.onboarding_title_permissions)) diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt index 57f836237f..3f0e468451 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt @@ -28,17 +28,16 @@ class StatisticsFragment : OnboardingFragment() { override fun createContentView(parent: ViewGroup, attachToParent: Boolean) { _content = LayoutOnboardingStatisticsBinding.inflate(layoutInflater, parent, attachToParent) - content.statOptIn.isChecked = statOptIn - content.statOptIn.setOnCheckedChangeListener { _, isChecked -> - statOptIn = isChecked - if (isChecked) { - IDEApplication.instance.reportStatsIfNecessary() - } - } + content.statOptIn.isChecked = true } override fun onDestroy() { super.onDestroy() _content = null } + + fun updateStatOptInStatus() { + statOptIn = _content?.statOptIn?.isChecked ?: false + IDEApplication.instance.reportStatsIfNecessary() + } } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/fragments/onboarding/ideSetupConfig.kt b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/ideSetupConfig.kt new file mode 100644 index 0000000000..0ff8bb2eaf --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/fragments/onboarding/ideSetupConfig.kt @@ -0,0 +1,74 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.fragments.onboarding + +import com.itsaky.androidide.app.configuration.CpuArch + +private val ARM_ONLY = arrayOf(CpuArch.AARCH64, CpuArch.ARM) +private val ALL = arrayOf(CpuArch.AARCH64, CpuArch.ARM, CpuArch.X86_64) + +/** + * Android SDK versions. + * + * @author Akash Yadav + */ +enum class SdkVersion(val version: String, val supportedArchs: Array) { + + SDK_33_0_1("33.0.1", ARM_ONLY), + SDK_34_0_0("34.0.0", ARM_ONLY), + SDK_34_0_1("34.0.1", ARM_ONLY), + SDK_34_0_3("34.0.3", ARM_ONLY), + SDK_34_0_4("34.0.4", ALL), + ; + + val displayName = "SDK $version" + + companion object { + + @JvmStatic + fun fromDisplayName(displayName: CharSequence) = + entries.first { it.displayName.contentEquals(displayName) } + + @JvmStatic + fun fromVersion(version: CharSequence) = entries.first { it.version.contentEquals(version) } + } +} + +/** + * JDK versions. + * + * @author Akash Yadav + */ +enum class JdkVersion(val version: String) { + + JDK_17("17"), + JDK_21("21"), + ; + + val displayName = "JDK $version" + + companion object { + + @JvmStatic + fun fromDisplayName(displayName: CharSequence) = + entries.first { it.displayName.contentEquals(displayName) } + + @JvmStatic + fun fromVersion(version: CharSequence) = entries.first { it.version.contentEquals(version) } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/models/IdeSetupArguments.kt b/app/src/main/java/com/itsaky/androidide/models/IdeSetupArguments.kt new file mode 100644 index 0000000000..2d266d0b12 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/models/IdeSetupArguments.kt @@ -0,0 +1,35 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.models + +/** + * Configuration options for IDESetup + * + * @property argumentName The name of the argument. + * @property requiresValue Whether the argument must have a value. + * @author Akash Yadav + */ +enum class IdeSetupArgument(val argumentName: String, val requiresValue: Boolean = false) { + INSTALL_DIR("--install-dir", true), + WITH_CMDLINE_TOOLS("--with-cmdline-tools"), + WITH_GIT("--with-git"), + ASSUME_YES("--assume-yes"), + WITH_OPENSSH("--with-openssh"), + SDK_VERSION("--sdk", true), + JDK_VERSION("--jdk", true) +} diff --git a/app/src/main/res/layout/layout_chip_error.xml b/app/src/main/res/layout/layout_chip_error.xml index b3a09ff9ab..df558792a1 100644 --- a/app/src/main/res/layout/layout_chip_error.xml +++ b/app/src/main/res/layout/layout_chip_error.xml @@ -21,10 +21,6 @@ style="@style/Widget.Material3.Button.OutlinedButton.Icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="8dp" - android:paddingBottom="8dp" - android:clickable="false" - android:focusable="false" android:gravity="center_vertical|start" android:textAppearance="@style/TextAppearance.Material3.BodySmall" android:textColor="?colorOnSurface" diff --git a/app/src/main/res/layout/layout_chip_warning.xml b/app/src/main/res/layout/layout_chip_warning.xml index 9edd508113..ee9c832c60 100644 --- a/app/src/main/res/layout/layout_chip_warning.xml +++ b/app/src/main/res/layout/layout_chip_warning.xml @@ -21,10 +21,6 @@ style="@style/Widget.Material3.Button.OutlinedButton.Icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="8dp" - android:paddingBottom="8dp" - android:clickable="false" - android:focusable="false" android:gravity="center_vertical|start" android:textAppearance="@style/TextAppearance.Material3.BodySmall" android:textColor="?colorOnSurface" diff --git a/app/src/main/res/layout/layout_onboardng_setup_config.xml b/app/src/main/res/layout/layout_onboardng_setup_config.xml new file mode 100644 index 0000000000..2cecfd2ba0 --- /dev/null +++ b/app/src/main/res/layout/layout_onboardng_setup_config.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/main/java/com/itsaky/androidide/utils/Environment.java b/common/src/main/java/com/itsaky/androidide/utils/Environment.java index 5a969e5d39..a53376eb4f 100755 --- a/common/src/main/java/com/itsaky/androidide/utils/Environment.java +++ b/common/src/main/java/com/itsaky/androidide/utils/Environment.java @@ -17,16 +17,22 @@ package com.itsaky.androidide.utils; import android.annotation.SuppressLint; +import android.system.ErrnoException; +import android.system.Os; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.blankj.utilcode.util.FileIOUtils; import com.blankj.utilcode.util.FileUtils; import java.io.File; +import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.UUID; +import kotlin.io.FilesKt; @SuppressLint("SdCardPath") public final class Environment { @@ -211,4 +217,19 @@ private static List blacklistedVariables() { public static File getProjectCacheDir(File projectDir) { return new File(projectDir, ANDROIDIDE_PROJECT_CACHE_DIR); } + + @NonNull + public static File createTempFile() { + var file = newTempFile(); + while (file.exists()) { + file = newTempFile(); + } + + return file; + } + + @NonNull + private static File newTempFile() { + return new File(TMP_DIR, "temp_" + UUID.randomUUID().toString().replace('-', 'X')); + } } diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index ca0567fbf9..00b46fdf11 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -622,7 +622,7 @@ A file save operation is already in progress! SDK Installation Install the development tools - The following tools must be installed for the IDE to work. Clicking the next button will open terminal to install the tools. To install, follow the instructions here.

Or read the documentation]]>.
+ The development tools must be installed for the IDE to work. Clicking the done button will open terminal to install the tools. To install, follow the instructions here.

Or read the documentation]]>.
File Access Permission This app needs permission to access files to function. Please grant permission to continue. Welcome @@ -641,8 +641,13 @@ Heads up! You\'re using cellular data. Heads up! You\'re on a metered network. Disable background data restriction to avoid installation failures. - OpenJDK - Java Development Kit (JDK) is required to build projects with Gradle. - Android SDK - Android SDK is required to build Android projects. + Unable to create terminal session + Automatic installation + Manual installation + Android SDK version + JDK version + With command line tools + Install Git + Install OpenSSH + Cannot create session. New sessions are disabled! diff --git a/termux/termux-app/src/main/assets/data/common/idesetup.sh b/termux/termux-app/src/main/assets/data/common/idesetup.sh new file mode 100755 index 0000000000..2bd4800f0d --- /dev/null +++ b/termux/termux-app/src/main/assets/data/common/idesetup.sh @@ -0,0 +1,373 @@ +#!/bin/bash + +set -eu + +Color_Off='\033[0m' +Red='\033[0;31m' +Green='\033[0;32m' +Blue='\033[0;34m' +Orange="\e[38;5;208m" + +yes='^[Yy][Ee]?[Ss]?$' + +# Defualt values +arch=$(uname -m) +install_dir=$HOME +sdkver_org=34.0.4 +with_cmdline=false +assume_yes=false +manifest="https://raw.githubusercontent.com/AndroidIDEOfficial/androidide-tools/main/manifest.json" +pkgm="pkg" +pkg_curl="libcurl" +pkgs="jq tar" +jdk_version="17" + +print_info() { + # shellcheck disable=SC2059 + printf "${Blue}$1$Color_Off\n" +} + +print_err() { + # shellcheck disable=SC2059 + printf "${Red}$1$Color_Off\n" +} + +print_warn() { + # shellcheck disable=SC2059 + printf "${Orange}$1$Color_Off\n" +} + +print_success() { + # shellcheck disable=SC2059 + printf "${Green}$1$Color_Off\n" +} + +is_yes() { + + msg=$1 + + printf "%s ([y]es/[n]o): " "$msg" + + if [ "$assume_yes" == "true" ]; then + ans="y" + echo $ans + else + read -r ans + fi + + if [[ "$ans" =~ $yes ]]; then + return 0 + fi + + return 1 +} + +check_arg_value() { + option_name="$1" + arg_value="$2" + if [[ -z "$arg_value" ]]; then + print_err "No value provided for $option_name!" >&2 + exit 1 + fi +} + +check_command_exists() { + if command -v "$1" &>/dev/null; then + return + else + print_err "Command '$1' not found!" + exit 1 + fi +} + +# shellcheck disable=SC2068 +install_packages() { + if [ "$assume_yes" == "true" ]; then + $pkgm install $@ -y + else + $pkgm install $@ + fi +} + +print_help() { + echo "AndroidIDE build tools installer" + echo "This script helps you easily install build tools in AndroidIDE." + echo "" + echo "Usage:" + echo "${0} -s 34.0.4 -c -j 17" + echo "This will install Android SDK 34.0.4 with command line tools and JDK 17." + echo "" + echo "Options :" + echo "-i Set the installation directory. Defaults to \$HOME." + echo "-s Android SDK version to download." + echo "-c Download Android SDK with command line tools." + echo "-m Manifest file URL. Defaults to 'manifest.json' in 'androidide-tools' GitHub repository." + echo "-j OpenJDK version to install. Values can be '17' or '21'" + echo "-g Install package: 'git'." + echo "-o Install package: 'git'." + echo "-y Assume \"yes\" as answer to all prompts and run non-interactively." + echo "" + echo "For testing purposes:" + echo "-a CPU architecture. Extracted using 'uname -m' by default." + echo "-p Package manager. Defaults to 'pkg'." + echo "-l Name of curl package that will be installed before starting installation process. Defaults to 'libcurl'." + echo "" + echo "-h Prints this message." +} + +download_and_extract() { + # Display name to use in print messages + name=$1 + + # URL to download from + url=$2 + + # Directory in which the downloaded archive will be extracted + dir=$3 + + # Destination path for downloading the file + dest=$4 + + if [ ! -d "$dir" ]; then + mkdir -p "$dir" + fi + + cd "$dir" + + do_download=true + if [ -f "$dest" ]; then + name=$(basename "$dest") + print_info "File ${name} already exists." + if is_yes "Do you want to skip the download process?"; then + do_download=false + fi + echo "" + fi + + if [ "$do_download" = "true" ]; then + print_info "Downloading $name..." + curl -L -o "$dest" "$url" --http1.1 + print_success "$name has been downloaded." + echo "" + fi + + if [ ! -f "$dest" ]; then + print_err "The downloaded file $name does not exist. Cannot proceed..." + exit 1 + fi + + # Extract the downloaded archive + print_info "Extracting downloaded archive..." + tar xvJf "$dest" && print_info "Extracted successfully" + + echo "" + + # Delete the downloaded file + rm -vf "$dest" + + # cd into the previous working directory + cd - +} + +download_comp() { + nm=$1 + jq_query=$2 + mdir=$3 + dname=$4 + + # Extract the Android SDK URL + print_info "Extracting URL for $nm from manifest..." + url=$(jq -r "${jq_query}" "$downloaded_manifest") + print_success "Found URL: $url" + echo "" + + # Download and extract the Android SDK build tools + download_and_extract "$nm" "$url" "$mdir" "$mdir/$dname.tar.xz" +} + +## NOTE! +## When adding more installation configuration arguments, +# add them in com.itsaky.andridide.models.IdeSetupArgument as well +while [ $# -gt 0 ]; do + case $1 in + -c | --with-cmdline-tools) + shift + with_cmdline=false + ;; + -g | --with-git) + shift + pkgs+=" git" + ;; + -o | --with-openssh) + shift + pkgs+=" openssh" + ;; + -y | --assume-yes) + shift + assume_yes=true + ;; + -i | --install-dir) + shift + check_arg_value "--install-dir" "${1:-}" + install_dir="$1" + ;; + -m | --manifest) + shift + check_arg_value "--manifest" "${1:-}" + manifest="$1" + ;; + -s | --sdk) + shift + check_arg_value "--sdk" "${1:-}" + sdkver_org="$1" + ;; + -j | --jdk) + shift + check_arg_value "--jdk" "${1:-}" + jdk_version="$1" + ;; + -a | --arch) + shift + check_arg_value "--arch" "${1:-}" + arch="$1" + ;; + -p | --package-manager) + shift + check_arg_value "--package-manager" "${1:-}" + pkgm="$1" + ;; + -l | --curl) + shift + check_arg_value "--curl" "${1:-}" + pkg_curl="$1" + ;; + -h | --help) + print_help + exit 0 + ;; + -*) + echo "Invalid option: $1" >&2 + exit 1 + ;; + *) break ;; + esac + shift +done + +if [ "$arch" = "armv7l" ]; then + arch="arm" +fi + +# 64-bit CPU in 32-bit mode +if [ "$arch" = "armv8l" ]; then + arch="arm" +fi + +check_command_exists "$pkgm" + +if [ "$jdk_version" == "21" ]; then + print_warn "OpenJDK 21 support in AndroidIDE is experimental. It may or may not work properly." + print_warn "Also, OpenJDK 21 is only supported in Gradle v8.4 and newer. Older versions of Gradle will NOT work!" + if ! is_yes "Do you still want to install OpenJDK 21?"; then + jdk_version="17" + print_info "OpenJDK version has been reset to '17'" + fi +fi + +if [ "$jdk_version" != "17" ] && [ "$jdk_version" != "21" ]; then + print_err "Invalid JDK version '$jdk_version'. Value can be '17' or '21'." + exit 1 +fi + +sdk_version="_${sdkver_org//'.'/'_'}" + +pkgs+=" $pkg_curl" + +echo "------------------------------------------" +echo "Installation directory : ${install_dir}" +echo "SDK version : ${sdkver_org}" +echo "JDK version : ${jdk_version}" +echo "With command line tools : ${with_cmdline}" +echo "Extra packages : ${pkgs}" +echo "CPU architecture : ${arch}" +echo "------------------------------------------" + +if ! is_yes "Confirm configuration"; then + print_err "Aborting..." + exit 1 +fi + +if [ ! -f "$install_dir" ]; then + print_info "Installation directory does not exist. Creating directory..." + mkdir -p "$install_dir" +fi + +if [ ! command -v "$pkgm" ] &>/dev/null; then + print_err "'$pkgm' command not found. Try installing 'termux-tools' and 'apt'." + exit 1 +fi + +# Update repositories and packages +print_info "Update packages..." + +$pkgm update +if [ "$assume_yes" == "true" ]; then + $pkgm upgrade -y +else + $pkgm upgrade +fi + +# Install required packages +print_info "Installing required packages.." +# shellcheck disable=SC2086 +install_packages $pkgs && print_success "Packages installed" +echo "" + +# Download the manifest.json file +print_info "Downloading manifest file..." +downloaded_manifest="$install_dir/manifest.json" +curl -L -o "$downloaded_manifest" "$manifest" && print_success "Manifest file downloaded" +echo "" + +# Install the Android SDK +download_comp "Android SDK" ".android_sdk" "$install_dir" "android-sdk" + +# Install build tools +download_comp "Android SDK Build Tools" ".build_tools | .${arch} | .${sdk_version}" "$install_dir/android-sdk" "android-sdk-build-tools" + +# Install platform tools +download_comp "Android SDK Platform Tools" ".platform_tools | .${arch} | .${sdk_version}" "$install_dir/android-sdk" "android-sdk-platform-tools" + +if [ "$with_cmdline" = true ]; then + # Install the Command Line tools + download_comp "Command-line tools" ".cmdline_tools" "$install_dir/android-sdk" "cmdline-tools" +fi + +# Install JDK +print_info "Installing package: 'openjdk-$jdk_version'" +install_packages "openjdk-$jdk_version" && print_info "JDK $jdk_version has been installed." + +jdk_dir="$SYSROOT/opt/openjdk" + +print_info "Updating ide-environment.properties..." +print_info "JAVA_HOME=$jdk_dir" +echo "" +props_dir="$SYSROOT/etc" +props="$props_dir/ide-environment.properties" + +if [ ! -d "$props_dir" ]; then + mkdir -p "$props_dir" +fi + +if [ ! -e "$props" ]; then + printf "JAVA_HOME=%s" "$jdk_dir" >"$props" && print_success "Properties file updated successfully!" +else + if is_yes "$props file already exists. Would you like to overwrite it?"; then + printf "JAVA_HOME=%s" "$jdk_dir" >"$props" && print_success "Properties file updated successfully!" + else + print_err "Manually edit $SYSROOT/etc/ide-environment.properties file and set JAVA_HOME and ANDROID_SDK_ROOT." + fi +fi + +rm -vf "$downloaded_manifest" +print_success "Downloads completed. You are ready to go!" diff --git a/termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt b/termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt index 9b09bd231c..15d8c81e64 100644 --- a/termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt +++ b/termux/termux-app/src/main/java/com/itsaky/androidide/activities/TerminalActivity.kt @@ -18,12 +18,21 @@ package com.itsaky.androidide.activities import android.content.ComponentName +import android.content.Intent import android.os.Bundle import android.os.IBinder +import android.util.Log +import android.view.View +import android.widget.Button import androidx.core.content.ContextCompat import androidx.core.view.WindowCompat +import com.itsaky.androidide.terminal.IdesetupSession import com.itsaky.androidide.utils.Environment +import com.itsaky.androidide.utils.ILogger +import com.itsaky.androidide.utils.flashError +import com.termux.R import com.termux.app.TermuxActivity +import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession /** * @author Akash Yadav @@ -35,16 +44,102 @@ class TerminalActivity : TermuxActivity() { override val statusBarColor: Int get() = ContextCompat.getColor(this, android.R.color.black) + private var canAddNewSessions = true + set(value) { + field = value + findViewById(R.id.new_session_button)?.isEnabled = value + } + + companion object { + + private val log = ILogger.newInstance("TerminalActivity") + private const val KEY_TERMINAL_CAN_ADD_SESSIONS = "ide.terminal.sessions.canAddSessions" + + const val EXTRA_ONBOARDING_RUN_IDESETUP = "ide.onboarding.terminal.runIdesetup" + const val EXTRA_ONBOARDING_RUN_IDESETUP_ARGS = "ide.onboarding.terminal.runIdesetup.args" + } + override fun onCreate(savedInstanceState: Bundle?) { val controller = WindowCompat.getInsetsController( window, window.decorView) controller.isAppearanceLightNavigationBars = false controller.isAppearanceLightStatusBars = false super.onCreate(savedInstanceState) + + canAddNewSessions = savedInstanceState?.getBoolean( + KEY_TERMINAL_CAN_ADD_SESSIONS, true) ?: true + } + + override fun onSaveInstanceState(savedInstanceState: Bundle) { + super.onSaveInstanceState(savedInstanceState) + savedInstanceState.putBoolean(KEY_TERMINAL_CAN_ADD_SESSIONS, canAddNewSessions) } override fun onServiceConnected(componentName: ComponentName?, service: IBinder?) { super.onServiceConnected(componentName, service) Environment.mkdirIfNotExits(Environment.TMP_DIR) } + + override fun onCreateNewSession( + isFailsafe: Boolean, + sessionName: String?, + workingDirectory: String? + ) { + if (canAddNewSessions) { + super.onCreateNewSession(isFailsafe, sessionName, workingDirectory) + } else { + flashError(R.string.msg_terminal_new_sessions_disabled) + } + } + + override fun setupTermuxSessionOnServiceConnected( + intent: Intent?, + workingDir: String?, + sessionName: String?, + existingSession: TermuxSession?, + launchFailsafe: Boolean + ) { + if (intent != null) { + val runIdesetup = intent.getBooleanExtra(EXTRA_ONBOARDING_RUN_IDESETUP, false) + val runIdesetupArgs = intent.getStringArrayExtra(EXTRA_ONBOARDING_RUN_IDESETUP_ARGS) + if (runIdesetup && !runIdesetupArgs.isNullOrEmpty()) { + addIdesetupSession(runIdesetupArgs) + return + } + } + + super.setupTermuxSessionOnServiceConnected( + intent, + workingDir, + sessionName, + existingSession, + launchFailsafe + ) + } + + private fun addIdesetupSession(args: Array) { + val script = IdesetupSession.createScript(this) ?: run { + log.error("Failed to add idesetup session. Cannot create script.") + flashError(R.string.msg_cannot_create_terminal_session) + return + } + + Log.d("IdeSetupConfig", "buildIdeSetupArguments: ${args.joinToString(separator = " ")}") + + val session = IdesetupSession.wrap(termuxService.createTermuxSession( + /* executablePath = */ script.absolutePath, + /* arguments = */ args, + /* stdin = */ null, + /* workingDirectory = */ Environment.HOME.absolutePath, + /* isFailSafe = */ false, + /* sessionName = */ "IDE setup" + ), script) + + session ?: run { + flashError(R.string.msg_cannot_create_terminal_session) + return + } + + termuxTerminalSessionClient.setCurrentSession(session.terminalSession) + } } \ No newline at end of file diff --git a/termux/termux-app/src/main/java/com/itsaky/androidide/terminal/IdesetupSession.kt b/termux/termux-app/src/main/java/com/itsaky/androidide/terminal/IdesetupSession.kt new file mode 100644 index 0000000000..cfa5ce352c --- /dev/null +++ b/termux/termux-app/src/main/java/com/itsaky/androidide/terminal/IdesetupSession.kt @@ -0,0 +1,105 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.terminal + +import android.content.Context +import com.itsaky.androidide.managers.ToolsManager +import com.itsaky.androidide.utils.Environment +import com.itsaky.androidide.utils.ILogger +import com.termux.shared.file.FileUtils +import com.termux.shared.shell.command.ExecutionCommand +import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession +import com.termux.terminal.TerminalSession +import java.io.File +import java.nio.charset.StandardCharsets + +/** + * [TermuxSession] implementation that is used to run the `idesetup` script during automatic + * installation. + * + * @author Akash Yadav + */ +class IdesetupSession private constructor( + terminalSession: TerminalSession, + executionCommand: ExecutionCommand, + termuxSessionClient: TermuxSessionClient?, + setStdoutOnExit: Boolean, + private val script: File +) : TermuxSession( + terminalSession, + executionCommand, + termuxSessionClient, + setStdoutOnExit +) { + + companion object { + + private val log = ILogger.newInstance("IdesetupSession") + + @JvmStatic + fun wrap(session: TermuxSession?, script: File) : IdesetupSession? { + return session?.let { IdesetupSession(it, script) } + } + + @JvmStatic + fun createScript(context: Context) : File? { + val script = Environment.createTempFile() + + // write script contents + if (!writeIdesetupScript(context, script)) { + return null + } + + // make it readable and executable-only + FileUtils.setFilePermissions("idesetupScript", script.absolutePath, "r-x") + + return script + } + + private fun writeIdesetupScript(context: Context, script: File): Boolean { + context.assets.open(ToolsManager.getCommonAsset("idesetup.sh")).use { + val error = FileUtils.writeTextToFile("idsetupScript", script.absolutePath, + StandardCharsets.UTF_8, it.readBytes().toString(StandardCharsets.UTF_8), false) + if (error != null) { + log.error("Failed to write idesetup script", error.errorLogString) + return false + } + } + + return true + } + + } + + private constructor(src: TermuxSession, script: File) : this( + src.terminalSession, + src.executionCommand, + src.termuxSessionClient, + src.isSetStdoutOnExit, + script + ) + + override fun finish() { + super.finish() + // Delete the temporary script file once the session is finished + val error = FileUtils.deleteFile("idesetupScript", script.absolutePath, true) + if (error != null) { + log.error(error.errorLogString) + } + } +} \ No newline at end of file diff --git a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java index 9ff7712280..a914a9c9e2 100644 --- a/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java +++ b/termux/termux-app/src/main/java/com/termux/app/TermuxActivity.java @@ -402,16 +402,22 @@ public void onServiceConnected(ComponentName componentName, IBinder service) { sessionName = null; } + boolean launchFailsafe = + intent != null && intent.getBooleanExtra(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, + false); + if (mTermuxService.isTermuxSessionsEmpty()) { if (mIsVisible) { TermuxInstaller.setupBootstrapIfNeeded(TermuxActivity.this, () -> { if (mTermuxService == null) return; // Activity might have been destroyed. try { - boolean launchFailsafe = false; - if (intent != null && intent.getExtras() != null) { - launchFailsafe = intent.getExtras().getBoolean(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, false); - } - mTermuxTerminalSessionActivityClient.addNewSession(launchFailsafe, null, workingDir); + setupTermuxSessionOnServiceConnected( + intent, + workingDir, + sessionName, + null, + launchFailsafe + ); } catch (WindowManager.BadTokenException e) { // Activity finished - ignore. } @@ -421,37 +427,58 @@ public void onServiceConnected(ComponentName componentName, IBinder service) { finishActivityIfNotFinishing(); } } else { + final Optional existingSession = workingDir == null ? Optional.empty() : mTermuxService.getTermuxSessions().stream().filter(session -> Objects.equals( session.getTerminalSession().getCwd(), workingDir)).findFirst(); - boolean launchFailsafe = - intent != null && intent.getBooleanExtra(TERMUX_ACTIVITY.EXTRA_FAILSAFE_SESSION, - false); + setupTermuxSessionOnServiceConnected( + intent, + workingDir, + sessionName, + existingSession.orElse(null), + launchFailsafe + ); + } - if (existingSession.isPresent()) { - // requested to open a session with a specific working directory - // a session is already opened with the provided working directory - final var session = existingSession.get(); + // Update the {@link TerminalSession} and {@link TerminalEmulator} clients. + mTermuxService.setTermuxTerminalSessionClient(mTermuxTerminalSessionActivityClient); + } - if (session.getExecutionCommand().isFailsafe != launchFailsafe) { - // the existing session's failsafe status does not match with the requested - // failsafe status, create a new session - mTermuxTerminalSessionActivityClient.addNewSession(launchFailsafe, sessionName, workingDir); - } else { - mTermuxTerminalSessionActivityClient.setCurrentSession(session.getTerminalSession()); - } - } else if (workingDir != null) { - // working directory is provided, but no session has that specific CWD - mTermuxTerminalSessionActivityClient.addNewSession(launchFailsafe, sessionName, workingDir); + protected void setupTermuxSessionOnServiceConnected( + Intent intent, + String workingDir, + String sessionName, + TermuxSession existingSession, + boolean launchFailsafe + ) { + if (mTermuxService.isTermuxSessionsEmpty()) { + onCreateNewSession(launchFailsafe, sessionName, workingDir); + return; + } + + if (existingSession != null) { + // requested to open a session with a specific working directory + // a session is already opened with the provided working directory + + if (existingSession.getExecutionCommand().isFailsafe != launchFailsafe) { + // the existing session's failsafe status does not match with the requested + // failsafe status, create a new session + onCreateNewSession(launchFailsafe, sessionName, + workingDir); } else { - // no working directory provided - mTermuxTerminalSessionActivityClient.setCurrentSession(mTermuxTerminalSessionActivityClient.getCurrentStoredSessionOrLast()); + mTermuxTerminalSessionActivityClient.setCurrentSession( + existingSession.getTerminalSession()); } + } else if (workingDir != null) { + // working directory is provided, but no session has that specific CWD + onCreateNewSession(launchFailsafe, sessionName, + workingDir); + } else { + // no working directory provided + mTermuxTerminalSessionActivityClient.setCurrentSession( + mTermuxTerminalSessionActivityClient.getCurrentStoredSessionOrLast()); } - - // Update the {@link TerminalSession} and {@link TerminalEmulator} clients. - mTermuxService.setTermuxTerminalSessionClient(mTermuxTerminalSessionActivityClient); } @Override @@ -588,16 +615,20 @@ private void saveTerminalToolbarTextInput(Bundle savedInstanceState) { private void setNewSessionButtonView() { View newSessionButton = findViewById(R.id.new_session_button); - newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionActivityClient.addNewSession(false, null)); + newSessionButton.setOnClickListener(v -> onCreateNewSession(false, null, null)); newSessionButton.setOnLongClickListener(v -> { TextInputDialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null, - R.string.action_create_named_session_confirm, text -> mTermuxTerminalSessionActivityClient.addNewSession(false, text), - R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionActivityClient.addNewSession(true, text), + R.string.action_create_named_session_confirm, text -> onCreateNewSession(false, text, null), + R.string.action_new_session_failsafe, text -> onCreateNewSession(true, text, null), -1, null, null); return true; }); } + protected void onCreateNewSession(boolean isFailsafe, String sessionName, String workingDirectory) { + mTermuxTerminalSessionActivityClient.addNewSession(isFailsafe, sessionName, workingDirectory); + } + private void setToggleKeyboardView() { findViewById(R.id.toggle_keyboard_button).setOnClickListener(v -> { mTermuxTerminalViewClient.onToggleSoftKeyboardRequest(); diff --git a/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java b/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java index 7aa874d1ea..ce16b89786 100644 --- a/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java +++ b/termux/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java @@ -38,7 +38,7 @@ public class TermuxSession { private static final String LOG_TAG = "TermuxSession"; - private TermuxSession(@NonNull final TerminalSession terminalSession, @NonNull final ExecutionCommand executionCommand, + protected TermuxSession(@NonNull final TerminalSession terminalSession, @NonNull final ExecutionCommand executionCommand, final TermuxSessionClient termuxSessionClient, final boolean setStdoutOnExit) { this.mTerminalSession = terminalSession; this.mExecutionCommand = executionCommand; @@ -276,6 +276,14 @@ public TerminalSession getTerminalSession() { return mTerminalSession; } + public TermuxSessionClient getTermuxSessionClient() { + return mTermuxSessionClient; + } + + public boolean isSetStdoutOnExit() { + return mSetStdoutOnExit; + } + public ExecutionCommand getExecutionCommand() { return mExecutionCommand; }