diff --git a/Telegram/BUILD b/Telegram/BUILD
index a8880d2d78..f33c79c946 100644
--- a/Telegram/BUILD
+++ b/Telegram/BUILD
@@ -377,10 +377,12 @@ official_apple_pay_merchants = [
"merchant.privatbank.test.telergramios",
"merchant.privatbank.prod.telergram",
"merchant.paymaster.test.telegramios",
+ #"merchant.paymaster.prod.telegramios",
"merchant.smartglocal.prod.telegramios",
"merchant.smartglocal.test.telegramios",
"merchant.yoomoney.test.telegramios",
#"merchant.org.telegram.Best2pay.test",
+ #"merchant.psbank.test.telegramios",
]
official_bundle_ids = [
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Balloon.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Balloon.tgs
new file mode 100644
index 0000000000..72cd87b655
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Balloon.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Fireworks.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Fireworks.tgs
new file mode 100644
index 0000000000..193ab6be08
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Fireworks.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Hearts.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Hearts.tgs
new file mode 100644
index 0000000000..14940c5f5c
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Hearts.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Joy.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Joy.tgs
new file mode 100644
index 0000000000..8afa88c3f1
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Joy.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Money.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Money.tgs
new file mode 100644
index 0000000000..bc6f9b9f01
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Money.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Party.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Party.tgs
new file mode 100644
index 0000000000..e84afd8a43
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Party.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/Poo.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/Poo.tgs
new file mode 100644
index 0000000000..b9d8d04ac8
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/Poo.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/SuperThumbsDown.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/SuperThumbsDown.tgs
new file mode 100644
index 0000000000..a37e3e6598
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/SuperThumbsDown.tgs differ
diff --git a/Telegram/Telegram-iOS/Resources/DemoAnimations/SuperThumbsUp1.tgs b/Telegram/Telegram-iOS/Resources/DemoAnimations/SuperThumbsUp1.tgs
new file mode 100644
index 0000000000..e593b1c182
Binary files /dev/null and b/Telegram/Telegram-iOS/Resources/DemoAnimations/SuperThumbsUp1.tgs differ
diff --git a/Tests/BUILD b/Tests/BUILD
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/Tests/Common/BUILD b/Tests/Common/BUILD
new file mode 100644
index 0000000000..15c28377d8
--- /dev/null
+++ b/Tests/Common/BUILD
@@ -0,0 +1,16 @@
+
+filegroup(
+ name = "LaunchScreen",
+ srcs = [
+ "Base.lproj/LaunchScreen.xib",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+objc_library(
+ name = "Main",
+ srcs = [
+ "Main/main.m"
+ ],
+ visibility = ["//visibility:public"],
+)
diff --git a/Tests/Common/Base.lproj/LaunchScreen.xib b/Tests/Common/Base.lproj/LaunchScreen.xib
new file mode 100644
index 0000000000..3b02891e01
--- /dev/null
+++ b/Tests/Common/Base.lproj/LaunchScreen.xib
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/Common/Main/main.m b/Tests/Common/Main/main.m
new file mode 100644
index 0000000000..81d976a847
--- /dev/null
+++ b/Tests/Common/Main/main.m
@@ -0,0 +1,7 @@
+#import
+
+int main(int argc, char *argv[]) {
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, @"Application", @"AppDelegate");
+ }
+}
diff --git a/Tests/LottieMesh/BUILD b/Tests/LottieMesh/BUILD
new file mode 100644
index 0000000000..40da9bebbd
--- /dev/null
+++ b/Tests/LottieMesh/BUILD
@@ -0,0 +1,150 @@
+load("@build_bazel_rules_apple//apple:ios.bzl",
+ "ios_application",
+)
+
+load("@build_bazel_rules_swift//swift:swift.bzl",
+ "swift_library",
+)
+
+load("//build-system/bazel-utils:plist_fragment.bzl",
+ "plist_fragment",
+)
+
+filegroup(
+ name = "AppResources",
+ srcs = glob([
+ "Resources/**/*",
+ ], exclude = ["Resources/**/.*"]),
+)
+
+swift_library(
+ name = "Lib",
+ srcs = glob([
+ "Sources/**/*.swift",
+ ]),
+ data = [
+ ":AppResources",
+ ],
+ deps = [
+ "//submodules/LottieMeshSwift:LottieMeshSwift",
+ ],
+)
+
+plist_fragment(
+ name = "BuildNumberInfoPlist",
+ extension = "plist",
+ template =
+ """
+ CFBundleVersion
+ 1
+ """
+)
+
+plist_fragment(
+ name = "VersionInfoPlist",
+ extension = "plist",
+ template =
+ """
+ CFBundleShortVersionString
+ 1.0
+ """
+)
+
+plist_fragment(
+ name = "AppNameInfoPlist",
+ extension = "plist",
+ template =
+ """
+ CFBundleDisplayName
+ Test
+ """
+)
+
+plist_fragment(
+ name = "AppInfoPlist",
+ extension = "plist",
+ template =
+ """
+ CFBundleAllowMixedLocalizations
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ Test
+ CFBundleIdentifier
+ org.telegram.LottieMesh
+ CFBundleName
+ Telegram
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ ITSAppUsesNonExemptEncryption
+
+ LSRequiresIPhoneOS
+
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIFileSharingEnabled
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarStyle
+ UIStatusBarStyleDefault
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+ UIViewEdgeAntialiasing
+
+ UIViewGroupOpacity
+
+ CADisableMinimumFrameDurationOnPhone
+
+ """
+)
+
+ios_application(
+ name = "LottieMesh",
+ bundle_id = "org.telegram.LottieMesh",
+ families = ["iphone", "ipad"],
+ minimum_os_version = "9.0",
+ provisioning_profile = "@build_configuration//provisioning:Wildcard.mobileprovision",
+ infoplists = [
+ ":AppInfoPlist",
+ ":BuildNumberInfoPlist",
+ ":VersionInfoPlist",
+ ],
+ resources = [
+ "//Tests/Common:LaunchScreen",
+ ],
+ frameworks = [
+ ],
+ deps = [
+ "//Tests/Common:Main",
+ ":Lib",
+ ],
+)
diff --git a/Tests/LottieMesh/Resources/Cat.json b/Tests/LottieMesh/Resources/Cat.json
new file mode 100644
index 0000000000..9ed36bd9be
--- /dev/null
+++ b/Tests/LottieMesh/Resources/Cat.json
@@ -0,0 +1 @@
+{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":120,"w":512,"h":512,"nm":"Cat Kissing heart","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","parent":28,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[144.75,81.342,0]},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"f1","parent":4,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[16.902,56.403,0],"to":[-10.812,-9.286,0],"ti":[-4.15,9.939,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[7.578,18.211,0],"to":[-3.682,8.922,0],"ti":[-11.474,-9.33,0]},{"t":100,"s":[16.902,56.403,0]}]},"a":{"a":0,"k":[41.268,20.785,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0.651,-0.673],[8.733,-1.767],[-19.861,3.406],[-2.625,-8.662],[-1,0.306],[12.5,-2.186],[-32.67,3.532],[-9.545,2.662]],"o":[[-7.894,8.108],[-18.845,2.227],[9.22,-1.644],[0.979,3.228],[-9.903,3.028],[-27.269,4.551],[11.584,-0.098],[1.044,-0.292]],"v":[[22.717,-18.677],[-4.571,-15.821],[6.137,12.114],[33.53,0.445],[31.529,4.186],[7.089,18.038],[-1.84,-22.491],[21.727,-20.236]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0.793,-0.267],[8.733,-1.767],[-21.574,0.524],[-8.505,-5.453],[1.254,0.321],[7.891,-1.169],[-32.67,3.532],[-9.454,0.339]],"o":[[-10.484,3.106],[-19.463,2.918],[10.711,-0.207],[2.701,1.732],[-6.741,1.29],[-27.325,3.017],[11.584,-0.098],[1.054,-0.034]],"v":[[26.863,-13.654],[-3.731,-17.014],[2.892,8.287],[24.973,7.108],[20.51,8.322],[3.334,13.632],[-1.853,-22.754],[27.297,-16.351]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0.929,0.119],[8.733,-1.767],[-23.207,-2.223],[-1.817,-2.005],[3.403,0.335],[3.497,-0.198],[-32.67,3.532],[-9.368,-1.877]],"o":[[-12.954,-1.662],[-20.051,3.577],[12.132,1.162],[2.265,2.499],[-3.727,-0.367],[-27.379,1.554],[11.584,-0.098],[1.063,0.213]],"v":[[30.815,-8.865],[-2.93,-18.152],[-0.201,4.64],[15.987,10.187],[9.335,9.402],[-0.247,9.432],[-1.866,-23.005],[32.608,-12.648]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0.871,-0.045],[8.733,-1.767],[-22.513,-1.055],[-4.661,-3.471],[2.489,0.329],[5.366,-0.611],[-32.67,3.532],[-9.405,-0.935]],"o":[[-11.903,0.366],[-19.801,3.296],[11.528,0.58],[2.451,2.173],[-5.009,0.337],[-27.356,2.176],[11.584,-0.098],[1.059,0.108]],"v":[[29.134,-10.902],[-3.271,-17.668],[1.115,6.191],[19.808,8.877],[14.087,8.943],[1.276,11.218],[-1.861,-22.898],[36.162,-12.839]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65,"s":[{"i":[[0.793,-0.267],[8.733,-1.767],[-21.574,0.524],[-8.505,-5.453],[1.254,0.321],[7.891,-1.169],[-32.67,3.532],[-9.454,0.339]],"o":[[-10.484,3.106],[-19.463,2.918],[10.711,-0.207],[2.701,1.732],[-6.741,1.29],[-27.325,3.017],[11.584,-0.098],[1.054,-0.034]],"v":[[26.863,-13.654],[-3.731,-17.014],[2.892,8.287],[24.973,7.108],[20.51,8.322],[3.334,13.632],[-1.853,-22.754],[27.297,-16.351]],"c":true}]},{"t":100,"s":[{"i":[[0.651,-0.673],[8.733,-1.767],[-19.861,3.406],[-2.625,-8.662],[-1,0.306],[12.5,-2.186],[-32.67,3.532],[-9.545,2.662]],"o":[[-7.894,8.108],[-18.845,2.227],[9.22,-1.644],[0.979,3.228],[-9.903,3.028],[-27.269,4.551],[11.584,-0.098],[1.044,-0.292]],"v":[[22.717,-18.677],[-4.571,-15.821],[6.137,12.114],[33.53,0.445],[31.529,4.186],[7.089,18.038],[-1.84,-22.491],[21.727,-20.236]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[34.759,22.839]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[-9.375,0.938],[6.562,4.312]],"o":[[-12.188,3.938],[9.375,-0.937],[-6.562,-4.313]],"v":[[-6.437,-5],[-0.687,8],[12.063,-4.625]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[-9.375,0.938],[6.562,4.312]],"o":[[-12.188,3.938],[9.375,-0.937],[-6.562,-4.313]],"v":[[-7.605,-7.323],[-3.029,-8.211],[10.895,-6.948]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[-9.375,0.938],[6.562,4.312]],"o":[[-12.188,3.938],[9.375,-0.937],[-6.562,-4.313]],"v":[[-6.437,-5],[-0.687,8],[12.063,-4.625]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.39199999641,0.611999990426,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[35.293,11.008]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[5,-3],[-7,-9],[-8,2],[-7.143,4.495]],"o":[[-4,-5],[-5,3],[7,9],[8,-2],[7.417,-4.666]],"v":[[3.042,-13],[-18.958,-15],[-20.958,8],[2.042,16],[20.542,0.916]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25,"s":[{"i":[[1.874,0.695],[6.475,-3.732],[-7,-9],[-9.105,4.499],[-7.143,4.495]],"o":[[-4.562,-4.055],[-5.035,2.939],[7,9],[8.308,-3.769],[2.475,-4.597]],"v":[[3.873,-14.069],[-19.066,-15.353],[-22.312,6.098],[3.572,11.589],[22.755,-0.962]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[5.712,2.12],[9.496,-5.232],[-7,-9],[-9.131,-6.24],[-7.143,4.495]],"o":[[-5.712,-2.12],[-5.107,2.814],[7,9],[8,-2],[-7.646,-4.456]],"v":[[5.575,-16.258],[-19.287,-16.076],[-25.084,2.203],[8.536,12.446],[27.288,-4.807]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75,"s":[{"i":[[1.874,0.695],[6.475,-3.732],[-7,-9],[-9.105,4.499],[-7.143,4.495]],"o":[[-4.562,-4.055],[-5.035,2.939],[7,9],[8.308,-3.769],[2.475,-4.597]],"v":[[3.873,-14.069],[-19.066,-15.353],[-22.312,6.098],[3.572,11.589],[22.755,-0.962]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[5,-3],[-7,-9],[-8,2],[-7.143,4.495]],"o":[[-4,-5],[-5,3],[7,9],[8,-2],[7.417,-4.666]],"v":[[3.042,-13],[-18.958,-15],[-20.958,8],[2.042,16],[20.542,0.916]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[41.94,21.383]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"f2","parent":4,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[-2.767,39.504,0],"to":[-1.188,-2.175,0],"ti":[-1.923,2.047,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[-2.018,31.694,0],"to":[-1.855,1.914,0],"ti":[-1.109,-2.178,0]},{"t":100,"s":[-2.767,39.504,0]}]},"a":{"a":0,"k":[26.122,23.263,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0.756,-0.2],[10.97,-6.857],[-1.658,-5.764],[-8.699,0.471],[3.793,-0.425],[4.467,6.13],[-13.35,2.744],[-1.28,-0.875]],"o":[[-7.171,1.887],[-4.457,2.666],[2.673,8.425],[4.046,-0.22],[-12.093,1.336],[-8.359,-11.275],[12.733,-2.744],[1.179,0.806]],"v":[[22.538,-7.906],[-5.818,-11.696],[-11.643,3.163],[11.24,15.109],[11.836,21.079],[-15.357,10.918],[-3.292,-19.671],[22.538,-9.906]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0.756,-0.2],[9.396,-1.276],[-0.159,-8.296],[-6.871,-2.834],[3.795,-0.409],[4.224,10.934],[-13.35,2.744],[-1.28,-0.875]],"o":[[-7.171,1.887],[-5.267,0.715],[0.25,13.056],[3.746,1.545],[-13.734,1.479],[-3.273,-8.473],[12.733,-2.744],[1.179,0.806]],"v":[[22.538,-7.906],[-2.349,-14.456],[-15.161,-3.212],[14.168,11.861],[8.431,13.362],[-20.118,0.478],[-3.292,-19.671],[22.538,-9.906]],"c":true}]},{"t":100,"s":[{"i":[[0.756,-0.2],[10.97,-6.857],[-1.658,-5.764],[-8.699,0.471],[3.793,-0.425],[4.467,6.13],[-13.35,2.744],[-1.28,-0.875]],"o":[[-7.171,1.887],[-4.457,2.666],[2.673,8.425],[4.046,-0.22],[-12.093,1.336],[-8.359,-11.275],[12.733,-2.744],[1.179,0.806]],"v":[[22.538,-7.906],[-5.818,-11.696],[-11.643,3.163],[11.24,15.109],[11.836,21.079],[-15.357,10.918],[-3.292,-19.671],[22.538,-9.906]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[23.966,22.665]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[-8.188,-1.187],[4.5,6.375]],"o":[[-7.125,0.75],[8.187,1.188],[-4.5,-6.375]],"v":[[-5.969,-7.063],[-7.469,5.188],[11.156,0.688]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[-8.231,-0.842],[4.5,6.375]],"o":[[-7.125,0.75],[14.536,1.487],[-4.5,-6.375]],"v":[[-5.969,-7.063],[-7.165,-5.362],[11.157,0.688]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[-8.188,-1.187],[4.5,6.375]],"o":[[-7.125,0.75],[8.187,1.188],[-4.5,-6.375]],"v":[[-5.969,-7.063],[-7.469,5.188],[11.156,0.688]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.39199999641,0.611999990426,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[30.347,13.072]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[4.666,-6.333],[-3,-6],[-10,1]],"o":[[-7,-8],[-4.667,6.334],[3,6],[10,-1]],"v":[[15,-8.667],[-12.333,-13.001],[-16,10.333],[9,18.333]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[6.92,-3.741],[-1.692,-6.098],[-17.478,-1.491]],"o":[[-7,-8],[-4.634,2.506],[3.335,12.017],[10.014,0.854]],"v":[[15,-8.667],[-12.625,-13.957],[-19.628,-1.106],[11.685,12.153]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[4.666,-6.333],[-3,-6],[-10,1]],"o":[[-7,-8],[-4.667,6.334],[3,6],[10,-1]],"v":[[15,-8.667],[-12.333,-13.001],[-16,10.333],[9,18.333]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[26.504,22.426]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"paw","sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":45,"s":[107]},{"t":100,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[111.441,291.275,0],"to":[15.458,-25.875,0],"ti":[-18.418,-3.424,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[183.941,262.775,0],"to":[-17.832,-3.201,0],"ti":[15.224,-27.332,0]},{"t":100,"s":[111.441,291.275,0]}]},"a":{"a":0,"k":[58.556,54.608,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[6.209,-5.835],[-7.703,-6.298],[-12.093,-4.587],[0.908,-0.236],[0,0],[13.005,13.809],[-5.857,11.364],[-0.037,-3.497]],"o":[[-11.16,10.306],[7.74,6.78],[0.881,0.334],[0,0],[-14.998,3.791],[-8.334,-8.919],[6.873,-13.117],[0.031,2.937]],"v":[[-12.669,-16.371],[-7.044,17.83],[26.777,14.898],[26.678,16.739],[26.635,16.75],[-13.581,19.769],[-21.801,-14.878],[10.484,-30.081]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25,"s":[{"i":[[17.681,-13.462],[-5.195,-3.752],[-4.316,-1.138],[0.908,-0.236],[0,0],[7.616,6.279],[-5.857,11.364],[-1.898,-5.319]],"o":[[-11.16,10.306],[5.195,3.752],[4.245,-0.016],[0,0],[-4.356,0.822],[-8.14,-7.079],[12.606,-17.343],[0.987,2.766]],"v":[[-13.1,-16.985],[-9.293,9.312],[11.728,15.879],[14.154,19.355],[11.429,19.77],[-13.505,12.501],[-21.801,-14.878],[21.891,-30.155]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[6.209,-5.835],[-8.027,-3.588],[-2.125,-0.389],[-12.491,-10.035],[1.162,1.384],[8.488,4.463],[-5.857,11.364],[-0.037,-3.497]],"o":[[-11.16,10.306],[1.656,0.74],[13.201,2.417],[1.388,1.115],[-2.312,-2.754],[-7.453,-3.919],[6.873,-13.117],[0.031,2.937]],"v":[[-12.669,-16.371],[-7.853,13.045],[1.242,15.385],[32.684,23.987],[27.093,25.302],[-11.742,16.592],[-21.801,-14.878],[10.484,-30.081]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75,"s":[{"i":[[17.681,-13.462],[-5.195,-3.752],[-4.316,-1.138],[0.908,-0.236],[0,0],[7.616,6.279],[-5.857,11.364],[-1.898,-5.319]],"o":[[-11.16,10.306],[5.195,3.752],[4.245,-0.016],[0,0],[-4.356,0.822],[-8.14,-7.079],[12.606,-17.343],[0.987,2.766]],"v":[[-13.1,-16.985],[-9.293,9.312],[11.728,15.879],[14.154,19.355],[11.429,19.77],[-13.505,12.501],[-21.801,-14.878],[21.891,-30.155]],"c":true}]},{"t":100,"s":[{"i":[[6.209,-5.835],[-7.703,-6.298],[-12.093,-4.587],[0.908,-0.236],[0,0],[13.005,13.809],[-5.857,11.364],[-0.037,-3.497]],"o":[[-11.16,10.306],[7.74,6.78],[0.881,0.334],[0,0],[-14.998,3.791],[-8.334,-8.919],[6.873,-13.117],[0.031,2.937]],"v":[[-12.669,-16.371],[-7.044,17.83],[26.777,14.898],[26.678,16.739],[26.635,16.75],[-13.581,19.769],[-21.801,-14.878],[10.484,-30.081]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[27.909,41.177]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[7.705,8.101],[-4.791,-0.109],[1.39,2.233],[6.232,1.487]],"o":[[7.036,12.193],[10.912,0.249],[-1.07,-1.718],[-8.815,-2.103]],"v":[[7.312,41.849],[27.461,58.027],[36.406,57.558],[28.732,54.731]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":25,"s":[{"i":[[7.705,8.101],[-4.791,-0.109],[1.39,2.233],[6.232,1.487]],"o":[[7.036,12.193],[10.912,0.249],[-1.07,-1.718],[-8.815,-2.103]],"v":[[7.312,41.849],[30.461,57.652],[39.05,58.965],[27.521,56.399]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[7.705,8.101],[-10.915,0.064],[4.829,11.063],[8.986,1.174]],"o":[[7.909,17.319],[19.18,-0.113],[-1.309,-2.998],[-8.986,-1.174]],"v":[[7.312,41.849],[37.533,60.321],[68.597,59.319],[49.423,51.326]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":75,"s":[{"i":[[7.705,8.101],[-4.791,-0.109],[1.39,2.233],[6.232,1.487]],"o":[[7.036,12.193],[10.912,0.249],[-1.07,-1.718],[-8.815,-2.103]],"v":[[7.312,41.849],[30.461,57.652],[39.05,58.965],[27.521,56.399]],"c":true}]},{"t":100,"s":[{"i":[[7.705,8.101],[-4.791,-0.109],[1.39,2.233],[6.232,1.487]],"o":[[7.036,12.193],[10.912,0.249],[-1.07,-1.718],[-8.815,-2.103]],"v":[[7.312,41.849],[27.461,58.027],[36.406,57.558],[28.732,54.731]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439215686275,0.380392156863,0.462745098039,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[5.988,3.7]],"o":[[-0.133,-8.013],[0,0]],"v":[[4.471,10.997],[-5.334,-11.612]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25,"s":[{"i":[[0,0],[16.114,0.14]],"o":[[-0.133,-8.013],[0,0]],"v":[[4.471,10.996],[-23.015,-14.798]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[29.161,-11.697]],"o":[[-0.133,-8.013],[0,0]],"v":[[4.471,10.997],[-38.222,-13.226]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75,"s":[{"i":[[0,0],[16.114,0.14]],"o":[[-0.133,-8.013],[0,0]],"v":[[4.471,10.996],[-23.015,-14.798]],"c":false}]},{"t":100,"s":[{"i":[[0,0],[5.988,3.7]],"o":[[-0.133,-8.013],[0,0]],"v":[[4.471,10.997],[-5.334,-11.612]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[68.085,25.996]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[-7.778,-1.46],[-3.058,0.611],[-8,9],[3.43,2.535],[-0.883,1.684],[1.073,1.314],[0,0]],"o":[[2.301,0.432],[0,0],[5.054,-5.686],[-1.529,-1.13],[0.528,-1.008],[-7.042,-8.625],[-7.215,3.25]],"v":[[-12.089,9.48],[-4.046,9.312],[15.954,10.313],[13.852,-2.398],[12.546,-7.28],[11.954,-10.688],[-13.794,-5.954]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[-7.778,-1.46],[-3.058,0.611],[-6.645,-4.976],[3.43,2.535],[1.831,0.512],[1.303,0.154],[0,0]],"o":[[2.301,0.432],[0,0],[6.089,4.56],[-1.529,-1.13],[-2.469,-0.69],[-3.42,-0.405],[-6.52,-2.658]],"v":[[-8.944,-11.872],[-0.715,-13.142],[19.452,-7.749],[15.245,-10.666],[10.002,-13.037],[5.412,-13.916],[-9.252,-12.049]],"c":true}]},{"t":100,"s":[{"i":[[-7.778,-1.46],[-3.058,0.611],[-8,9],[3.43,2.535],[-0.883,1.684],[1.073,1.314],[0,0]],"o":[[2.301,0.432],[0,0],[5.054,-5.686],[-1.529,-1.13],[0.528,-1.008],[-7.042,-8.625],[-7.215,3.25]],"v":[[-12.089,9.48],[-4.046,9.312],[15.954,10.313],[13.852,-2.398],[12.546,-7.28],[11.954,-10.688],[-13.794,-5.954]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.39199999641,0.611999990426,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[41.661,23.688]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[-1,3],[6.99,7.542],[13.008,-12.252],[-10,-9],[-13,-1]],"o":[[2.846,-8.538],[-6.99,-7.542],[-13.008,12.252],[10,9],[13,1]],"v":[[34.077,3.5],[25.077,-23.5],[-23.923,-18.5],[-18.923,20.5],[17.077,16.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25,"s":[{"i":[[-1,3],[6.99,7.542],[13.008,-12.252],[-10.087,-8.9],[-13,-1]],"o":[[2.846,-8.538],[-6.99,-7.542],[-13.008,12.252],[9.4,8.317],[13,1]],"v":[[34.077,3.5],[25.077,-23.5],[-23.923,-18.5],[-19.657,12.64],[17.1,17.136]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[-1,3],[6.99,7.542],[13.008,-12.252],[-10.266,-8.695],[-11.542,-6.348]],"o":[[2.846,-8.538],[-6.99,-7.542],[-13.008,12.252],[8.17,6.919],[11.425,6.283]],"v":[[34.077,3.5],[25.077,-23.5],[-23.923,-18.5],[-22.185,14.962],[21.634,22.427]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75,"s":[{"i":[[-1,3],[6.99,7.542],[13.008,-12.252],[-10.087,-8.9],[-13,-1]],"o":[[2.846,-8.538],[-6.99,-7.542],[-13.008,12.252],[9.4,8.317],[13,1]],"v":[[34.077,3.5],[25.077,-23.5],[-23.923,-18.5],[-19.657,12.64],[17.1,17.136]],"c":true}]},{"t":100,"s":[{"i":[[-1,3],[6.99,7.542],[13.008,-12.252],[-10,-9],[-13,-1]],"o":[[2.846,-8.538],[-6.99,-7.542],[-13.008,12.252],[10,9],[13,1]],"v":[[34.077,3.5],[25.077,-23.5],[-23.923,-18.5],[-18.923,20.5],[17.077,16.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[37.538,40.501]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"f3","parent":4,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[4.619,25.343,0],"to":[-3.608,6.724,0],"ti":[-3.478,-6.387,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[5.5,47.034,0],"to":[-3.684,-6.408,0],"ti":[-3.401,6.708,0]},{"t":100,"s":[4.619,25.343,0]}]},"a":{"a":0,"k":[37.004,30.342,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[8,-2],[-3,-8],[-2,6]],"o":[[-12,-9],[-8,2],[3,8],[2,-6]],"v":[[19.5,-3.5],[-8.5,-13.5],[-18.5,7.5],[19.5,9.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[8,-2],[-7.921,-9.107],[-13.277,-5.057]],"o":[[-12,-9],[-8,2],[8.122,9.339],[5.91,2.251]],"v":[[19.5,-3.5],[-8.5,-13.5],[-20.347,2.313],[19.5,9.5]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[8,-2],[-3,-8],[-2,6]],"o":[[-12,-9],[-8,2],[3,8],[2,-6]],"v":[[19.5,-3.5],[-8.5,-13.5],[-18.5,7.5],[19.5,9.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[36.5,30.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[-6.438,-2.687],[-1.687,3.188],[4.437,3]],"o":[[-9.688,2.5],[6.438,2.688],[1.688,-3.187],[-4.438,-3]],"v":[[-0.874,-6.469],[-8.749,4.156],[10.876,5.031],[10.751,-5.219]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[-6.572,2.341],[-4.068,-1.048],[4.437,3]],"o":[[-9.688,2.5],[7.594,-2.706],[3.492,0.9],[-4.438,-3]],"v":[[-0.874,-6.469],[-8.495,-4.418],[9.323,-5.605],[10.751,-5.219]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[-6.438,-2.687],[-1.687,3.188],[4.437,3]],"o":[[-9.688,2.5],[6.438,2.688],[1.688,-3.187],[-4.438,-3]],"v":[[-0.874,-6.469],[-8.749,4.156],[10.876,5.031],[10.751,-5.219]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.39199999641,0.611999990426,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[30.624,24.343]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[8,-2],[-3,-8],[-2,6]],"o":[[-12,-9],[-8,2],[3,8],[2,-6]],"v":[[19.5,-3.5],[-8.5,-13.5],[-18.5,7.5],[19.5,9.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[{"i":[[0,0],[8,-2],[-7.921,-9.107],[-13.277,-5.057]],"o":[[-12,-9],[-8,2],[8.122,9.339],[5.91,2.251]],"v":[[19.5,-3.5],[-8.5,-13.5],[-20.347,2.313],[19.5,9.5]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[8,-2],[-3,-8],[-2,6]],"o":[[-12,-9],[-8,2],[3,8],[2,-6]],"v":[[19.5,-3.5],[-8.5,-13.5],[-18.5,7.5],[19.5,9.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439215689898,0.380392163992,0.46274510026,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[36.5,30.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":3,"nm":"Null heart","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":-10},"p":{"a":0,"k":[245.089,223.749,0]},"a":{"a":0,"k":[80.714,97.833,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"heart","parent":6,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102,"s":[100]},{"t":103,"s":[0]}]},"r":{"a":1,"k":[{"i":{"x":[0.189],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[10]},{"t":105,"s":[30]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[80.714,97.833,0],"to":[-4.609,-6.736,0],"ti":[-3.364,4.442,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":60,"s":[81.349,78.398,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80,"s":[81.349,78.398,0],"to":[-14.819,-10.736,0],"ti":[-14.105,157.019,0]},{"t":105,"s":[-52.15,-44.145,0]}]},"a":{"a":0,"k":[80.714,97.833,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":45,"s":[0,0,100]},{"t":105,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.558,-4.781],[2.924,-0.08],[0.219,0.653]],"o":[[-2.251,6.795],[-0.723,0.02],[-6.051,-18.128]],"v":[[4.379,-0.723],[1.682,9.603],[0.114,8.506]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.620000023935,0.008000000785,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[52.977,37.118]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-4.472,1.491],[-3.206,18.21],[14.833,3.5],[3.417,-14.708],[9.453,-8.569],[-20.125,-12.875]],"o":[[4.5,-1.5],[3.42,-19.427],[-14.483,-3.417],[0,0],[-13.375,12.125],[16.471,10.537]],"v":[[19.978,40.609],[41.103,-0.516],[24.603,-38.683],[-5.648,-19.266],[-31.148,-20.266],[-19.398,27.859]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.620000023935,0.008000000785,0.340999977261,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[59.522,57.1]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.125,2.25],[-2.437,-0.375],[1.875,-2.813]],"o":[[-0.33,-5.932],[2.438,0.375],[-1.875,2.812]],"v":[[-3.867,3.625],[1.759,-5.5],[0.509,2.625]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.501999978458,0.776000019148,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[64.033,37.542]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.597,-0.418],[0.438,-5.75],[-5.187,-4.187],[-0.687,6.875]],"o":[[-5.166,0.469],[-0.437,5.75],[3.581,2.89],[1.03,-10.293]],"v":[[2.878,-15.096],[-7.038,-4.063],[-1.038,12.624],[0.837,-3.063]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.501999978458,0.776000019148,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[34.225,55.648]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.5,3.313],[-7.843,6.138],[-0.171,14.548],[6.125,6.625],[-0.713,1.695],[-6.653,-12.938],[5.232,-3.113]],"o":[[0,0],[7.666,-6],[0.136,-11.629],[-4.735,-5.122],[0.713,-1.695],[10.914,21.229],[-5.232,3.113]],"v":[[-26.625,31.541],[-8.458,30.333],[3.261,-8.902],[-4.25,-34.834],[-10.125,-39.084],[15.711,-27.646],[-1,37.666]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823999980852,0.016000001571,0.501999978458,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[82,59.168]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.475,18.432],[9.07,3.416],[4.25,-15.875],[12.237,-7.231],[-13.886,-10.392],[-9.621,-0.165]],"o":[[1.916,-23.942],[-9.071,-3.415],[0,0],[-21.676,12.81],[14.476,10.835],[5.881,0.1]],"v":[[44.099,-1.657],[28.092,-35.997],[-1.265,-18.217],[-24.339,-21.799],[-14.867,27.484],[27.909,39.312]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.156999999402,0.528999956916,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[55.39,56.301]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"heart 9","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.189],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":77,"s":[-19.681]},{"t":102,"s":[0.319]}]},"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":97,"s":[63.394,65.09,0],"to":[51.309,11.913,0],"ti":[0,0,0]},{"t":117,"s":[133.266,127.688,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":42,"s":[0,0,100]},{"i":{"x":[0.576,0.576,0.576],"y":[0.599,0.599,23.85]},"o":{"x":[0.17,0.17,0.17],"y":[0,0,0]},"t":97,"s":[100.318,100.318,100]},{"i":{"x":[0.836,0.836,0.836],"y":[1,1,1]},"o":{"x":[0.408,0.408,0.408],"y":[0.623,0.623,-26.829]},"t":106,"s":[43.173,43.173,100]},{"t":117,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-3,"op":177,"st":-3,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"heart 8","parent":7,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":99,"s":[63.394,65.09,0],"to":[-12.835,49.669,0],"ti":[0,0,0]},{"t":119,"s":[85.951,183.108,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":44,"s":[0,0,100]},{"i":{"x":[0.565,0.565,0.565],"y":[0.605,0.605,18.812]},"o":{"x":[0.18,0.18,0.18],"y":[0,0,0]},"t":99,"s":[100.318,100.318,100]},{"i":{"x":[0.841,0.841,0.841],"y":[1,1,1]},"o":{"x":[0.384,0.384,0.384],"y":[0.533,0.533,-29.239]},"t":106,"s":[55.072,55.072,100]},{"t":119,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-1,"op":179,"st":-1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"heart 7","parent":7,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":98,"s":[63.394,65.09,0],"to":[37.549,-61.843,0],"ti":[0,0,0]},{"t":118,"s":[187.317,21.394,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":43,"s":[0,0,100]},{"i":{"x":[0.57,0.57,0.57],"y":[0.599,0.599,21.437]},"o":{"x":[0.175,0.175,0.175],"y":[0,0,0]},"t":98,"s":[100.318,100.318,100]},{"i":{"x":[0.839,0.839,0.839],"y":[1,1,1]},"o":{"x":[0.397,0.397,0.397],"y":[0.577,0.577,-28.27]},"t":106,"s":[49.155,49.155,100]},{"t":118,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-2,"op":178,"st":-2,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"heart 6","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.189],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[-19.681]},{"t":101,"s":[0.319]}]},"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":96,"s":[63.394,65.09,0],"to":[-62.756,-13.289,0],"ti":[0,0,0]},{"t":116,"s":[-12.34,101.557,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":41,"s":[0,0,100]},{"i":{"x":[0.583,0.583,0.583],"y":[0.603,0.603,26]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":96,"s":[100.318,100.318,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.417,0.417,0.417],"y":[0.675,0.675,-25]},"t":106,"s":[37.159,37.159,100]},{"t":116,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-4,"op":176,"st":-4,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"heart 5","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.189],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":78,"s":[-19.681]},{"t":103,"s":[0.319]}]},"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":98,"s":[63.394,65.09,0],"to":[67.385,-10.433,0],"ti":[0,0,0]},{"t":118,"s":[174.241,84.573,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":43,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":98,"s":[100.318,100.318,100]},{"t":118,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-2,"op":178,"st":-2,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"heart 4","parent":7,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":100,"s":[63.394,65.09,0],"to":[-53.484,38.126,0],"ti":[0,0,0]},{"t":120,"s":[24.859,164.373,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":45,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":100,"s":[100.318,100.318,100]},{"t":120,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"heart 3","parent":7,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":99,"s":[63.394,65.09,0],"to":[-3.869,-69.648,0],"ti":[0,0,0]},{"t":119,"s":[130.36,-25.451,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":44,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":99,"s":[100.318,100.318,100]},{"t":119,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-1,"op":179,"st":-1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"heart 2","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.189],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":77,"s":[-19.681]},{"t":102,"s":[0.319]}]},"p":{"a":1,"k":[{"i":{"x":0.189,"y":1},"o":{"x":0.167,"y":0},"t":97,"s":[63.394,65.09,0],"to":[-34.617,-57.318,0],"ti":[0,0,0]},{"t":117,"s":[-31.348,31.057,0]}]},"a":{"a":0,"k":[66.22,63.693,0]},"s":{"a":1,"k":[{"i":{"x":[0.189,0.189,0.189],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":42,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":97,"s":[100.318,100.318,100]},{"t":117,"s":[0,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14.788,14.788]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529411765,0.01568627451,0.501960784314,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[66.22,63.693]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":-3,"op":177,"st":-3,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 2","parent":25,"sr":1,"ks":{"p":{"a":0,"k":[2.759,85.47,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[36.962,-2.672],[18.863,70.063]],"o":[[-55.916,4.042],[-19.074,-70.847]],"v":[[-0.674,-58.611],[-133.389,-154.947]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[0]},{"t":109,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":85,"s":[0]},{"t":103,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 1","parent":25,"sr":1,"ks":{"p":{"a":0,"k":[2.759,85.47,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[35.36,-11.092],[18.863,70.063]],"o":[[-55.87,17.525],[-19.074,-70.847]],"v":[[-0.674,-58.611],[-141.474,-121.937]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":94,"s":[0]},{"t":113,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":89,"s":[0]},{"t":107,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"f4","parent":4,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[37.738,13.01,0],"to":[-0.376,4.472,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[35.485,39.841,0],"to":[0,0,0],"ti":[-0.376,4.472,0]},{"t":100,"s":[37.738,13.01,0]}]},"a":{"a":0,"k":[44.123,32.01,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.894,4.735],[8,0],[10,-6],[-4,-5],[0,0]],"o":[[-2,-5],[-8,0],[-10,6],[4,5],[0,0]],"v":[[27.053,4.5],[10.053,-6.5],[-18.947,-9.5],[-23.947,10.5],[5.053,14.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[43.947,30.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1,3],[6,-1],[-1.125,-1.625],[-6,2]],"o":[[-1.14,-3.42],[-6,1],[1.125,1.625],[6,-2]],"v":[[10.125,-2.5],[-1.875,-7.5],[-10,1.875],[0.125,6.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.39199999641,0.611999990426,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[29.875,32.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.838,5.03],[8,0],[10,-6],[-4,-5],[0,0]],"o":[[-1,-6],[-8,0],[-10,6],[4,5],[0,0]],"v":[[27.581,4.5],[10.581,-6.5],[-18.419,-9.5],[-23.419,10.5],[5.581,14.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[43.419,30.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"arm","parent":4,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":45,"s":[-46]},{"t":100,"s":[0]}]},"p":{"a":0,"k":[49.516,39.146,0]},"a":{"a":0,"k":[35.9,36.357,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[17.013,22.683],[-7,-13],[-4,-33],[-22.75,-8.167]],"o":[[-8.159,-24.976],[-9.159,-12.212],[7,13],[4,33],[0,0]],"v":[[45.768,-1.733],[-5.768,-85.769],[-38.768,-51.769],[-23.768,16.231],[26.44,97.981]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[13.927,25.823],[-7,-13],[-4,-33],[-24.518,-5.842]],"o":[[-8.159,-24.976],[-7.254,-13.262],[7,13],[4,33],[0,0]],"v":[[45.768,-1.733],[-6.04,-84.749],[-43.223,-65.617],[-23.768,16.231],[30.074,89.313]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[0,0],[10.985,28.818],[-7,-13],[-4,-33],[-26.203,-3.625]],"o":[[-8.159,-24.976],[-5.437,-14.264],[7,13],[4,33],[0,0]],"v":[[45.768,-1.733],[-6.3,-83.777],[-40.255,-58.882],[-23.768,16.231],[33.539,81.05]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[13.927,25.823],[-7,-13],[-4,-33],[-24.518,-5.842]],"o":[[-8.159,-24.976],[-7.254,-13.262],[7,13],[4,33],[0,0]],"v":[[45.768,-1.733],[-6.04,-84.749],[-43.223,-65.617],[-23.768,16.231],[30.074,89.313]],"c":false}]},{"t":100,"s":[{"i":[[0,0],[17.013,22.683],[-7,-13],[-4,-33],[-22.75,-8.167]],"o":[[-8.159,-24.976],[-9.159,-12.212],[7,13],[4,33],[0,0]],"v":[[45.768,-1.733],[-5.768,-85.769],[-38.768,-51.769],[-23.768,16.231],[26.44,97.981]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[60.768,112.981]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[0,0],[-1.359,-0.09],[-5.833,-15.399],[11.666,7.333],[6.833,32.667]],"o":[[0,0],[3.171,0.21],[8.334,22],[-11.667,-7.334],[-6.834,-32.666]],"v":[[-32.667,-70],[-30.497,-70.27],[-15.333,-52],[21.001,66.667],[-20.999,-0.667]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,0],[-2.003,-2.449],[-5.423,-14.196],[-6.727,-9.744],[6.555,30.332]],"o":[[0,0],[6.396,5.722],[8.409,21.971],[-17.397,-6.976],[-7.09,-32.609]],"v":[[-40.093,-90.028],[-34.95,-89.325],[-15.72,-51.98],[24.971,61.365],[-20.999,-0.667]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[0,0],[-3.32,-7.281],[-4.585,-11.731],[-44.394,-44.716],[5.986,25.549]],"o":[[0,0],[3.297,7.231],[8.563,21.912],[-29.133,-6.243],[-7.613,-32.493]],"v":[[-38.219,-86.798],[-29.558,-88.913],[-16.511,-51.938],[33.102,50.508],[-20.999,-0.667]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":70,"s":[{"i":[[0,0],[-2.003,-2.449],[-5.423,-14.196],[-6.727,-9.744],[6.555,30.332]],"o":[[0,0],[6.396,5.722],[8.409,21.971],[-17.397,-6.976],[-7.09,-32.609]],"v":[[-40.093,-90.028],[-34.95,-89.325],[-15.72,-51.98],[24.971,61.365],[-20.999,-0.667]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[-1.359,-0.09],[-5.833,-15.399],[11.666,7.333],[6.833,32.667]],"o":[[0,0],[3.171,0.21],[8.334,22],[-11.667,-7.334],[-6.834,-32.666]],"v":[[-32.667,-70],[-30.497,-70.27],[-15.333,-52],[21.001,66.667],[-20.999,-0.667]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.438999998803,0.380000005984,0.463000009574,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[61,143.545]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[{"i":[[1,22],[17,19],[-7,-13],[-4,-33],[-21.248,-14.628]],"o":[[-1.079,-23.745],[-10.178,-11.376],[7,13],[4,33],[11.5,7.916]],"v":[[47,7.563],[-8,-89.77],[-41,-55.77],[-26,12.23],[19,93.23]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[19.898,36.371],[7.089,17.797],[-7,-13],[-4,-33],[-28.358,-8.672]],"o":[[-14.292,-26.124],[-5.649,-14.181],[7,13],[4,33],[13.351,4.083]],"v":[[50.035,7.244],[-9.309,-87.923],[-41,-55.77],[-26,12.23],[30.422,77.266]],"c":true}]},{"t":100,"s":[{"i":[[1,22],[17,19],[-7,-13],[-4,-33],[-21.248,-14.628]],"o":[[-1.079,-23.745],[-10.178,-11.376],[7,13],[4,33],[11.5,7.916]],"v":[[47,7.563],[-8,-89.77],[-41,-55.77],[-26,12.23],[19,93.23]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[63,116.982]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"browe","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[91.297,12.085,0]},"a":{"a":0,"k":[63.694,23.139,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":19,"s":[{"i":[[3.904,0.985],[-4.273,-0.119],[-3.051,-3.041],[-0.671,-3.881],[1.679,-3.651],[1.806,2.552],[1.843,1.804],[2.47,1.309]],"o":[[2.677,-3.02],[4.285,0.094],[3.092,3.036],[0.656,3.898],[-2.497,-3.193],[-1.778,-2.548],[-1.848,-1.812],[-2.48,-1.325]],"v":[[-15.956,-2.474],[-4.937,-6.893],[6.735,-1.755],[12.368,9.059],[11.044,20.526],[5.037,11.902],[-0.292,5.357],[-6.545,0.776]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":30,"s":[{"i":[[3.904,0.985],[-4.273,-0.119],[-3.051,-3.041],[-0.671,-3.881],[1.679,-3.651],[1.806,2.552],[1.843,1.804],[2.47,1.309]],"o":[[2.677,-3.02],[4.285,0.094],[3.092,3.036],[0.656,3.898],[-2.497,-3.193],[-1.778,-2.548],[-1.848,-1.812],[-2.48,-1.325]],"v":[[-11.733,-16.371],[-0.714,-20.79],[10.958,-15.652],[16.591,-4.838],[15.267,6.629],[9.26,-1.995],[3.931,-8.54],[-2.322,-13.121]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":75,"s":[{"i":[[3.904,0.985],[-4.273,-0.119],[-3.051,-3.041],[-0.671,-3.881],[1.679,-3.651],[1.806,2.552],[1.843,1.804],[2.47,1.309]],"o":[[2.677,-3.02],[4.285,0.094],[3.092,3.036],[0.656,3.898],[-2.497,-3.193],[-1.778,-2.548],[-1.848,-1.812],[-2.48,-1.325]],"v":[[-11.733,-16.371],[-0.714,-20.79],[10.958,-15.652],[16.591,-4.838],[15.267,6.629],[9.26,-1.995],[3.931,-8.54],[-2.322,-13.121]],"c":true}]},{"t":80,"s":[{"i":[[3.904,0.985],[-4.273,-0.119],[-3.051,-3.041],[-0.671,-3.881],[1.679,-3.651],[1.806,2.552],[1.843,1.804],[2.47,1.309]],"o":[[2.677,-3.02],[4.285,0.094],[3.092,3.036],[0.656,3.898],[-2.497,-3.193],[-1.778,-2.548],[-1.848,-1.812],[-2.48,-1.325]],"v":[[-15.956,-2.474],[-4.937,-6.893],[6.735,-1.755],[12.368,9.059],[11.044,20.526],[5.037,11.902],[-0.292,5.357],[-6.545,0.776]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.027000000898,0.086000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[112.887,31.951]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.806,-0.356],[-0.272,0.808],[-0.429,0.72],[-1.226,1.085],[-3.332,0.582],[-3.14,-1.565],[-1.131,-1.275],[-0.389,-1.719],[1.365,-0.006],[1.152,-0.115],[2.18,-0.355],[2.471,-0.449],[0,0],[0.729,-0.147]],"o":[[-0.147,-0.878],[0.27,-0.826],[0.863,-1.45],[2.472,-2.141],[3.311,-0.574],[1.557,0.786],[1.109,1.306],[-1.782,-0.038],[-1.364,0.019],[-2.287,0.193],[-2.175,0.362],[0,0],[-0.69,0.116],[-0.719,0.171]],"v":[[-14.926,6.735],[-14.62,4.111],[-13.545,1.785],[-10.353,-1.986],[-1.491,-6.161],[8.609,-4.855],[12.714,-1.765],[15.074,2.735],[10.469,2.607],[6.739,2.793],[0.214,3.691],[-6.698,4.955],[-10.57,5.665],[-12.662,6.074]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.067000003889,0.027000000898,0.086000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[15.324,6.985]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"eye R closed","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":25,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":77,"s":[0]},{"t":78,"s":[100]}]},"p":{"a":0,"k":[114.362,76.994,0]},"a":{"a":0,"k":[50.774,38.871,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":19,"s":[{"i":[[-20.555,-27.688],[0.654,0.277],[36.721,-5.441],[0.259,1.49]],"o":[[0.426,0.573],[-8.064,-3.405],[-1.731,0.286],[-1.047,-6.006]],"v":[[36.722,13.173],[35.885,14.238],[-32.455,-1.642],[-36.101,-2.091]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-21.797,1.882],[0.486,-0.167],[10.773,18.711],[-0.274,-0.172]],"o":[[0.839,0.403],[-7.115,4.407],[-2.216,-3.849],[10.576,22.542]],"v":[[33.082,15.738],[32.009,18.317],[-35.783,4.352],[-34.917,-0.614]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[-1.986,-0.344],[0.306,-0.641],[14.716,47.168],[-0.844,-1.948]],"o":[[1.28,0.222],[-6.1,12.756],[-0.694,-2.225],[22.999,53.054]],"v":[[29.193,18.479],[27.865,22.677],[-36.796,1.496],[-34.86,-2.052]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":70,"s":[{"i":[[-1.986,-0.344],[0.306,-0.641],[14.716,47.168],[-0.844,-1.948]],"o":[[1.28,0.222],[-6.1,12.756],[-0.694,-2.225],[22.999,53.054]],"v":[[29.193,18.479],[27.865,22.677],[-36.796,1.496],[-34.86,-2.052]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[-21.797,1.882],[0.486,-0.167],[10.773,18.711],[-0.274,-0.172]],"o":[[0.839,0.403],[-7.115,4.407],[-2.216,-3.849],[10.576,22.542]],"v":[[33.082,15.738],[32.009,18.317],[-35.783,4.352],[-34.917,-0.614]],"c":true}]},{"t":80,"s":[{"i":[[-20.555,-27.688],[0.654,0.277],[36.721,-5.441],[0.259,1.49]],"o":[[0.426,0.573],[-8.064,-3.405],[-1.731,0.286],[-1.047,-6.006]],"v":[[36.722,13.173],[35.885,14.238],[-32.455,-1.642],[-36.101,-2.091]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[52.147,27.854]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":19,"s":[{"i":[[25,0],[-17.787,5.711],[-8.761,-9.663]],"o":[[-30.266,0],[25.543,-8.201],[9.605,10.594]],"v":[[7.029,22.538],[-27.346,-14.337],[35.529,-3.42]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[25,0],[-12.093,-5.6],[-17.585,11.825]],"o":[[-30.266,0],[19.383,13.979],[5.767,4.477]],"v":[[7.029,22.538],[-28.403,-8.57],[36.594,0.145]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":39,"s":[{"i":[[25,0],[-6.008,-17.689],[-20.726,25.677]],"o":[[-30.266,0],[12.799,37.684],[1.664,-2.062]],"v":[[7.029,22.538],[-28.396,-12.858],[37.732,3.956]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":70,"s":[{"i":[[25,0],[-6.008,-17.689],[-20.726,25.677]],"o":[[-30.266,0],[12.799,37.684],[1.664,-2.062]],"v":[[7.029,22.538],[-28.396,-12.858],[37.732,3.956]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":75,"s":[{"i":[[25,0],[-12.093,-5.6],[-17.585,11.825]],"o":[[-30.266,0],[19.383,13.979],[5.767,4.477]],"v":[[7.029,22.538],[-28.403,-8.57],[36.594,0.145]],"c":true}]},{"t":80,"s":[{"i":[[25,0],[-17.787,5.711],[-8.761,-9.663]],"o":[[-30.266,0],[25.543,-8.201],[9.605,10.594]],"v":[[7.029,22.538],[-27.346,-14.337],[35.529,-3.42]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[45.383,39.464]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[50.329,41.267]},"a":{"a":0,"k":[50.329,41.267]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"eye R open","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[115.656,65.054,0]},"a":{"a":0,"k":[44.404,41.45,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.762},"o":{"x":0.333,"y":0},"t":19,"s":[{"i":[[1.25,-1.938],[4.625,-0.063],[-11.5,3.438]],"o":[[-1.25,1.938],[-4.625,0.063],[11.5,-3.438]],"v":[[81.561,40.083],[69.748,42.896],[70.436,52.396]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.238},"t":23.199,"s":[{"i":[[0.692,-0.789],[2.948,0.007],[-5.577,0.064]],"o":[[-0.708,0.877],[-2.829,0.045],[7.701,-2.862]],"v":[[77.631,41.586],[70.57,42.943],[71.053,48.706]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":26.699,"s":[{"i":[[0.082,0.468],[1.112,0.084],[0.908,-3.629]],"o":[[-0.115,-0.284],[-0.862,0.025],[3.541,-2.232]],"v":[[73.329,43.23],[71.47,42.995],[69.374,52.487]],"c":true}]},{"i":{"x":0.833,"y":0.633},"o":{"x":0.167,"y":0},"t":79,"s":[{"i":[[0.082,0.468],[1.112,0.084],[0.908,-3.629]],"o":[[-0.115,-0.284],[-0.862,0.025],[3.541,-2.232]],"v":[[73.329,43.23],[71.47,42.995],[69.374,52.487]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.367},"t":81,"s":[{"i":[[0.692,-0.789],[2.948,0.007],[-5.577,0.064]],"o":[[-0.708,0.877],[-2.829,0.045],[7.701,-2.862]],"v":[[77.631,41.586],[70.57,42.943],[71.053,48.706]],"c":true}]},{"t":84,"s":[{"i":[[1.25,-1.938],[4.625,-0.063],[-11.5,3.438]],"o":[[-1.25,1.938],[-4.625,0.063],[11.5,-3.438]],"v":[[81.561,40.083],[69.748,42.896],[70.436,52.396]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.090196078431,0.176470588235,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":19,"s":[{"i":[[-6.094,5.6],[-17.909,-0.943],[-3.25,-5.875],[16.623,0.761]],"o":[[4.625,-4.25],[13.745,0.724],[2.961,5.352],[-22.114,-1.013]],"v":[[-28.276,0.524],[5.599,-10.079],[28.849,3.649],[3.812,-5.34]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33,"s":[{"i":[[-1.248,8.182],[-21.537,-3.172],[0.675,-6.079],[16.623,0.761]],"o":[[1.125,-7.375],[19.921,2.934],[-0.675,6.079],[-22.114,-1.013]],"v":[[-29.026,-2.351],[7.729,-24.95],[29.599,3.649],[4.389,27.361]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":74,"s":[{"i":[[-1.248,8.182],[-21.537,-3.172],[0.675,-6.079],[16.623,0.761]],"o":[[1.125,-7.375],[19.921,2.934],[-0.675,6.079],[-22.114,-1.013]],"v":[[-29.026,-2.351],[7.729,-24.95],[29.599,3.649],[4.389,27.361]],"c":true}]},{"t":84,"s":[{"i":[[-6.094,5.6],[-17.909,-0.943],[-3.25,-5.875],[16.623,0.761]],"o":[[4.625,-4.25],[13.745,0.724],[2.961,5.352],[-22.114,-1.013]],"v":[[-28.276,0.524],[5.599,-10.079],[28.849,3.649],[3.812,-5.34]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[42.774,40.622]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.762},"o":{"x":0.333,"y":0},"t":19,"s":[{"i":[[41.875,4.125],[-5.625,5.25],[-13.75,-0.5],[-5.25,-8.375],[8,0.125],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.625,-5.25],[13.75,0.5],[-6.875,-13],[-8,-0.125],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[45.491,30.825],[69.123,47.896],[41.784,34.116],[8.248,46.646],[57.873,73.646]],"c":true}]},{"i":{"x":0.833,"y":0.762},"o":{"x":0.167,"y":0.238},"t":23.199,"s":[{"i":[[41.875,4.125],[-5.625,5.25],[-24.89,-0.067],[-3.768,-8.65],[12.124,0.214],[0.475,-3.189],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.625,-5.25],[21.279,1.376],[-5.609,-1.715],[-14.124,-1.368],[-0.961,6.448],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[46.529,25.979],[73.579,48.269],[42.759,45.329],[8.248,46.646],[57.873,73.646]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.238},"t":26.699,"s":[{"i":[[41.875,4.125],[-4.175,6.463],[-22.366,-1.384],[2.66,-9.833],[17.895,0.338],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.701,-8.825],[19.013,1.136],[-2.056,3.375],[-22.692,-3.108],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[47.459,21.34],[70.49,48.244],[44.191,57.316],[8.248,46.646],[57.873,73.646]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":33,"s":[{"i":[[41.875,4.125],[-5.625,5.25],[-31.574,-2.328],[2.108,-9.741],[15.633,-1.377],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.625,-5.25],[24.637,1.817],[-2.406,7.753],[-20.224,1.781],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[48.499,15.613],[71.952,48.615],[46.789,68.732],[8.248,46.646],[57.873,73.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":74,"s":[{"i":[[41.875,4.125],[-5.625,5.25],[-31.574,-2.328],[2.108,-9.741],[15.633,-1.377],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.625,-5.25],[24.637,1.817],[-2.406,7.753],[-20.224,1.781],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[48.499,15.613],[71.952,48.615],[46.789,68.732],[8.248,46.646],[57.873,73.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[{"i":[[41.875,4.125],[-4.425,6.295],[-22.366,-1.384],[3.223,-5.158],[17.895,0.338],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[4.794,-6.82],[22.57,1.897],[-2.056,3.375],[-22.692,-3.108],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[47.238,21.797],[70.49,48.244],[44.156,54.518],[8.248,46.646],[57.873,73.646]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[41.875,4.125],[-5.625,5.25],[-21.281,-1.086],[-4.352,-8.542],[10.498,0.179],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.625,-5.25],[21.05,1.074],[-3.375,-4.354],[-20.928,1.053],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[45.756,27.766],[74.451,49.491],[45.494,40.579],[9.077,48.743],[57.873,73.646]],"c":true}]},{"t":84,"s":[{"i":[[41.875,4.125],[-5.625,5.25],[-13.75,-0.5],[-5.25,-8.375],[8,0.125],[-0.5,-6.5],[-31.5,6.875]],"o":[[-41.875,-4.125],[5.625,-5.25],[13.75,0.5],[-6.875,-13],[-8,-0.125],[0.5,6.5],[31.5,-6.875]],"v":[[51.373,11.896],[10.248,44.646],[45.491,30.825],[69.123,47.896],[41.784,34.116],[8.248,46.646],[57.873,73.646]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.913725490196,0.925490196078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.604,-3.044],[2.992,1.578],[-1.605,3.044],[-2.992,-1.578]],"o":[[-1.604,3.044],[-2.993,-1.577],[1.605,-3.044],[2.993,1.577]],"v":[[5.419,2.856],[-2.905,5.512],[-5.418,-2.856],[2.906,-5.511]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.987999949736,0.987999949736,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[55.961,41.093]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[3.15,-5.978],[5.875,3.098],[-3.151,5.978],[-5.875,-3.097]],"o":[[-3.151,5.977],[-5.876,-3.098],[3.151,-5.977],[5.876,3.098]],"v":[[10.64,5.608],[-5.705,10.823],[-10.639,-5.609],[5.705,-10.823]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[42.998,45.646]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[4.638,-8.796],[8.648,4.559],[-4.638,8.797],[-8.647,-4.559]],"o":[[-4.638,8.796],[-8.647,-4.558],[4.637,-8.796],[8.648,4.558]],"v":[[15.657,8.254],[-8.397,15.927],[-15.657,-8.254],[8.396,-15.927]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.224000010771,0.741000007181,0.969000004787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[42.998,45.646]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.736,8.093],[-21.434,-3.774],[0.675,-6.078],[19.841,1.319]],"o":[[1.066,-4.972],[21.993,3.874],[-0.675,6.08],[-19.556,-1.301]],"v":[[-30.552,-1.841],[8.287,-25.121],[31.614,2.62],[3.278,27.576]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.987999949736,0.987999949736,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[43.885,40.407]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"eye L","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[12.887,32.795,0]},"a":{"a":0,"k":[20.137,19.359,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[10.468,4.469],[-0.565,3.893],[-2.429,-23.587],[0.491,0.77]],"o":[[-8.042,-3.442],[1.037,-7.151],[0.094,0.908],[-5.974,-9.366]],"v":[[-5.84,-5.944],[-17.423,-10.526],[17.894,16.352],[16.298,16.908]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[21.507,17.966]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[3.417,7.333],[10,-0.334],[0,-3]],"o":[[8,3],[-4.568,-9.805],[-10,0.333],[0,3]],"v":[[10.292,12.333],[16.292,3.333],[-7.708,-14.999],[-19.708,-9.667]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[19.958,24.897]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[16.031,0],[1.005,2.494],[0.257,-1.046],[-4.474,-1.491]],"o":[[3,-10],[-5.985,0],[-0.402,-0.999],[-1.169,4.769],[12,4]],"v":[[12.383,15.782],[-0.909,-11.801],[-11.402,-14.783],[-13.531,-14.606],[-10.909,-1.801]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[26.159,16.032]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"nose","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[44.266,62.819,0]},"a":{"a":0,"k":[31.895,25.428,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.98,-5.569],[-3.148,-1.474],[-4.21,4.321],[5.95,1.986]],"o":[[-5.326,-10.492],[-2.699,7.588],[3.15,1.475],[4.124,-4.234],[-6.688,-2.232]],"v":[[-0.87,-3.81],[-16.367,-6.586],[-6.793,12.827],[14.942,9.459],[12.32,-3.394]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.517999985639,0.097999999102,0.317999985639,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.39199999641,0.611999990426,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[31.566,26.802]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.305,1.963],[-13.254,-8.275],[0.668,0.234],[7.118,-4.211]],"o":[[6.574,-5.61],[0.603,0.376],[-14.536,-5.112],[-2.707,1.602]],"v":[[-14.745,0.825],[16.448,1.811],[15.935,2.881],[-11.797,4.862]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[30.726,14.376]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"mouth","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[35.082,113.25,0]},"a":{"a":0,"k":[38.091,44.721,0]},"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":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":35,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":45,"s":[94,106,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":80,"s":[94,106,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":90,"s":[110,90,100]},{"t":105,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[10.203,6.005],[-1.149,-0.299],[-3.818,2.432],[-2.016,-2.478]],"o":[[-1.032,-0.607],[4.568,1.192],[2.753,-1.665],[3.343,4.11]],"v":[[-11.311,1.249],[-10.527,-0.643],[2.089,-2.645],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[3.837,-13.554],[-2.5,7.537],[-3.548,3.386],[-0.991,-2.915]],"o":[[-0.484,0.526],[1.291,-3.892],[2.753,-1.665],[1.401,2.886]],"v":[[-6.592,18.515],[-8.145,11.669],[1.698,-3.279],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[3.484,-13.441],[-0.69,4.518],[-3.499,3.559],[-0.805,-2.995]],"o":[[-0.385,0.731],[1.561,-4.328],[2.753,-1.665],[1.05,2.665]],"v":[[-4.552,17.288],[-6.529,10.799],[1.627,-3.394],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[2.416,-17.375],[-0.534,6.157],[-3.39,3.943],[-0.393,-3.17]],"o":[[-0.165,1.186],[0.538,-6.206],[2.753,-1.665],[0.269,2.173]],"v":[[-1.405,18.556],[-4.664,13.52],[1.47,-3.649],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[2.416,-17.375],[-0.534,6.157],[-3.39,3.943],[-0.393,-3.17]],"o":[[-0.165,1.186],[0.538,-6.206],[2.753,-1.665],[0.269,2.173]],"v":[[-1.405,18.556],[-4.664,13.52],[1.47,-3.649],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[3.484,-13.441],[-0.69,4.518],[-3.499,3.559],[-0.805,-2.995]],"o":[[-0.385,0.731],[1.561,-4.328],[2.753,-1.665],[1.05,2.665]],"v":[[-4.552,17.288],[-6.529,10.799],[1.627,-3.394],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[3.837,-13.554],[-2.5,7.537],[-3.548,3.386],[-0.991,-2.915]],"o":[[-0.484,0.526],[1.291,-3.892],[2.753,-1.665],[1.401,2.886]],"v":[[-6.592,18.515],[-8.145,11.669],[1.698,-3.279],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[10.203,6.005],[-1.149,-0.299],[-3.818,2.432],[-2.016,-2.478]],"o":[[-1.032,-0.607],[4.568,1.192],[2.753,-1.665],[3.343,4.11]],"v":[[-11.311,1.249],[-10.527,-0.643],[2.089,-2.645],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[10.203,6.005],[-1.149,-0.299],[-3.818,2.432],[-2.016,-2.478]],"o":[[-1.032,-0.607],[4.568,1.192],[2.753,-1.665],[3.343,4.11]],"v":[[-7.877,1.746],[-7.092,-0.146],[2.089,-2.645],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[10.203,6.005],[-1.149,-0.299],[-3.818,2.432],[-2.016,-2.478]],"o":[[-1.032,-0.607],[4.568,1.192],[2.753,-1.665],[3.343,4.11]],"v":[[-11.311,1.249],[-10.527,-0.643],[2.089,-2.645],[9,-4.776]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[10.203,6.005],[-1.149,-0.299],[-3.818,2.432],[-2.016,-2.478]],"o":[[-1.032,-0.607],[4.568,1.192],[2.753,-1.665],[3.343,4.11]],"v":[[-11.311,1.249],[-10.527,-0.643],[2.089,-2.645],[9,-4.776]],"c":true}]},{"t":105,"s":[{"i":[[10.203,6.005],[-1.149,-0.299],[-3.818,2.432],[-2.016,-2.478]],"o":[[-1.032,-0.607],[4.568,1.192],[2.753,-1.665],[3.343,4.11]],"v":[[-11.311,1.249],[-10.527,-0.643],[2.089,-2.645],[9,-4.776]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[35.864,8.423]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-15.394,-15.632],[2.347,0.88],[5.217,0.4],[-0.036,0],[-7.125,-0.125],[1.765,3.851],[-0.748,-1]],"o":[[1.838,1.866],[-2.957,-0.263],[-1.83,-0.101],[-3.682,0.04],[-4.514,-2.527],[-2.247,-4.915],[1.624,2.171]],"v":[[9.884,7.541],[7.338,11.536],[-4.069,10.146],[-8.04,10.086],[3.402,6.903],[-8.83,-7.224],[-8.257,-11.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[-16.24,-13.855],[1.025,-0.204],[2.047,0.45],[1.151,0.735],[1.171,1.235],[1.765,3.851],[-0.748,-1]],"o":[[5.159,2.307],[-1.025,0.204],[-1.85,-0.406],[-0.778,-0.497],[-3.141,-1.765],[-2.247,-4.915],[1.624,2.171]],"v":[[14.294,8.435],[18.033,11.47],[12.523,11.037],[6.857,8.314],[2.836,5.002],[-6.558,-6.601],[-5.665,-10.675]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[-18.86,-8.351],[-1.325,-0.349],[5.852,-0.709],[4.242,1.826],[1.256,1.441],[1.829,3.821],[0.032,-0.225]],"o":[[15.448,3.672],[1.695,0.404],[-5.839,0.741],[-3.983,-1.684],[-2.935,-2.249],[-1.645,-3.436],[1.624,2.171]],"v":[[27.955,11.204],[51.167,11.266],[37.552,15.631],[19.983,12.914],[10.717,7.368],[0.481,-4.673],[2.803,-7.567]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-20.859,-4.056],[-3.088,-0.458],[8.57,-2.196],[8.307,3.026],[1.32,1.597],[1.765,3.851],[-0.748,-1]],"o":[[21.544,4.19],[3.735,0.554],[-8.209,2.104],[-6.47,-2.357],[-2.78,-2.611],[-2.247,-4.915],[1.624,2.171]],"v":[[38.201,13.282],[74.898,10.233],[56.324,19.076],[30.196,17.492],[15.629,9.015],[4.642,-4.356],[8.275,-8.787]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-20.859,-4.056],[-3.088,-0.458],[8.57,-2.196],[8.307,3.026],[1.32,1.597],[1.765,3.851],[-0.748,-1]],"o":[[21.544,4.19],[3.735,0.554],[-8.209,2.104],[-6.47,-2.357],[-2.78,-2.611],[-2.247,-4.915],[1.624,2.171]],"v":[[38.201,13.282],[74.898,10.233],[56.324,19.076],[30.196,17.492],[15.629,9.015],[4.642,-4.356],[8.275,-8.787]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-18.86,-8.351],[-1.325,-0.349],[5.852,-0.709],[4.242,1.826],[1.256,1.441],[1.829,3.821],[0.032,-0.225]],"o":[[15.448,3.672],[1.695,0.404],[-5.839,0.741],[-3.983,-1.684],[-2.935,-2.249],[-1.645,-3.436],[1.624,2.171]],"v":[[27.955,11.204],[51.167,11.266],[37.552,15.631],[19.983,12.914],[10.717,7.368],[0.481,-4.673],[2.803,-7.567]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[-16.24,-13.855],[1.025,-0.204],[2.047,0.45],[1.151,0.735],[1.171,1.235],[1.765,3.851],[-0.748,-1]],"o":[[5.159,2.307],[-1.025,0.204],[-1.85,-0.406],[-0.778,-0.497],[-3.141,-1.765],[-2.247,-4.915],[1.624,2.171]],"v":[[14.294,8.435],[18.033,11.47],[12.523,11.037],[6.857,8.314],[2.836,5.002],[-6.558,-6.601],[-5.665,-10.675]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[-15.394,-15.632],[2.347,0.88],[5.217,0.4],[-0.036,0],[-7.125,-0.125],[1.765,3.851],[-0.748,-1]],"o":[[1.838,1.866],[-2.957,-0.263],[-1.83,-0.101],[-3.682,0.04],[-4.514,-2.527],[-2.247,-4.915],[1.624,2.171]],"v":[[9.884,7.541],[7.338,11.536],[-4.069,10.146],[-8.04,10.086],[3.402,6.903],[-8.83,-7.224],[-8.257,-11.416]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[-5.096,-8.374],[2.347,0.88],[1.609,-0.119],[-0.036,0],[-7.125,-0.125],[0.611,4.46],[-0.419,-1.176]],"o":[[1.362,2.237],[-2.957,-0.263],[-1.83,-0.101],[-3.682,0.04],[-2.743,-2.686],[-0.734,-5.354],[1.376,3.858]],"v":[[-0.002,4.819],[-2.548,8.814],[-8.021,9.11],[-11.992,9.05],[-7.704,3.855],[-12.193,-7.774],[-8.257,-11.416]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-15.394,-15.632],[2.347,0.88],[5.217,0.4],[-0.036,0],[-7.125,-0.125],[1.765,3.851],[-0.748,-1]],"o":[[1.838,1.866],[-2.957,-0.263],[-1.83,-0.101],[-3.682,0.04],[-4.514,-2.527],[-2.247,-4.915],[1.624,2.171]],"v":[[9.884,7.541],[7.338,11.536],[-4.069,10.146],[-8.04,10.086],[3.402,6.903],[-8.83,-7.224],[-8.257,-11.416]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":80,"s":[{"i":[[2.831,-14.008],[4.18,1.205],[2.903,3.906],[-1.337,-1.27],[6.062,14.467],[6.231,4.347],[-1.228,-0.224]],"o":[[-1.105,5.467],[-4.18,-1.205],[-1.125,-1.513],[12.63,12.003],[-1.746,-4.167],[-4.432,-3.092],[10.781,1.969]],"v":[[16.69,17.355],[4.53,23.304],[-5.988,15.963],[-8.04,10.086],[10.483,7.764],[-6.757,-5.861],[-9.015,-10.391]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":85,"s":[{"i":[[-0.909,-6.876],[2.955,-0.693],[2.518,2.319],[-0.686,-0.635],[2.939,7.703],[3.998,4.099],[-0.988,-0.612]],"o":[[0.357,2.702],[-2.955,0.693],[-2.518,-2.319],[5.253,4.075],[-3.749,-9.825],[-3.34,-4.004],[10.418,3.126]],"v":[[11.518,11.956],[5.934,17.42],[-5.311,14.46],[-8.04,10.086],[7.161,9.489],[-7.516,-4.502],[-5.538,-6.981]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[-15.394,-15.632],[2.347,0.88],[5.217,0.4],[-0.036,0],[-7.125,-0.125],[1.765,3.851],[-0.748,-1]],"o":[[1.838,1.866],[-2.957,-0.263],[-1.83,-0.101],[-3.682,0.04],[-4.514,-2.527],[-2.247,-4.915],[1.624,2.171]],"v":[[9.884,7.541],[7.338,11.536],[-4.069,10.146],[-8.04,10.086],[3.402,6.903],[-8.83,-7.224],[-8.257,-11.416]],"c":true}]},{"t":105,"s":[{"i":[[-15.394,-15.632],[2.347,0.88],[5.217,0.4],[-0.036,0],[-7.125,-0.125],[1.765,3.851],[-0.748,-1]],"o":[[1.838,1.866],[-2.957,-0.263],[-1.83,-0.101],[-3.682,0.04],[-4.514,-2.527],[-2.247,-4.915],[1.624,2.171]],"v":[[9.884,7.541],[7.338,11.536],[-4.069,10.146],[-8.04,10.086],[3.402,6.903],[-8.83,-7.224],[-8.257,-11.416]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[25.326,31.486]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[10.258,-3.375],[-9.607,-1.68],[2.975,0.536],[-6.896,2.144],[0.601,-1.029]],"o":[[0.521,-0.026],[1.134,0.198],[-14.084,-2.525],[5.564,-1.249],[2.187,-3.745]],"v":[[-2.798,0.26],[8.057,10.161],[6.826,14.91],[-4.012,-4.59],[4.286,-11.701]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[-0.116,-6.751],[-10.685,-1.372],[2.996,0.317],[-2.222,4.723],[0.22,-2.367]],"o":[[1.846,2.009],[1.14,0.152],[-14.178,-1.494],[0.832,-5.579],[1.4,0.476]],"v":[[-1.429,-0.328],[13.527,8.814],[12.322,13.535],[-5.494,-3.009],[0.533,-15]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-4.282,-5.58],[-12.071,-0.976],[3.023,0.036],[3.787,8.039],[-0.269,-4.088]],"o":[[3.55,4.626],[1.147,0.093],[-14.299,-0.169],[-5.251,-11.146],[0.388,5.903]],"v":[[-1.669,-0.799],[20.559,7.081],[19.39,11.767],[-7.4,-0.975],[-4.293,-19.242]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-4.282,-5.58],[-12.071,-0.976],[3.023,0.036],[3.787,8.039],[-0.269,-4.088]],"o":[[3.55,4.626],[1.147,0.093],[-14.299,-0.169],[-5.251,-11.146],[0.388,5.903]],"v":[[-1.669,-0.799],[20.559,7.081],[19.39,11.767],[-7.4,-0.975],[-4.293,-19.242]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.116,-6.751],[-10.685,-1.372],[2.996,0.317],[-2.222,4.723],[0.22,-2.367]],"o":[[1.846,2.009],[1.14,0.152],[-14.178,-1.494],[0.832,-5.579],[1.4,0.476]],"v":[[-1.429,-0.328],[13.527,8.814],[12.322,13.535],[-5.494,-3.009],[0.533,-15]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":35,"s":[{"i":[[10.258,-3.375],[-9.607,-1.68],[2.975,0.536],[-6.896,2.144],[0.601,-1.029]],"o":[[0.521,-0.026],[1.134,0.198],[-14.084,-2.525],[5.564,-1.249],[2.187,-3.745]],"v":[[-2.798,0.26],[8.057,10.161],[6.826,14.91],[-4.012,-4.59],[4.286,-11.701]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[10.258,-3.375],[-9.607,-1.68],[2.975,0.536],[-6.896,2.144],[0.601,-1.029]],"o":[[0.521,-0.026],[1.134,0.198],[-14.084,-2.525],[5.564,-1.249],[2.187,-3.745]],"v":[[-6.155,3.293],[8.057,10.161],[6.826,14.91],[-7.369,-1.558],[3.837,-7.347]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":60,"s":[{"i":[[10.258,-3.375],[-9.607,-1.68],[2.975,0.536],[-6.896,2.144],[0.601,-1.029]],"o":[[0.521,-0.026],[1.134,0.198],[-14.084,-2.525],[5.564,-1.249],[2.187,-3.745]],"v":[[-2.798,0.26],[8.057,10.161],[6.826,14.91],[-4.012,-4.59],[4.286,-11.701]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":80,"s":[{"i":[[1.393,-7.271],[-4.657,-2.941],[3.574,2.066],[-2.086,2.974],[-0.436,-1.356]],"o":[[-0.312,1.629],[0.973,0.615],[-12.387,-7.162],[2.086,-2.974],[0.436,1.356]],"v":[[1.159,-1.943],[12.854,8.333],[10.121,11.238],[-4.012,-4.59],[4.286,-11.701]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[10.258,-3.375],[-9.607,-1.68],[2.956,0.631],[-5.926,-1.672],[0.601,-1.029]],"o":[[0.521,-0.026],[1.134,0.198],[-18.736,-4.002],[5.532,1.561],[2.187,-3.745]],"v":[[-5.256,-0.876],[8.057,10.161],[6.826,14.91],[-7.343,-6.875],[4.286,-11.701]],"c":true}]},{"t":105,"s":[{"i":[[10.258,-3.375],[-9.607,-1.68],[2.975,0.536],[-6.896,2.144],[0.601,-1.029]],"o":[[0.521,-0.026],[1.134,0.198],[-14.084,-2.525],[5.564,-1.249],[2.187,-3.745]],"v":[[-2.798,0.26],[8.057,10.161],[6.826,14.91],[-4.012,-4.59],[4.286,-11.701]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[11.157,15.696]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.036,-20.327],[-8.366,-0.032],[-18.363,1.556],[10.924,13.307]],"o":[[2.383,23.785],[6.825,8.911],[18.363,-1.556],[-10.924,-13.307]],"v":[[3.259,1.966],[29.743,25.343],[73.71,48.538],[83.32,23.548]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019607843,0.913725490196,0.925490196078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[0,0],[-8.194,0.491],[0,0]],"o":[[0,0],[3.86,-0.232],[0,0]],"v":[[-6.773,4.761],[0.981,-2.393],[6.728,3.902]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[2.201,1.759],[-4.768,0.77],[0,0]],"o":[[-2.201,-1.759],[3.818,-0.616],[0,0]],"v":[[-4.836,5.261],[-5.394,-1.83],[2.29,4.84]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[2.054,1.642],[-4.997,0.751],[0,0]],"o":[[-2.054,-1.642],[3.821,-0.591],[0,0]],"v":[[-3.153,2.04],[-4.967,-1.868],[2.587,4.777]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.054,1.642],[-4.997,0.751],[0,0]],"o":[[-2.054,-1.642],[3.821,-0.591],[0,0]],"v":[[-1.748,-0.634],[-4.967,-1.868],[2.587,4.777]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[2.201,1.759],[-4.768,0.77],[0,0]],"o":[[-2.201,-1.759],[3.818,-0.616],[0,0]],"v":[[-4.836,5.261],[-5.394,-1.83],[2.29,4.84]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":35,"s":[{"i":[[0,0],[-8.194,0.491],[0,0]],"o":[[0,0],[3.86,-0.232],[0,0]],"v":[[-6.773,4.761],[0.981,-2.393],[6.728,3.902]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[0,0],[-2.704,-0.654],[0,0]],"o":[[0,0],[3.759,0.909],[0,0]],"v":[[-4.962,3.552],[-6.343,-2.288],[-1.444,2.223]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":60,"s":[{"i":[[0,0],[-8.194,0.491],[0,0]],"o":[[0,0],[3.86,-0.232],[0,0]],"v":[[-6.773,4.761],[0.981,-2.393],[6.728,3.902]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":80,"s":[{"i":[[10.384,13.247],[3.772,12.379],[4.779,-13.11]],"o":[[-4.157,-5.303],[-1.127,-3.699],[-0.564,1.548]],"v":[[-3.763,9.055],[0.656,-7.872],[14.766,13.782]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[0,0],[-8.194,0.491],[0,0]],"o":[[0,0],[3.86,-0.232],[0,0]],"v":[[-6.773,4.761],[0.981,-2.393],[6.728,3.902]],"c":true}]},{"t":105,"s":[{"i":[[0,0],[-8.194,0.491],[0,0]],"o":[[0,0],[3.86,-0.232],[0,0]],"v":[[-6.773,4.761],[0.981,-2.393],[6.728,3.902]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.447000002394,0.102000000898,0.102000000898,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[23.782,36.03]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[5.417,-5.639],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[4.656,-4.71],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-6.153,11.467],[-5.353,-8.396],[8.798,-11.109],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[1.752,-1.585],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.143,-1.157],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-6.153,11.467],[-5.353,-8.396],[2.611,-8.796],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[2.003,-1.863],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.316,-1.401],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-5.402,11.469],[-5.353,-8.396],[3.035,-8.955],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[2.129,-2.002],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.402,-1.522],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-4.026,9.844],[-5.353,-8.396],[3.247,-9.034],[-1.774,-4.906],[0.861,6.12],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[2.255,-2.141],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.488,-1.644],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-2.65,8.22],[-5.353,-8.396],[3.459,-9.113],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[2.255,-2.141],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.488,-1.644],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-0.896,6.642],[-5.353,-8.396],[3.459,-9.113],[-1.774,-4.906],[1.582,6.971],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[{"i":[[2.9,2.721],[-6.346,6.521],[-0.083,-4.777],[2.129,-2.002],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.402,-1.522],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-4.018,9.22],[-5.353,-8.396],[3.247,-9.034],[-1.774,-4.906],[1.151,7.446],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":32,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[1.752,-1.585],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[2.143,-1.157],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-6.153,11.467],[-5.353,-8.396],[2.611,-8.796],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[5.417,-5.639],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[4.656,-4.71],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-6.153,11.467],[-5.353,-8.396],[8.798,-11.109],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[7.665,6.41],[-6.346,6.521],[-0.083,-4.777],[5.417,-5.639],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[4.656,-4.71],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-10.108,16.681],[-5.181,-5.699],[8.798,-11.109],[-1.602,-2.208],[-4.095,14.083],[3.369,9.254],[5.619,12.107]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[5.417,-5.639],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[4.656,-4.71],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-6.153,11.467],[-5.353,-8.396],[8.798,-11.109],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":80,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-3.128,-3.612],[3.79,-4.411],[-7.455,-5.647],[-2.375,-0.833],[1,0.057]],"o":[[-5.508,-4.522],[1.627,-2.692],[2.224,2.568],[-3.982,4.06],[2.009,1.522],[4.029,1.254],[-4.481,-0.255]],"v":[[-3.872,19.16],[-7.333,-2.337],[13.194,-2.767],[-3.754,1.154],[2.141,16.562],[9.951,18.431],[12.201,21.284]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[5.417,-5.639],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[4.656,-4.71],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-8.475,11.923],[-7.675,-7.941],[8.798,-11.109],[-3.985,-4.431],[-2.351,9.344],[7.67,10.739],[9.92,13.592]],"c":true}]},{"t":105,"s":[{"i":[[4.772,4.418],[-6.346,6.521],[-0.083,-4.777],[5.417,-5.639],[-6.26,-2.111],[-2.375,-0.833],[1,0.057]],"o":[[-4.351,-4.234],[4.656,-4.71],[0.074,4.288],[-3.982,4.06],[2.39,0.799],[4.029,1.254],[-4.481,-0.255]],"v":[[-6.153,11.467],[-5.353,-8.396],[8.798,-11.109],[-1.774,-4.906],[-0.14,8.869],[7.67,10.739],[9.92,13.592]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[14.643,40.835]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[17.694,45.337],"to":[3.346,-4.578],"ti":[-3.346,4.578]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":10,"s":[37.77,17.871],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":25,"s":[37.77,17.871],"to":[-3.346,4.578],"ti":[3.346,-4.578]},{"t":35,"s":[17.694,45.337]}]},"a":{"a":0,"k":[17.694,45.337]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-4.518,-5.656],[-1.641,-2.504],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-4.909,-5.93]],"v":[[0.919,-2.758],[2.987,4.551],[4.897,6.838],[-1.543,4.12]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[-4.518,-5.656],[-2.12,-1.954],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[2.12,1.954],[1.554,1.575],[-4.909,-5.93]],"v":[[-1.566,-5.52],[3.366,3.802],[10.009,8.61],[-1.543,4.12]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-4.518,-5.656],[-2.12,-1.954],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[2.12,1.954],[1.554,1.575],[-4.909,-5.93]],"v":[[-1.566,-5.52],[3.366,3.802],[10.009,8.61],[-1.543,4.12]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[{"i":[[-4.518,-5.656],[-1.641,-2.504],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-4.909,-5.93]],"v":[[0.919,-2.758],[2.987,4.551],[4.897,6.838],[-1.543,4.12]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[-2.268,-2.926],[-1.579,-4.511],[0.211,0.215],[5.102,1.75]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-5.102,-1.75]],"v":[[-2.921,-1.106],[2.987,4.551],[2.519,5.994],[-4.294,2.955]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[{"i":[[-4.518,-5.656],[-1.641,-2.504],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-4.909,-5.93]],"v":[[0.919,-2.758],[2.987,4.551],[4.897,6.838],[-1.543,4.12]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":80,"s":[{"i":[[-4.518,-5.656],[-1.641,-2.504],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-4.909,-5.93]],"v":[[-0.536,4.221],[1.533,11.53],[3.443,13.817],[-2.997,11.099]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[-4.518,-5.656],[-1.641,-2.504],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-4.909,-5.93]],"v":[[0.919,-2.758],[2.987,4.551],[4.897,6.838],[-1.543,4.12]],"c":true}]},{"t":105,"s":[{"i":[[-4.518,-5.656],[-1.641,-2.504],[0.211,0.215],[3.144,3.906]],"o":[[0,0],[0.673,1.12],[1.554,1.575],[-4.909,-5.93]],"v":[[0.919,-2.758],[2.987,4.551],[4.897,6.838],[-1.543,4.12]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[17.84,55.727]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"ear R","parent":28,"sr":1,"ks":{"p":{"a":0,"k":[326.561,103.226,0]},"a":{"a":0,"k":[73.794,102.718,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-8.384,-0.988],[-2.33,-63.067],[4,9]],"o":[[8.514,-14.316],[8.384,0.987],[0.612,16.55],[0,0]],"v":[[-29.691,-13.157],[3.189,-46.225],[29.079,30.663],[7.292,28.288]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[44.691,62.213]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-14,-17]],"o":[[15,3],[0,0]],"v":[[-2.5,-38.5],[1.5,38.5]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[52.483,55.001]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[4.144,-20.125],[-8.852,-5.401],[-1.856,11.197],[3.614,17.643]],"o":[[4.544,4.964],[-4.143,20.124],[8.85,5.4],[1.857,-11.197],[-3.613,-17.643]],"v":[[-10.756,-46.593],[-7.601,-10.445],[-5.412,33.083],[12.407,35.396],[6.71,-17.301]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[60.825,61.569]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.431,8.375],[-8.383,-0.987],[-2.33,-63.067]],"o":[[8.528,-10.901],[8.383,0.988],[1.308,35.402]],"v":[[-30.039,-22.078],[5.029,-56.158],[28.732,21.742]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.455000005984,0.573000021542,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[45.039,71.133]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":3,"nm":"Null 2","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":0,"k":12},"p":{"a":0,"k":[287.811,339.011,0]},"a":{"a":0,"k":[50,50,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":5,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":45,"s":[103,97,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":75,"s":[97,103,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":95,"s":[103,97,100]},{"t":120,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"head","parent":27,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.569],"y":[0.038]},"t":5,"s":[-12]},{"i":{"x":[0.415],"y":[1.029]},"o":{"x":[0.333],"y":[0]},"t":45,"s":[-22]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":95,"s":[-22]},{"t":120,"s":[-12]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.569,"y":0},"t":2,"s":[73.83,-76.055,0],"to":[-8.534,0.03,0],"ti":[0.291,1.77,0]},{"i":{"x":0.415,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[59.761,-67.09,0],"to":[-0.291,-1.77,0],"ti":[-7.931,4.822,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72,"s":[72.084,-86.674,0],"to":[1.59,-0.967,0],"ti":[-0.291,-1.77,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92,"s":[59.761,-67.09,0],"to":[0.291,1.77,0],"ti":[1.861,-0.007,0]},{"t":117,"s":[73.83,-76.055,0]}]},"a":{"a":0,"k":[175.828,150.007,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":0,"s":[{"i":[[-7.757,37.124],[8.483,12.743],[33.421,-43.443],[21.766,-1.513],[7.1,-28.053],[-34.941,-37.761],[-11.174,88.362],[-37.879,-6.729],[-0.095,0.176],[-31.014,-58.505],[0,0],[14.241,-72.739],[-6.274,8.083]],"o":[[15.132,-80.993],[-34.437,-50.783],[-3.133,3.566],[-21.38,1.487],[-9.893,39.09],[10.577,12.163],[9.103,-71.845],[0.657,0.117],[26.393,-49.26],[0,0],[18.343,13.531],[-13.369,61.603],[16.807,-21.652]],"v":[[151.669,45.461],[120.64,-58.1],[-65.864,-77.467],[-100.43,-76.305],[-144.99,-26.303],[-112.398,104.376],[-154.982,-10.318],[-70.914,-81.08],[-70.335,-81.317],[127.425,-58.144],[126.56,-59.162],[158.173,46.77],[112.167,122.494]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-7.757,37.124],[8.483,12.743],[33.421,-43.443],[21.766,-1.513],[4.256,-36.267],[-30.211,-32.649],[-10.213,88.478],[-27.783,-18.484],[-0.095,0.176],[-31.014,-58.505],[0,0],[14.241,-72.739],[-6.274,8.083]],"o":[[15.132,-80.993],[-34.437,-50.783],[-5.773,7.066],[-25.413,1.767],[-4.314,36.76],[10.577,12.163],[8.852,-76.684],[0.556,0.37],[26.393,-49.26],[0,0],[18.343,13.531],[-13.369,61.603],[16.807,-21.652]],"v":[[151.669,45.461],[120.64,-58.1],[-65.864,-77.467],[-100.728,-82.604],[-147.748,-17.722],[-112.398,104.376],[-154.126,-16.168],[-70.914,-81.08],[-70.335,-81.317],[127.425,-58.144],[126.56,-59.162],[158.173,46.77],[112.167,122.494]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":70,"s":[{"i":[[-7.757,37.124],[8.483,12.743],[33.421,-43.443],[22.815,-4.317],[7.097,-28.054],[-29.159,-28.84],[-4.11,84.085],[-38.304,1.543],[-0.095,0.176],[-31.014,-58.505],[0,0],[14.241,-72.739],[-6.274,8.083]],"o":[[15.132,-80.993],[-34.437,-50.783],[-3.133,3.566],[-21.058,3.984],[-11.568,45.726],[10.577,12.163],[3.536,-72.333],[0.667,-0.027],[26.393,-49.26],[0,0],[18.343,13.531],[-13.369,61.603],[16.807,-21.652]],"v":[[151.669,45.461],[120.64,-58.1],[-65.864,-77.467],[-100.626,-71.441],[-148.288,-23.678],[-113.806,103.623],[-158.728,-1.603],[-70.914,-81.08],[-70.335,-81.317],[127.425,-58.144],[126.56,-59.162],[158.173,46.77],[112.167,122.494]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[-7.757,37.124],[8.483,12.743],[33.421,-43.443],[21.766,-1.513],[4.256,-36.267],[-30.211,-32.649],[-10.213,88.478],[-27.783,-18.484],[-0.095,0.176],[-31.014,-58.505],[0,0],[14.241,-72.739],[-6.274,8.083]],"o":[[15.132,-80.993],[-34.437,-50.783],[-5.773,7.066],[-25.413,1.767],[-4.314,36.76],[10.577,12.163],[8.852,-76.684],[0.556,0.37],[26.393,-49.26],[0,0],[18.343,13.531],[-13.369,61.603],[16.807,-21.652]],"v":[[151.669,45.461],[120.64,-58.1],[-65.864,-77.467],[-100.728,-82.604],[-147.748,-17.722],[-112.398,104.376],[-154.126,-16.168],[-70.914,-81.08],[-70.335,-81.317],[127.425,-58.144],[126.56,-59.162],[158.173,46.77],[112.167,122.494]],"c":true}]},{"t":115,"s":[{"i":[[-7.757,37.124],[8.483,12.743],[33.421,-43.443],[21.766,-1.513],[7.1,-28.053],[-34.941,-37.761],[-11.174,88.362],[-37.879,-6.729],[-0.095,0.176],[-31.014,-58.505],[0,0],[14.241,-72.739],[-6.274,8.083]],"o":[[15.132,-80.993],[-34.437,-50.783],[-3.133,3.566],[-21.38,1.487],[-9.893,39.09],[10.577,12.163],[9.103,-71.845],[0.657,0.117],[26.393,-49.26],[0,0],[18.343,13.531],[-13.369,61.603],[16.807,-21.652]],"v":[[151.669,45.461],[120.64,-58.1],[-65.864,-77.467],[-100.43,-76.305],[-144.99,-26.303],[-112.398,104.376],[-154.982,-10.318],[-70.914,-81.08],[-70.335,-81.317],[127.425,-58.144],[126.56,-59.162],[158.173,46.77],[112.167,122.494]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[172.914,130.827]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[14,54],[4.444,4.955],[34.368,-32.605],[60,57],[5.808,10.261],[-20.215,-19.205],[-39,37]],"o":[[-1.285,-4.957],[6.329,47.928],[-39,37],[-9.629,-9.147],[5.076,22.27],[60,57],[39,-37]],"v":[[144.152,-85.831],[134.574,-101.169],[90.818,27.502],[-135.182,9.502],[-158.152,-19.802],[-121.848,44.169],[104.152,62.169]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819999964097,0.74900004069,0.769000004787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[181.598,191.84]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[4.833,-2.167],[-19.334,0.834],[17,1.667]],"o":[[-22.5,0.333],[-4.834,2.166],[19.333,-0.833],[-17,-1.666]],"v":[[-5.458,-5.521],[-39.916,0.021],[7.084,4.687],[27.75,-3.813]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.987999949736,0.987999949736,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[183.333,35.655]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[17,-23],[-60,-57],[-39,37],[14,54],[0,0],[73,8]],"o":[[-26,-2],[-17,23],[60,57],[39,-37],[-3.654,-14.094],[0,0],[-78.17,-8.566]],"v":[[-66.25,-98.217],[-132.25,-81.217],[-109.75,77.783],[111.75,97.283],[155.75,-45.217],[127.75,-77.217],[33.75,-126.217]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[0,0],[17,-23],[-60,-57],[-39,37],[14,54],[0,0],[73,8]],"o":[[-21.525,-11.852],[-17,23],[60,57],[39,-37],[-3.654,-14.094],[0,0],[-78.17,-8.566]],"v":[[-66.25,-98.217],[-130.836,-87.743],[-109.75,77.783],[111.75,97.283],[155.75,-45.217],[127.75,-77.217],[33.75,-126.217]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":70,"s":[{"i":[[0,0],[17,-23],[-57.731,-43.104],[-39,37],[14,54],[0,0],[73,8]],"o":[[-24.615,-2.505],[-17,23],[66.314,49.512],[39,-37],[-3.654,-14.094],[0,0],[-78.17,-8.566]],"v":[[-66.25,-98.217],[-140.677,-66.566],[-109.75,77.783],[111.75,97.283],[155.75,-45.217],[127.75,-77.217],[33.75,-126.217]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[0,0],[17,-23],[-60,-57],[-39,37],[14,54],[0,0],[73,8]],"o":[[-21.525,-11.852],[-17,23],[60,57],[39,-37],[-3.654,-14.094],[0,0],[-78.17,-8.566]],"v":[[-66.25,-98.217],[-130.836,-87.743],[-109.75,77.783],[111.75,97.283],[155.75,-45.217],[127.75,-77.217],[33.75,-126.217]],"c":true}]},{"t":115,"s":[{"i":[[0,0],[17,-23],[-60,-57],[-39,37],[14,54],[0,0],[73,8]],"o":[[-26,-2],[-17,23],[60,57],[39,-37],[-3.654,-14.094],[0,0],[-78.17,-8.566]],"v":[[-66.25,-98.217],[-132.25,-81.217],[-109.75,77.783],[111.75,97.283],[155.75,-45.217],[127.75,-77.217],[33.75,-126.217]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[170,151.226]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"ear L","parent":28,"sr":1,"ks":{"p":{"a":0,"k":[192.291,30.766,0]},"a":{"a":0,"k":[86.998,57.532,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-9.095,-14.043]],"o":[[9.581,30.312],[0,0]],"v":[[-3.436,-30.542],[2.95,30.542]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[61.699,46.215]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[5.857,0.673],[-23.668,-30.971]],"o":[[-8.132,-22.162],[-5.857,-0.672],[23.669,30.97]],"v":[[35.349,-10.926],[7.914,-52.801],[-11.681,22.503]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.090000002992,0.176000004189,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[50.348,68.473]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[4.383,9.068],[-0.078,-3.404]],"o":[[1.704,-11.734],[10.745,4.364],[0.078,3.404]],"v":[[-14.265,31.038],[-14.276,-31.038],[14.198,12.608]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317999985639,0.250999989229,0.340999977261,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[72.8,49.412]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[5.857,0.673],[-23.668,-30.971]],"o":[[-8.132,-22.162],[-5.857,-0.672],[23.669,30.97]],"v":[[35.349,-10.926],[7.914,-52.801],[-11.681,22.503]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541000007181,0.455000005984,0.573000021542,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[50.348,68.473]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"neck","sr":1,"ks":{"p":{"a":0,"k":[338.345,409.653,0]},"a":{"a":0,"k":[161.669,147.644,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":2,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":42,"s":[103,97,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":72,"s":[97,103,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":92,"s":[103,97,100]},{"t":120,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.381,-0.905],[10.284,-27.252],[34.027,-15.556],[-0.905,0.653],[-10.166,27.433],[24.062,15.756],[-0.891,1.362]],"o":[[26.373,17.266],[-10.304,28.396],[-1.034,0.474],[27.897,-20.172],[9.347,-24.506],[-1.414,-0.925],[0.906,-1.382]],"v":[[3.203,-58.085],[26.866,13.038],[-35.302,58.516],[-36.245,56.915],[21.253,10.978],[-0.063,-53.077],[-0.936,-57.222]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[291.254,59.24]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.682,0.395],[15.347,32.96],[-0.949,-1.273],[-11.486,-18.784],[0.895,1]],"o":[[-32.358,-18.752],[-0.689,-1.481],[15.381,20.602],[4.645,7.557],[0.523,0.584]],"v":[[18.695,39.303],[-19.765,-37.046],[-17.495,-38.425],[6.315,21.575],[19.559,38.242]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[20.704,82.895]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[23,15],[0,0],[0,0],[0,0],[24,-17.375],[-9.775,9.164],[-14,36]],"o":[[0,0],[0,0],[0,0],[44.333,7.666],[16.5,5.25],[48,-45],[11.581,-29.781]],"v":[[43.71,-73.582],[-52.547,-60.97],[-68.29,-52.582],[-77.29,0.418],[-62.665,65.543],[-26.29,64.418],[65.71,-4.582]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819999964097,0.74900004069,0.769000004787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[249.114,77.241]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[-1.024,-17.807],[-36,-3.834],[6.167,6.5],[41.167,12.167]],"o":[[2.167,37.667],[36,3.833],[-6.166,-6.5],[-34.276,-10.13]],"v":[[-69.988,-22.18],[3.179,36.154],[64.845,10.82],[-16.488,-3.68]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[{"i":[[-2.605,-17.645],[-36,-3.834],[6.167,6.5],[38.152,9.528]],"o":[[3.491,23.649],[36,3.833],[-6.166,-6.5],[-34.677,-8.66]],"v":[[-64.888,-8.014],[-2.893,35.124],[55.859,12.623],[-16.245,4.305]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":70,"s":[{"i":[[-1.024,-17.807],[-36,-3.834],[6.167,6.5],[41.167,12.167]],"o":[[2.167,37.667],[36,3.833],[-6.166,-6.5],[-34.276,-10.13]],"v":[[-69.988,-22.18],[3.179,36.154],[64.845,10.82],[-16.488,-3.68]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":90,"s":[{"i":[[-2.605,-17.645],[-36,-3.834],[6.167,6.5],[38.152,9.528]],"o":[[3.491,23.649],[36,3.833],[-6.166,-6.5],[-34.677,-8.66]],"v":[[-64.888,-8.014],[-2.893,35.124],[55.859,12.623],[-16.245,4.305]],"c":true}]},{"t":115,"s":[{"i":[[-1.024,-17.807],[-36,-3.834],[6.167,6.5],[41.167,12.167]],"o":[[2.167,37.667],[36,3.833],[-6.166,-6.5],[-34.276,-10.13]],"v":[[-69.988,-22.18],[3.179,36.154],[64.845,10.82],[-16.488,-3.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.987999949736,0.987999949736,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[109.312,94.505]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[11.581,-29.78],[48,-45],[33,26],[15,25]],"o":[[23,15],[-14,36],[-33.726,31.616],[-32.52,-25.622],[0,0]],"v":[[128.96,-73.308],[150.96,-4.308],[55.626,41.692],[-124.04,44.692],[-162.54,-34.975]],"c":false}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[163.864,76.967]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"body","sr":1,"ks":{"p":{"a":0,"k":[336.91,498.263,0]},"a":{"a":0,"k":[160.66,196.596,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":40,"s":[103,97,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":70,"s":[97,103,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":90,"s":[103,97,100]},{"t":117,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[5,-9]],"o":[[25.13,-47.91],[0,0],[0,0]],"v":[[125.436,48.632],[133.435,-48.632],[-150.565,-28.632]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[176.815,63.632]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.165,-17.083],[6.74,-1.296],[0.425,1.477],[-6.682,21.544],[-0.518,-0.16]],"o":[[-0.455,46.656],[-1.538,0.296],[-6.116,-21.534],[0.161,-0.518],[1.376,0.427]],"v":[[-0.565,-18.478],[1.853,36.903],[-1.602,34.775],[-1.911,-36.391],[-0.682,-37.038]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[11.935,116.928]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.432,3.581],[-32.508,23.877],[0.782,-0.856],[-16.566,-47.916]],"o":[[-16.339,-41.075],[0.934,-0.687],[-20.147,22.104],[1.299,3.754]],"v":[[-6.777,42.277],[21.05,-45.171],[22.335,-43.744],[-1.17,40.141]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[212.224,141.791]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0.5,16],[0,0],[8,-22.5],[0,0]],"o":[[-8.167,-16],[-0.5,-16],[0,0],[-8,22.5],[0,0]],"v":[[20.084,33.083],[11.916,-5.917],[18.251,-43.25],[-12.084,-5.584],[-7.249,43.25]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.666,140.25]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-23.723,7.742],[0,0],[54.204,-2.708],[0,0],[29.5,-25],[5.5,-17],[1.542,-18.312]],"o":[[144,-47],[0,0],[0,0],[21,5.5],[-29.5,25],[-4.868,15.048],[19.215,-1.335]],"v":[[-31.569,77.47],[70.431,-90.531],[-28.808,-86.048],[-48.569,-66.531],[-46.694,-8.906],[-88.569,35.47],[-95.931,90.531]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819999964097,0.74900004069,0.769000004787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[239.819,105.531]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5,-9],[-13,-54],[-133.963,43.724],[0,0]],"o":[[-9.713,17.482],[0,0],[144,-47],[0,0]],"v":[[-141.75,-77.667],[-154.75,38.334],[40.25,70.334],[142.25,-97.667]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[168,112.667]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"hand","sr":1,"ks":{"p":{"a":0,"k":[180.099,310.667,0]},"a":{"a":0,"k":[63.599,15,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[0,0],[3,-15],[-25,2],[-7,3]],"o":[[-18,4],[-3,15],[25,-2],[7,-3]],"v":[[14,-71],[-27,-35],[-21,69],[39,2]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[5.862,-12.632],[-28.202,-0.477],[-11.611,10.258]],"o":[[-18,4],[-15.681,16.622],[40.721,0.854],[6.424,-3.757]],"v":[[14,-71],[-34.301,-39.355],[-24.221,56.979],[37.975,-0.818]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[9.542,-9.589],[-32.32,-3.661],[-17.54,19.591]],"o":[[-18,4],[-31.985,18.708],[28.853,2.952],[5.682,-4.729]],"v":[[14,-71],[-43.689,-44.955],[-33.506,44.951],[36.658,-4.441]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[0,0],[14.172,-5.759],[-37.5,-7.667],[-25,31.333]],"o":[[-18,4],[-52.5,21.333],[31.579,6.456],[4.75,-5.953]],"v":[[14,-71],[-55.5,-52],[-51.75,37.75],[35,-9]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[11.574,-7.907],[-34.594,-5.419],[-20.815,24.745]],"o":[[-18,4],[-40.991,19.861],[30.05,4.49],[5.273,-5.266]],"v":[[14,-71],[-48.874,-48.047],[-38.35,43.516],[35.93,-6.442]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[6.751,-11.897],[-29.197,-1.246],[-13.044,12.514]],"o":[[-18,4],[-19.621,17.126],[35.591,2.732],[6.244,-3.992]],"v":[[14,-71],[-36.57,-40.708],[-22.841,52.851],[37.657,-1.694]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[3,-15],[-25,2],[-7,3]],"o":[[-18,4],[-3,15],[25,-2],[7,-3]],"v":[[14,-71],[-27,-35],[-21,69],[39,2]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[61,86]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.833,12.083],[5.334,-3.167],[0,0]],"o":[[11.333,-2.584],[-1.834,-12.084],[-5.333,3.167],[0,0]],"v":[[-5.833,19.292],[16.833,-7.208],[2.999,-13.875],[-18.667,4.792]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[53.5,35.708]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[0,0],[3,-15],[-25,2],[-7,3]],"o":[[-18,4],[-3,15],[25,-2],[7,-3]],"v":[[14,-71],[-27,-35],[-21,69],[39,2]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[5.862,-12.632],[-28.202,-0.477],[-11.611,10.258]],"o":[[-18,4],[-15.681,16.622],[40.721,0.854],[6.424,-3.757]],"v":[[14,-71],[-34.301,-39.355],[-24.221,56.979],[37.975,-0.818]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[9.542,-9.589],[-32.32,-3.661],[-17.54,19.591]],"o":[[-18,4],[-31.985,18.708],[28.853,2.952],[5.682,-4.729]],"v":[[14,-71],[-43.689,-44.955],[-33.506,44.951],[36.658,-4.441]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":45,"s":[{"i":[[0,0],[14.172,-5.759],[-37.5,-7.667],[-25,31.333]],"o":[[-18,4],[-52.5,21.333],[31.579,6.456],[4.75,-5.953]],"v":[[14,-71],[-55.5,-52],[-51.75,37.75],[35,-9]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[0,0],[11.574,-7.907],[-34.594,-5.419],[-20.815,24.745]],"o":[[-18,4],[-40.991,19.861],[30.05,4.49],[5.273,-5.266]],"v":[[14,-71],[-48.874,-48.047],[-38.35,43.516],[35.93,-6.442]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":80,"s":[{"i":[[0,0],[6.751,-11.897],[-29.197,-1.246],[-13.044,12.514]],"o":[[-18,4],[-19.621,17.126],[35.591,2.732],[6.244,-3.992]],"v":[[14,-71],[-36.57,-40.708],[-22.841,52.851],[37.657,-1.694]],"c":true}]},{"t":100,"s":[{"i":[[0,0],[3,-15],[-25,2],[-7,3]],"o":[[-18,4],[-3,15],[25,-2],[7,-3]],"v":[[14,-71],[-27,-35],[-21,69],[39,2]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.819999964097,0.74900004069,0.769000004787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[61,86]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"neck 2","parent":30,"sr":1,"ks":{"p":{"a":0,"k":[31.165,93.769,0]},"a":{"a":0,"k":[55.37,109.11,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[16.958,6.358],[-1.029,-37.04],[-22,20]],"o":[[-32,-12],[1,36],[22,-20]],"v":[[12.514,-41],[-44.486,-2],[23.515,33]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.458999992819,0.322000002394,0.361000001197,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.948999980852,0.913999968884,0.925,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[60.514,68]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]}
\ No newline at end of file
diff --git a/Tests/LottieMesh/Resources/Fireworks.json b/Tests/LottieMesh/Resources/Fireworks.json
new file mode 100644
index 0000000000..998fbd775c
--- /dev/null
+++ b/Tests/LottieMesh/Resources/Fireworks.json
@@ -0,0 +1 @@
+{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"512_fireworks dop","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"fireworks !!yellow 4 vspish","refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[100]},{"t":86,"s":[0]}]},"r":{"a":0,"k":-10.694},"p":{"a":0,"k":[977.5,379,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[80,80,100]}},"ao":0,"w":486,"h":486,"ip":36,"op":86,"st":6,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"fireworks pink 5","refId":"comp_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":83,"s":[100]},{"t":94,"s":[0]}]},"r":{"a":0,"k":-0.087},"p":{"a":0,"k":[1279.5,464,0]},"a":{"a":0,"k":[243,243,0]}},"ao":0,"w":486,"h":486,"ip":48,"op":94,"st":18,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"fireworks !!yellow 4 vspish","refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[100]},{"t":115,"s":[0]}]},"r":{"a":0,"k":23.994},"p":{"a":0,"k":[305.5,923,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[78.011,78.011,100]}},"ao":0,"w":486,"h":486,"ip":65,"op":115,"st":35,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"fireworks pink 5","refId":"comp_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[100]},{"t":81,"s":[0]}]},"p":{"a":0,"k":[441.5,398,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[157.86,157.86,100]}},"ao":0,"w":486,"h":486,"ip":31,"op":81,"st":1,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"Trace Shape Layer 1: Path 6 [1.1]","cl":"1","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[-120.256]},{"t":29,"s":[-176.947]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[1286,792,0],"to":[-172.306,-276.404,0],"ti":[305.23,23.654,0]},{"t":29,"s":[468.343,405.178,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":10,"s":[40,40,100]},{"t":30,"s":[150,150,100]}]}},"ao":0,"ip":0,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"!!!rocket pink 2","parent":5,"refId":"comp_4","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":1,"op":36,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"fireworks !!yellow 4 vspish","refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":89,"s":[100]},{"t":99,"s":[0]}]},"r":{"a":0,"k":-10.694},"p":{"a":0,"k":[633.5,1163,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[128.178,128.178,100]}},"ao":0,"w":486,"h":486,"ip":49,"op":99,"st":19,"bm":0},{"ddd":0,"ind":8,"ty":3,"nm":"Trace Shape Layer 1: Path 5 [1.2]","cl":"2","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[98.009]},{"t":46,"s":[185.502]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[1236,866,0],"to":[-48.547,286.872,0],"ti":[243.966,25.033,0]},{"t":46,"s":[667.754,1167.601,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":16,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,3.222]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":26,"s":[40,40,100]},{"t":46,"s":[130,130,100]}]}},"ao":0,"ip":16,"op":47,"st":-44,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"!!!rocket yellow 2","parent":8,"refId":"comp_5","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":16,"op":52,"st":16,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"fireworks !!blue 4 vspish","refId":"comp_6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":89,"s":[100]},{"t":100,"s":[0]}]},"r":{"a":0,"k":-0.087},"p":{"a":0,"k":[695.5,832,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[201.159,201.159,100]}},"ao":0,"w":486,"h":486,"ip":54,"op":100,"st":24,"bm":0},{"ddd":0,"ind":11,"ty":3,"nm":"Trace Shape Layer 1: Path 8 [1.8]","cl":"8","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[112.759]},{"t":51,"s":[219.154]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.82,"y":0},"t":22,"s":[1352,810,0],"to":[-138.369,305.192,0],"ti":[207.549,143.516,0]},{"t":51,"s":[705.012,835.922,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":22,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,-2.333]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":32,"s":[40,40,100]},{"t":52,"s":[180,180,100]}]}},"ao":0,"ip":22,"op":52,"st":-38,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"!!!rocket blue 2","parent":11,"refId":"comp_7","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":22,"op":58,"st":22,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"fireworks pink 5","refId":"comp_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[100]},{"t":125,"s":[0]}]},"p":{"a":0,"k":[1025.5,1230,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[-119.753,119.753,100]}},"ao":0,"w":486,"h":486,"ip":76,"op":125,"st":45,"bm":0},{"ddd":0,"ind":14,"ty":3,"nm":"Trace Shape Layer 1: Path 2 [1.4]","cl":"4","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[-0.702]},"o":{"x":[0.333],"y":[0]},"t":43,"s":[56.31]},{"i":{"x":[0.667],"y":[0.756]},"o":{"x":[0.333],"y":[0.183]},"t":53,"s":[67.425]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[1.177]},"t":62,"s":[160.472]},{"t":73,"s":[184.041]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43,"s":[1266,806,0],"to":[170.946,262.206,0],"ti":[330.742,0.419,0]},{"t":73,"s":[1052.274,1229.28,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":43,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,4.333]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":53,"s":[40,40,100]},{"t":73,"s":[120,120,100]}]}},"ao":0,"ip":43,"op":74,"st":-17,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"!!!rocket pink 2","parent":14,"refId":"comp_4","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":43,"op":79,"st":43,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"fireworks !!blue 4 vspish","refId":"comp_6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[100]},{"t":137,"s":[0]}]},"r":{"a":0,"k":12.326},"p":{"a":0,"k":[560.5,539,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[-177.976,177.976,100]}},"ao":0,"w":486,"h":486,"ip":87,"op":137,"st":57,"bm":0},{"ddd":0,"ind":17,"ty":3,"nm":"Trace Shape Layer 1: Path 7 [1.5]","cl":"5","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[155.577]},{"t":84,"s":[228.764]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55,"s":[1194,772,0],"to":[-257.364,110.984,0],"ti":[153.116,221.504,0]},{"t":84,"s":[574.62,567.336,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":55,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,-1.222]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":65,"s":[40,40,100]},{"t":85,"s":[170,170,100]}]}},"ao":0,"ip":55,"op":85,"st":-5,"bm":0},{"ddd":0,"ind":18,"ty":0,"nm":"!!!rocket blue 2","parent":17,"refId":"comp_7","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":55,"op":91,"st":55,"bm":0},{"ddd":0,"ind":19,"ty":0,"nm":"fireworks !!yellow 4 vspish","refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[100]},{"t":175,"s":[0]}]},"r":{"a":0,"k":-0.478},"p":{"a":0,"k":[1038.964,328.288,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[132.042,132.042,100]}},"ao":0,"w":486,"h":486,"ip":125,"op":175,"st":95,"bm":0},{"ddd":0,"ind":20,"ty":3,"nm":"Trace Shape Layer 1: Path 3 [1.6]","cl":"6","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":93,"s":[-102.219]},{"t":122,"s":[-148.865]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93,"s":[1362,740,0],"to":[-42.181,-182.712,0],"ti":[156.249,102.291,0]},{"t":122,"s":[1054.382,305.32,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":93,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":103,"s":[40,40,100]},{"t":123,"s":[130,130,100]}]}},"ao":0,"ip":93,"op":150,"st":33,"bm":0},{"ddd":0,"ind":21,"ty":0,"nm":"!!!rocket yellow 2","parent":20,"refId":"comp_5","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":93,"op":129,"st":93,"bm":0},{"ddd":0,"ind":22,"ty":0,"nm":"fireworks !!blue 4 vspish","refId":"comp_6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[100]},{"t":180,"s":[0]}]},"r":{"a":0,"k":11.633},"p":{"a":0,"k":[655.5,1077,0]},"a":{"a":0,"k":[243,243,0]},"s":{"a":0,"k":[-100,100,100]}},"ao":0,"w":486,"h":486,"ip":134,"op":180,"st":105,"bm":0},{"ddd":0,"ind":23,"ty":3,"nm":"Trace Shape Layer 1: Path 1 [1.3]","cl":"3","sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[0.703]},"o":{"x":[0.333],"y":[0]},"t":102,"s":[59.135]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.623]},"t":112,"s":[132.595]},{"t":131,"s":[199.135]}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102,"s":[1156,836,0],"to":[208.414,207.152,0],"ti":[260.651,130.415,0]},{"t":131,"s":[655.186,1070.59,0]}]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":102,"s":[20,20,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,6.556]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":112,"s":[40,40,100]},{"t":132,"s":[100,100,100]}]}},"ao":0,"ip":102,"op":132,"st":42,"bm":0},{"ddd":0,"ind":24,"ty":0,"nm":"!!!rocket blue 2","parent":23,"refId":"comp_7","sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-167.855,0.94,0]},"a":{"a":0,"k":[256.94,395.855,0]}},"ao":0,"w":512,"h":512,"ip":102,"op":138,"st":102,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pink","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[100]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":100,"s":[0]}]},"p":{"a":0,"k":[245.75,225.75,0]},"a":{"a":0,"k":[2.75,-17.25,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.629,0.629,0.629],"y":[0,0,0]},"t":30,"s":[43.235,43.235,100]},{"t":40,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.312,8.525],[3.244,0.766],[0.278,-4.348]],"o":[[-1.312,-8.525],[-5.358,-1.265],[-0.278,4.348]],"v":[[6.13,-24.571],[8.951,-66.768],[5.014,-23.638]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.55,23.061],[3.244,0.766],[0.753,-11.762]],"o":[[-3.55,-23.061],[-5.358,-1.265],[-0.753,11.762]],"v":[[11.788,-37.733],[14.47,-92.154],[8.769,-35.211]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.113,0.736],[3.244,0.766],[0.024,-0.376]],"o":[[-0.113,-0.736],[-5.358,-1.265],[-0.024,0.376]],"v":[[1.251,-14.165],[19.643,-137.56],[1.155,-14.085]],"c":true}]},{"t":100,"s":[{"i":[[0.002,0.014],[3.244,0.766],[0,-0.007]],"o":[[-0.002,-0.014],[-5.358,-1.265],[0,0.007]],"v":[[29.568,-215.114],[32.47,-250.154],[29.566,-215.113]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.775,14.209],[6.351,4.603],[2.652,-16.185]],"o":[[0.775,-14.209],[-4.056,-2.94],[-2.652,16.185]],"v":[[7.231,-23.969],[18.873,-61.186],[6.13,-24.571]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-2.096,38.439],[6.351,4.603],[7.173,-43.783]],"o":[[2.096,-38.439],[-4.056,-2.94],[-7.173,43.783]],"v":[[14.767,-36.105],[37.637,-108.647],[11.788,-37.733]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.067,1.227],[6.351,4.603],[0.229,-1.398]],"o":[[0.067,-1.227],[-4.056,-2.94],[-0.229,1.398]],"v":[[1.932,-14.242],[49.85,-146.868],[1.837,-14.294]],"c":true}]},{"t":100,"s":[{"i":[[-0.001,0.023],[6.351,4.603],[0.004,-0.026]],"o":[[0.001,-0.023],[-4.056,-2.94],[-0.004,0.026]],"v":[[75.069,-225.113],[80.137,-241.647],[75.068,-225.114]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.749,6.829],[6.31,5.609],[1.359,-6.48]],"o":[[-0.749,-6.829],[-3.554,-3.159],[-1.359,6.48]],"v":[[8.596,-23.217],[31.24,-73.607],[7.231,-23.969]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.026,18.473],[6.31,5.609],[3.677,-17.531]],"o":[[-2.026,-18.473],[-3.554,-3.159],[-3.677,17.531]],"v":[[18.46,-34.07],[47.481,-104.355],[14.767,-36.105]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.065,0.59],[6.31,5.609],[0.117,-0.56]],"o":[[-0.065,-0.59],[-3.554,-3.159],[-0.117,0.56]],"v":[[2.166,-13.836],[63.43,-142.576],[2.048,-13.901]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.011],[6.31,5.609],[0.002,-0.011]],"o":[[-0.001,-0.011],[-3.554,-3.159],[-0.002,0.011]],"v":[[84.072,-198.612],[102.981,-237.355],[84.069,-198.613]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.199,15.089],[5.581,6.595],[12.758,-17.563]],"o":[[6.199,-15.089],[-2.72,-3.214],[-12.758,17.563]],"v":[[9.486,-22.203],[48.882,-61.987],[8.281,-23.532]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-16.769,40.819],[5.581,6.595],[34.513,-47.512]],"o":[[16.769,-40.819],[-2.72,-3.214],[-34.513,47.512]],"v":[[21.719,-30.475],[103.282,-109.764],[18.46,-34.07]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.535,1.303],[5.581,6.595],[1.102,-1.517]],"o":[[0.535,-1.303],[-2.72,-3.214],[-1.102,1.517]],"v":[[3.204,-13.341],[122.823,-131.604],[3.099,-13.456]],"c":true}]},{"t":100,"s":[{"i":[[-0.01,0.025],[5.581,6.595],[0.021,-0.029]],"o":[[0.01,-0.025],[-2.72,-3.214],[-0.021,0.029]],"v":[[156.574,-169.11],[171.282,-185.764],[156.572,-169.112]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.223,9.945],[2.258,6.104],[6.726,-10.205]],"o":[[4.223,-9.945],[-1.817,-4.912],[-6.726,10.205]],"v":[[11.177,-20.424],[48.778,-58.677],[9.801,-21.888]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-11.423,26.904],[2.258,6.104],[18.195,-27.606]],"o":[[11.423,-26.904],[-1.817,-4.912],[-18.195,27.606]],"v":[[25.439,-26.516],[74.48,-79.649],[21.719,-30.475]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.365,0.859],[2.258,6.104],[0.581,-0.882]],"o":[[0.365,-0.859],[-1.817,-4.912],[-0.581,0.882]],"v":[[3.264,-12.932],[105.66,-107.524],[3.146,-13.058]],"c":true}]},{"t":100,"s":[{"i":[[-0.007,0.016],[2.258,6.104],[0.011,-0.017]],"o":[[0.007,-0.016],[-1.817,-4.912],[-0.011,0.017]],"v":[[152.076,-147.108],[182.98,-176.649],[152.074,-147.11]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-3.334,6.648],[-1.799,5.518],[9.673,-9.931]],"o":[[3.334,-6.648],[1.878,-5.758],[-9.673,9.931]],"v":[[12.897,-19.193],[48.972,-44.204],[11.177,-20.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-9.018,17.983],[-1.799,5.518],[26.167,-26.865]],"o":[[9.018,-17.983],[1.878,-5.758],[-26.167,26.865]],"v":[[30.094,-23.186],[81.927,-62.022],[25.439,-26.516]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.288,0.574],[-1.799,5.518],[0.836,-0.858]],"o":[[0.288,-0.574],[1.878,-5.758],[-0.836,0.858]],"v":[[3.883,-12.491],[120.292,-83.862],[3.734,-12.597]],"c":true}]},{"t":100,"s":[{"i":[[-0.005,0.011],[-1.799,5.518],[0.016,-0.016]],"o":[[0.005,-0.011],[1.878,-5.758],[-0.016,0.016]],"v":[[188.579,-121.106],[215.427,-138.022],[188.576,-121.108]],"c":true}]}]},"nm":"Path 6","hd":false},{"ind":6,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-9.869,8.704],[-3.432,7.058],[12.009,-7.852]],"o":[[9.869,-8.704],[2.981,-6.13],[-12.009,7.852]],"v":[[12.832,-16.628],[74.374,-42.527],[12.897,-19.193]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-26.696,23.547],[-3.432,7.058],[32.485,-21.24]],"o":[[26.696,-23.547],[2.981,-6.13],[-32.485,21.24]],"v":[[29.916,-16.247],[117.42,-56.876],[30.094,-23.186]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.852,0.752],[-3.432,7.058],[1.037,-0.678]],"o":[[0.852,-0.752],[2.981,-6.13],[-1.037,0.678]],"v":[[3.897,-11.786],[151.618,-69.521],[3.902,-12.008]],"c":true}]},{"t":100,"s":[{"i":[[-0.016,0.014],[-3.432,7.058],[0.02,-0.013]],"o":[[0.016,-0.014],[2.981,-6.13],[-0.02,0.013]],"v":[[190.079,-83.601],[236.42,-100.876],[190.079,-83.606]],"c":true}]}]},"nm":"Path 7","hd":false},{"ind":7,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-14.199,3.553],[-2.249,4.962],[22.38,-4.873]],"o":[[22.287,-5.577],[4.049,-8.935],[-22.38,4.873]],"v":[[10.861,-15.141],[88.919,-15.854],[12.516,-16.944]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-38.412,9.611],[-2.249,4.962],[60.542,-13.183]],"o":[[60.291,-15.085],[4.049,-8.935],[-60.542,13.183]],"v":[[25.439,-11.372],[154.986,-15.381],[29.916,-16.247]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.227,0.307],[-2.249,4.962],[1.933,-0.421]],"o":[[1.925,-0.482],[4.049,-8.935],[-1.933,0.421]],"v":[[3.934,-10.704],[182.862,-13.944],[4.077,-10.859]],"c":true}]},{"t":100,"s":[{"i":[[-0.023,0.006],[-2.249,4.962],[0.036,-0.008]],"o":[[0.036,-0.009],[4.049,-8.935],[-0.036,0.008]],"v":[[204.076,-11.599],[251.986,-10.381],[204.079,-11.601]],"c":true}]}]},"nm":"Path 8","hd":false},{"ind":8,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.711,2.16],[-0.839,0.958],[12.251,-0.88]],"o":[[4.711,-2.16],[1.348,-1.539],[-12.251,0.88]],"v":[[9.079,-12.869],[39.383,-12.388],[10.861,-14.826]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-12.744,5.843],[-0.839,0.958],[33.14,-2.38]],"o":[[12.744,-5.843],[1.348,-1.539],[-33.14,2.38]],"v":[[20.619,-6.076],[78.015,-8.131],[25.439,-11.372]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.407,0.187],[-0.839,0.958],[1.058,-0.076]],"o":[[0.407,-0.187],[1.348,-1.539],[-1.058,0.076]],"v":[[4.224,-10.251],[128.305,-2.239],[4.378,-10.421]],"c":true}]},{"t":100,"s":[{"i":[[-0.008,0.004],[-0.839,0.958],[0.02,-0.001]],"o":[[0.008,-0.004],[1.348,-1.539],[-0.02,0.001]],"v":[[238.573,10.405],[253.015,12.369],[238.576,10.401]],"c":true}]}]},"nm":"Path 9","hd":false},{"ind":9,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-19.702,-2.401],[-2.482,3.154],[14.29,0.398]],"o":[[19.702,2.401],[2.595,-3.297],[-14.29,-0.398]],"v":[[9.698,-12.307],[64.597,6.088],[9.395,-13.184]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-53.298,-6.494],[-2.482,3.154],[38.657,1.077]],"o":[[53.298,6.494],[2.595,-3.297],[-38.657,-1.077]],"v":[[21.439,-3.705],[93.137,16.968],[20.619,-6.076]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.702,-0.207],[-2.482,3.154],[1.234,0.034]],"o":[[1.702,0.207],[2.595,-3.297],[-1.234,-0.034]],"v":[[3.71,-9.493],[135.812,35.216],[3.683,-9.569]],"c":true}]},{"t":100,"s":[{"i":[[-0.032,-0.004],[-2.482,3.154],[0.023,0.001]],"o":[[0.032,0.004],[2.595,-3.297],[-0.023,-0.001]],"v":[[196.573,63.406],[241.637,80.468],[196.573,63.405]],"c":true}]}]},"nm":"Path 10","hd":false},{"ind":10,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-9.253,-3.386],[-5.064,4.293],[16.792,8.51]],"o":[[9.253,3.386],[4.126,-3.498],[-16.792,-8.51]],"v":[[11.313,-9.614],[54.159,17.809],[9.698,-11.992]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-25.032,-9.16],[-5.064,4.293],[45.426,23.022]],"o":[[25.032,9.16],[4.126,-3.498],[-45.426,-23.022]],"v":[[25.808,2.729],[103.197,50.764],[21.439,-3.705]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.799,-0.292],[-5.064,4.293],[1.451,0.735]],"o":[[0.799,0.292],[4.126,-3.498],[-1.451,-0.735]],"v":[[3.881,-8.702],[137.251,71.886],[3.742,-8.908]],"c":true}]},{"t":100,"s":[{"i":[[-0.015,-0.006],[-5.064,4.293],[0.027,0.014]],"o":[[0.015,0.006],[4.126,-3.498],[-0.027,-0.014]],"v":[[199.076,108.91],[221.697,124.264],[199.073,108.906]],"c":true}]}]},"nm":"Path 11","hd":false},{"ind":11,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.526,-3.215],[-3.502,3.162],[9.671,6.481]],"o":[[6.526,3.215],[3.502,-3.162],[-9.671,-6.481]],"v":[[10.491,-8.994],[73.057,40.569],[11.313,-9.929]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-17.653,-8.697],[-3.502,3.162],[26.163,17.532]],"o":[[17.653,8.697],[3.502,-3.162],[-26.163,-17.532]],"v":[[23.585,5.258],[96.236,63.117],[25.808,2.729]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.564,-0.278],[-3.502,3.162],[0.835,0.56]],"o":[[0.564,0.278],[3.502,-3.162],[-0.835,-0.56]],"v":[[3.102,-8.57],[126.267,90.274],[3.173,-8.651]],"c":true}]},{"t":100,"s":[{"i":[[-0.011,-0.005],[-3.502,3.162],[0.016,0.011]],"o":[[0.011,0.005],[3.502,-3.162],[-0.016,-0.011]],"v":[[144.075,112.911],[200.736,157.617],[144.076,112.91]],"c":true}]}]},"nm":"Path 12","hd":false},{"ind":12,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-13.475,-10.482],[-4.458,3.463],[10.073,7.849]],"o":[[13.475,10.482],[4.458,-3.463],[-10.073,-7.849]],"v":[[9.502,-7.951],[52.87,45.892],[10.491,-8.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-36.453,-28.355],[-4.458,3.463],[27.249,21.233]],"o":[[36.453,28.355],[4.458,-3.463],[-27.249,-21.233]],"v":[[20.909,7.226],[94.655,93.669],[23.585,5.258]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.164,-0.905],[-4.458,3.463],[0.87,0.678]],"o":[[1.164,0.905],[4.458,-3.463],[-0.87,-0.678]],"v":[[3.049,-7.986],[116.926,120.825],[3.134,-8.049]],"c":true}]},{"t":100,"s":[{"i":[[-0.022,-0.017],[-4.458,3.463],[0.016,0.013]],"o":[[0.022,0.017],[4.458,-3.463],[-0.016,-0.013]],"v":[[146.573,153.413],[172.155,188.169],[146.575,153.411]],"c":true}]}]},"nm":"Path 13","hd":false},{"ind":13,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.775,-3.087],[-3.488,2.449],[10.229,14.193]],"o":[[4.775,3.087],[3.488,-2.449],[-10.229,-14.193]],"v":[[7.167,-8.135],[48.091,56.332],[9.187,-7.951]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-12.917,-8.352],[-3.488,2.449],[27.671,38.395]],"o":[[12.917,8.352],[3.488,-2.449],[-27.671,-38.395]],"v":[[15.445,6.729],[62.124,74.78],[20.909,7.226]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.412,-0.267],[-3.488,2.449],[0.884,1.226]],"o":[[0.412,0.267],[3.488,-2.449],[-0.884,-1.226]],"v":[[2.321,-8.079],[84.827,113.576],[2.495,-8.063]],"c":true}]},{"t":100,"s":[{"i":[[-0.008,-0.005],[-3.488,2.449],[0.017,0.023]],"o":[[0.008,0.005],[3.488,-2.449],[-0.017,-0.023]],"v":[[103.57,147.412],[141.124,209.78],[103.573,147.413]],"c":true}]}]},"nm":"Path 14","hd":false},{"ind":14,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-5.362,-6.334],[-2.659,0.857],[3.694,6.735]],"o":[[5.361,6.334],[6.495,-2.093],[-3.694,-6.735]],"v":[[5.102,-9.295],[26.477,35.494],[7.167,-8.45]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-14.504,-17.136],[-2.659,0.857],[9.994,18.219]],"o":[[14.504,17.136],[6.495,-2.093],[-9.994,-18.219]],"v":[[9.859,4.445],[41.772,64.349],[15.445,6.729]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.463,-0.547],[-2.659,0.857],[0.319,0.582]],"o":[[0.463,0.547],[6.495,-2.093],[-0.319,-0.582]],"v":[[2.027,-7.553],[61.313,111.91],[2.205,-7.48]],"c":true}]},{"t":100,"s":[{"i":[[-0.009,-0.01],[-2.659,0.857],[0.006,0.011]],"o":[[0.009,0.01],[6.495,-2.093],[-0.006,-0.011]],"v":[[94.566,193.911],[109.772,229.849],[94.57,193.912]],"c":true}]}]},"nm":"Path 15","hd":false},{"ind":15,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.43,-4.038],[-5.792,0.94],[0.557,8.126]],"o":[[0.43,4.038],[3.71,-0.602],[-0.557,-8.126]],"v":[[3.69,-10.876],[17.077,55.965],[5.102,-9.295]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-1.164,-10.924],[-5.792,0.94],[1.507,21.981]],"o":[[1.164,10.924],[3.71,-0.602],[-1.507,-21.981]],"v":[[6.039,0.167],[22.28,71.891],[9.859,4.445]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.037,-0.349],[-5.792,0.94],[0.048,0.702]],"o":[[0.037,0.349],[3.71,-0.602],[-0.048,-0.702]],"v":[[1.242,-7.799],[31.62,122.9],[1.364,-7.663]],"c":true}]},{"t":100,"s":[{"i":[[-0.001,-0.007],[-5.792,0.94],[0.001,0.013]],"o":[[0.001,0.007],[3.71,-0.602],[-0.001,-0.013]],"v":[[43.064,185.408],[54.78,249.391],[43.066,185.411]],"c":true}]}]},"nm":"Path 16","hd":false},{"ind":16,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.268,-1.072],[-8.766,2.77],[-1.453,20.282]],"o":[[-0.268,1.072],[8.956,-2.83],[1.453,-20.282]],"v":[[2.258,-8.649],[11.352,48.031],[4.005,-10.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0.726,-2.901],[-8.766,2.77],[-3.93,54.866]],"o":[[-0.726,2.901],[8.956,-2.83],[3.93,-54.866]],"v":[[1.312,6.192],[20.655,115.675],[6.039,0.167]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.023,-0.093],[-8.766,2.77],[-0.125,1.752]],"o":[[-0.023,0.093],[8.956,-2.83],[0.125,-1.752]],"v":[[0.956,-7.06],[24.966,155.333],[1.106,-7.252]],"c":true}]},{"t":100,"s":[{"i":[[0,-0.002],[-8.766,2.77],[-0.002,0.033]],"o":[[0,0.002],[8.956,-2.83],[0.002,-0.033]],"v":[[32.561,227.912],[35.655,253.675],[32.564,227.908]],"c":true}]}]},"nm":"Path 17","hd":false},{"ind":17,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.674,-5.118],[-9.34,-10.304],[-5.656,20.469]],"o":[[-0.674,5.118],[5.335,5.886],[5.656,-20.469]],"v":[[0.319,-7.862],[-7.754,79.004],[2.258,-8.649]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.822,-13.845],[-9.34,-10.304],[-15.299,55.372]],"o":[[-1.822,13.845],[5.335,5.886],[15.299,-55.372]],"v":[[-3.933,8.322],[-10.119,142.549],[1.312,6.192]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.058,-0.442],[-9.34,-10.304],[-0.489,1.768]],"o":[[-0.058,0.442],[5.335,5.886],[0.489,-1.768]],"v":[[0.157,-7.436],[-14.573,174.16],[0.325,-7.504]],"c":true}]},{"t":100,"s":[{"i":[[0.001,-0.008],[-9.34,-10.304],[-0.009,0.033]],"o":[[-0.001,0.008],[5.335,5.886],[0.009,-0.033]],"v":[[-16.442,193.413],[-25.619,252.549],[-16.439,193.412]],"c":true}]}]},"nm":"Path 18","hd":false},{"ind":18,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.134,-4.491],[-8.529,-8.273],[-6.696,18.034]],"o":[[-1.134,4.491],[3.166,3.071],[6.696,-18.034]],"v":[[-1.761,-9.64],[-13.598,51.106],[0.003,-7.546]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.068,-12.148],[-8.529,-8.273],[-18.113,48.786]],"o":[[-3.068,12.148],[3.166,3.071],[18.113,-48.786]],"v":[[-8.707,2.658],[-24.162,110.866],[-3.933,8.322]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.098,-0.388],[-8.529,-8.273],[-0.578,1.558]],"o":[[-0.098,0.388],[3.166,3.071],[0.578,-1.558]],"v":[[-0.446,-7.378],[-34.795,149.374],[-0.293,-7.198]],"c":true}]},{"t":100,"s":[{"i":[[0.002,-0.007],[-8.529,-8.273],[-0.011,0.029]],"o":[[-0.002,0.007],[3.166,3.071],[0.011,-0.029]],"v":[[-51.445,211.91],[-61.162,244.866],[-51.442,211.913]],"c":true}]}]},"nm":"Path 19","hd":false},{"ind":19,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[9.217,-13.161],[-2.977,-4.918],[-5.725,7.174]],"o":[[-9.217,13.161],[1.721,2.843],[5.725,-7.174]],"v":[[-1.154,-12.499],[-42.53,56.34],[-1.761,-9.64]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[24.934,-35.602],[-2.977,-4.918],[-15.488,19.406]],"o":[[-24.934,35.602],[1.721,2.843],[15.488,-19.406]],"v":[[-7.064,-5.076],[-47.418,71.95],[-8.707,2.658]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.796,-1.137],[-2.977,-4.918],[-0.495,0.62]],"o":[[-0.796,1.137],[1.721,2.843],[0.495,-0.62]],"v":[[-0.876,-8.404],[-71.414,113.188],[-0.929,-8.157]],"c":true}]},{"t":100,"s":[{"i":[[0.015,-0.021],[-2.977,-4.918],[-0.009,0.012]],"o":[[-0.015,0.021],[1.721,2.843],[0.009,-0.012]],"v":[[-88.944,151.405],[-130.918,215.45],[-88.945,151.41]],"c":true}]}]},"nm":"Path 20","hd":false},{"ind":20,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.626,-7.899],[-8.084,-5.313],[-13.235,7.936]],"o":[[-2.855,2.957],[3.306,2.173],[10.979,-6.583]],"v":[[-4.169,-12.723],[-45.434,37.243],[-0.839,-12.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[20.63,-21.369],[-8.084,-5.313],[-35.802,21.467]],"o":[[-7.724,8],[3.306,2.173],[29.699,-17.808]],"v":[[-16.072,-5.684],[-88.796,85.335],[-7.064,-5.076]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.659,-0.682],[-8.084,-5.313],[-1.143,0.686]],"o":[[-0.247,0.255],[3.306,2.173],[0.948,-0.569]],"v":[[-1.962,-8.308],[-113.223,114.36],[-1.674,-8.288]],"c":true}]},{"t":100,"s":[{"i":[[0.012,-0.013],[-8.084,-5.313],[-0.022,0.013]],"o":[[-0.005,0.005],[3.306,2.173],[0.018,-0.011]],"v":[[-150.949,160.405],[-173.796,186.335],[-150.944,160.405]],"c":true}]}]},"nm":"Path 21","hd":false},{"ind":21,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[14.117,-10.21],[-5.628,-14.818],[-24.822,15.796]],"o":[[-14.086,10.188],[3.081,4.733],[21.924,-13.951]],"v":[[-3.765,-15.075],[-82.448,63.651],[-4.484,-12.723]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[38.189,-27.621],[0.797,-25.979],[-67.149,42.73]],"o":[[-38.106,27.561],[-0.163,5.311],[59.307,-37.74]],"v":[[-14.127,-12.046],[-117.611,102.283],[-16.072,-5.684]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[1.219,-0.882],[-2.13,-20.894],[-2.144,1.364]],"o":[[-1.217,0.88],[1.315,5.048],[1.894,-1.205]],"v":[[-1.552,-9.148],[-137.871,121.393],[-1.614,-8.945]],"c":true}]},{"t":100,"s":[{"i":[[0.023,-0.017],[-9.389,-8.283],[-0.04,0.026]],"o":[[-0.023,0.017],[4.981,4.394],[0.036,-0.023]],"v":[[-123.948,110.901],[-188.111,168.783],[-123.949,110.905]],"c":true}]}]},"nm":"Path 22","hd":false},{"ind":22,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.794,-1.349],[0.656,-8.742],[-9.144,3.299]],"o":[[-0.388,0.187],[-0.279,3.717],[9.144,-3.298]],"v":[[-4.357,-15.318],[-39.206,7.131],[-3.283,-15.062]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[7.56,-3.648],[1.507,-8.661],[-24.737,8.919]],"o":[[-1.051,0.507],[-0.641,3.682],[24.737,-8.919]],"v":[[-17.032,-12.737],[-65.957,17.111],[-14.127,-12.046]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.241,-0.117],[1.12,-8.698],[-0.79,0.285]],"o":[[-0.034,0.016],[-0.476,3.698],[0.79,-0.285]],"v":[[-2.581,-9.26],[-111.172,47.264],[-2.489,-9.238]],"c":true}]},{"t":100,"s":[{"i":[[0.004,-0.003],[0.158,-8.79],[-0.014,0.008]],"o":[[-0.001,0],[-0.067,3.737],[0.014,-0.008]],"v":[[-196.685,103.922],[-223.294,122.037],[-196.683,103.922]],"c":true}]}]},"nm":"Path 23","hd":false},{"ind":23,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.652,-0.002],[9.621,-23.195],[-30.797,11.034]],"o":[[-0.652,0.002],[1.201,4.343],[30.797,-11.034]],"v":[[-5.938,-16.534],[-91.485,36.162],[-4.524,-15.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.764,-0.005],[34.94,-49.93],[-83.311,29.848]],"o":[[-1.764,0.005],[-2.448,3.499],[83.311,-29.848]],"v":[[-20.857,-15.139],[-161.337,74.163],[-17.032,-12.737]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.056,0],[23.404,-37.749],[-2.66,0.953]],"o":[[-0.056,0],[-0.786,3.883],[2.66,-0.953]],"v":[[-2.437,-9.678],[-180.879,84.077],[-2.314,-9.602]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0],[-5.203,-7.542],[-0.05,0.018]],"o":[[-0.001,0],[3.337,4.837],[0.05,-0.018]],"v":[[-175.952,77.399],[-229.337,108.663],[-175.95,77.401]],"c":true}]}]},"nm":"Path 24","hd":false},{"ind":24,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[3.079,-0.51],[0.18,-8.491],[-14.645,0.239]],"o":[[-3.079,0.51],[-0.099,4.7],[14.645,-0.239]],"v":[[-8.996,-17.288],[-60.714,-4.682],[-6.253,-16.534]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[8.33,-1.38],[0.18,-8.491],[-39.617,0.647]],"o":[[-8.33,1.38],[-0.099,4.7],[39.617,-0.647]],"v":[[-28.279,-17.178],[-119.213,6.829],[-20.857,-15.139]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.266,-0.044],[0.18,-8.491],[-1.265,0.021]],"o":[[-0.266,0.044],[-0.099,4.7],[1.265,-0.021]],"v":[[-3.288,-10.423],[-157.506,13.654],[-3.051,-10.357]],"c":true}]},{"t":100,"s":[{"i":[[0.005,-0.001],[0.18,-8.491],[-0.024,0]],"o":[[-0.005,0.001],[-0.099,4.7],[0.024,0]],"v":[[-223.707,24.648],[-252.463,30.579],[-223.702,24.649]],"c":true}]}]},"nm":"Path 25","hd":false},{"ind":25,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.002,-0.018],[4.376,-11.742],[-21.034,-0.505]],"o":[[-5.002,0.018],[-1,2.682],[21.034,0.505]],"v":[[-8.482,-18.09],[-80.041,-5.651],[-8.996,-16.972]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[13.533,-0.05],[4.376,-11.742],[-56.9,-1.366]],"o":[[-13.533,0.05],[-1,2.682],[56.9,1.366]],"v":[[-26.888,-20.202],[-133.179,-1.393],[-28.279,-17.178]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.432,-0.002],[4.376,-11.742],[-1.817,-0.044]],"o":[[-0.432,0.002],[-1,2.682],[1.817,0.044]],"v":[[-2.957,-10.802],[-167.52,2.271],[-3.002,-10.706]],"c":true}]},{"t":100,"s":[{"i":[[0.008,0],[4.376,-11.742],[-0.034,-0.001]],"o":[[-0.008,0],[-1,2.682],[0.034,0.001]],"v":[[-201.456,2.646],[-252.679,11.357],[-201.457,2.648]],"c":true}]}]},"nm":"Path 26","hd":false},{"ind":26,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.015,0.648],[9.285,-5.938],[-12.687,-1.577]],"o":[[-1.837,-0.296],[-5.457,3.49],[12.687,1.577]],"v":[[-7.193,-19.109],[-55.539,-18.566],[-8.167,-18.09]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[10.862,1.752],[9.285,-5.938],[-34.32,-4.266]],"o":[[-4.969,-0.802],[-5.457,3.49],[34.32,4.266]],"v":[[-24.253,-22.959],[-119.714,-21.877],[-26.888,-20.202]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.347,0.056],[9.285,-5.938],[-1.096,-0.136]],"o":[[-0.159,-0.026],[-5.457,3.49],[1.096,0.136]],"v":[[-3.256,-11.254],[-157.719,-22.883],[-3.34,-11.166]],"c":true}]},{"t":100,"s":[{"i":[[0.007,0.001],[9.285,-5.938],[-0.021,-0.003]],"o":[[-0.003,0],[-5.457,3.49],[0.021,0.003]],"v":[[-231.204,-25.606],[-251.964,-25.377],[-231.206,-25.604]],"c":true}]}]},"nm":"Path 27","hd":false},{"ind":27,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.393,1.499],[5.601,-5.319],[-6.035,-3.074]],"o":[[-4.393,-1.499],[-2.043,1.94],[7.22,3.678]],"v":[[-5.608,-19.397],[-48.68,-27.903],[-7.508,-19.109]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[11.885,4.055],[5.601,-5.319],[-16.326,-8.316]],"o":[[-11.885,-4.055],[-2.043,1.94],[19.531,9.948]],"v":[[-19.113,-23.736],[-77.851,-34.052],[-24.253,-22.959]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.38,0.13],[5.601,-5.319],[-0.521,-0.266]],"o":[[-0.38,-0.129],[-2.043,1.94],[0.624,0.318]],"v":[[-2.828,-11.723],[-125.77,-43.679],[-2.992,-11.698]],"c":true}]},{"t":100,"s":[{"i":[[0.007,0.002],[5.601,-5.319],[-0.01,-0.005]],"o":[[-0.007,-0.002],[-2.043,1.94],[0.012,0.006]],"v":[[-210.701,-60.106],[-244.601,-67.552],[-210.704,-60.106]],"c":true}]}]},"nm":"Path 28","hd":false},{"ind":28,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.221,2.81],[2.362,-11.3],[-20.382,-17.294]],"o":[[-5.221,-2.81],[-1.358,6.576],[20.382,17.294]],"v":[[-7.193,-23.937],[-71.1,-48.972],[-5.293,-19.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[14.123,7.602],[4.156,-15.533],[-55.138,-46.784]],"o":[[-14.123,-7.602],[-2.317,8.659],[55.138,46.784]],"v":[[-24.253,-36.018],[-168.703,-94.857],[-19.113,-23.736]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.451,0.243],[3.339,-13.604],[-1.761,-1.494]],"o":[[-0.451,-0.243],[-1.88,7.71],[1.761,1.494]],"v":[[-2.925,-12.804],[-184.078,-101.754],[-2.761,-12.412]],"c":true}]},{"t":100,"s":[{"i":[[0.008,0.005],[1.312,-8.822],[-0.033,-0.028]],"o":[[-0.008,-0.005],[-0.797,5.357],[0.033,0.028]],"v":[[-205.454,-113.613],[-222.203,-118.857],[-205.451,-113.606]],"c":true}]}]},"nm":"Path 29","hd":false},{"ind":29,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.26,4.445],[7.011,-4.124],[-10.385,-10.766]],"o":[[-0.326,-0.199],[-7.011,4.124],[16.897,17.517]],"v":[[-5.801,-24.959],[-56.419,-56.973],[-7.193,-23.937]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[19.64,12.023],[7.011,-4.124],[-28.094,-29.123]],"o":[[-0.881,-0.54],[-7.011,4.124],[45.711,47.385]],"v":[[-20.488,-38.784],[-98.519,-86.459],[-24.253,-36.018]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.627,0.384],[7.011,-4.124],[-0.897,-0.93]],"o":[[-0.028,-0.017],[-7.011,4.124],[1.46,1.513]],"v":[[-2.277,-13.13],[-127.401,-106.145],[-2.397,-13.042]],"c":true}]},{"t":100,"s":[{"i":[[0.012,0.007],[7.011,-4.124],[-0.017,-0.018]],"o":[[-0.001,0],[-7.011,4.124],[0.028,0.029]],"v":[[-164.452,-132.115],[-199.019,-154.959],[-164.454,-132.113]],"c":true}]}]},"nm":"Path 30","hd":false},{"ind":30,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[23.866,20.95],[-0.775,-4.182],[-8.843,-10.116]],"o":[[-23.866,-20.95],[0.799,4.308],[8.843,10.116]],"v":[[-4.127,-25.389],[-47.359,-57.266],[-6.116,-25.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[64.562,56.675],[-0.775,-4.182],[-23.921,-27.366]],"o":[[-64.562,-56.675],[0.799,4.308],[23.921,27.366]],"v":[[-15.108,-39.093],[-105.227,-105.674],[-20.488,-38.784]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[2.062,1.81],[-0.775,-4.182],[-0.764,-0.874]],"o":[[-2.062,-1.81],[0.799,4.308],[0.764,0.874]],"v":[[-2.169,-13.514],[-128.217,-124.928],[-2.341,-13.504]],"c":true}]},{"t":100,"s":[{"i":[[0.039,0.034],[-0.775,-4.182],[-0.014,-0.016]],"o":[[-0.039,-0.034],[0.799,4.308],[0.014,0.016]],"v":[[-169.449,-161.115],[-185.227,-172.674],[-169.452,-161.115]],"c":true}]}]},"nm":"Path 31","hd":false},{"ind":31,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.861,0.835],[6.082,-5.676],[-10.296,-14.684]],"o":[[-0.861,-0.835],[-2.893,2.699],[10.296,14.684]],"v":[[-0.366,-23.104],[-55.133,-75.787],[-4.127,-25.389]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.329,2.258],[6.082,-5.676],[-27.852,-39.724]],"o":[[-2.329,-2.258],[-2.893,2.699],[27.852,39.724]],"v":[[-4.933,-32.911],[-79.889,-105.589],[-15.108,-39.093]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.074,0.072],[6.082,-5.676],[-0.889,-1.268]],"o":[[-0.074,-0.072],[-2.893,2.699],[0.889,1.268]],"v":[[-1.214,-13.207],[-103.885,-130.878],[-1.539,-13.404]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.001],[6.082,-5.676],[-0.017,-0.024]],"o":[[-0.001,-0.001],[-2.893,2.699],[0.017,0.024]],"v":[[-120.443,-152.612],[-163.389,-193.589],[-120.449,-152.615]],"c":true}]}]},"nm":"Path 32","hd":false},{"ind":32,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[3.542,19.181],[3.073,-0.981],[-0.152,-9.722]],"o":[[-3.542,-19.181],[-2.453,0.783],[0.152,9.722]],"v":[[0.539,-22.899],[-14.028,-61.928],[-0.366,-22.788]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[9.581,51.887],[3.073,-0.981],[-0.412,-26.3]],"o":[[-9.581,-51.887],[-2.453,0.783],[0.412,26.3]],"v":[[-2.483,-33.211],[-31.215,-116.327],[-4.933,-32.911]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.306,1.657],[3.073,-0.981],[-0.013,-0.84]],"o":[[-0.306,-1.657],[-2.453,0.783],[0.013,0.84]],"v":[[-0.517,-14.182],[-44.865,-152.105],[-0.596,-14.172]],"c":true}]},{"t":100,"s":[{"i":[[0.006,0.031],[3.073,-0.981],[0,-0.016]],"o":[[-0.006,-0.031],[-2.453,0.783],[0,0.016]],"v":[[-72.441,-227.612],[-78.715,-240.827],[-72.443,-227.612]],"c":true}]}]},"nm":"Path 33","hd":false},{"ind":33,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.512,3.311],[7.408,-2.515],[0.879,-9.578]],"o":[[-0.512,-3.311],[-4.274,1.451],[-0.879,9.578]],"v":[[1.755,-24.526],[-15.758,-89.049],[0.539,-22.899]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.386,8.956],[7.408,-2.515],[2.377,-25.91]],"o":[[-1.386,-8.956],[-4.274,1.451],[-2.377,25.91]],"v":[[0.805,-37.612],[-23.169,-137.772],[-2.483,-33.211]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.044,0.286],[7.408,-2.515],[0.076,-0.827]],"o":[[-0.044,-0.286],[-4.274,1.451],[-0.076,0.827]],"v":[[0.051,-14.02],[-30.928,-169.383],[-0.054,-13.879]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.005],[7.408,-2.515],[0.001,-0.016]],"o":[[-0.001,-0.005],[-4.274,1.451],[-0.001,0.016]],"v":[[-36.439,-204.114],[-50.169,-247.772],[-36.441,-204.112]],"c":true}]}]},"nm":"Path 34","hd":false},{"ind":34,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.275,0.477],[4.481,1.632],[2.961,-6.55],[-1.425,0.478]],"o":[[-2.55,-0.954],[-6.936,-2.526],[-1.48,3.275],[1.425,-0.478]],"v":[[5.014,-23.954],[2.623,-65.932],[2.07,-24.842],[3.754,-13.991]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.449,1.291],[4.481,1.632],[8.009,-17.719],[-3.855,1.292]],"o":[[-6.899,-2.581],[-6.936,-2.526],[-4.004,8.859],[3.855,-1.292]],"v":[[8.769,-35.211],[4.357,-117.808],[0.805,-37.612],[5.361,-8.261]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.11,0.041],[4.481,1.632],[0.256,-0.566],[-0.123,0.041]],"o":[[-0.22,-0.082],[-6.936,-2.526],[-0.128,0.283],[0.123,-0.041]],"v":[[0.788,-14.342],[3.064,-156.748],[0.534,-14.419],[0.679,-13.482]],"c":true}]},{"t":100,"s":[{"i":[[0.002,0.001],[4.481,1.632],[0.005,-0.011],[-0.002,0.001]],"o":[[-0.004,-0.002],[-6.936,-2.526],[-0.002,0.005],[0.002,-0.001]],"v":[[1.066,-235.113],[-0.143,-253.308],[1.061,-235.114],[1.064,-235.097]],"c":true}]}]},"nm":"Path 35","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0.166,1,1,1,0.291,1,0.986,0.894,0.379,1,0.973,0.788,0.522,0.961,0.876,0.394,0.708,0.922,0.78,0,0.865,0.961,0.888,0.206,0.999,1,0.996,0.412,0.166,1,0.291,1,0.379,1,0.522,0.9,0.708,0.8,0.865,0.8,0.999,0.8]}},"s":{"a":0,"k":[-12,-18]},"e":{"a":0,"k":[-123.596,-129.596]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6.793,2.506]},"a":{"a":0,"k":[-6.793,2.506]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"white splashes precomp","refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[243,243,0]},"a":{"a":0,"k":[243,243,0]}},"ao":0,"w":486,"h":486,"ip":-4,"op":99,"st":-5,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"ogonek5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[1],"y":[0]},"t":30,"s":[100]},{"t":45,"s":[0]}]},"p":{"a":0,"k":[241,232.25,0]},"a":{"a":0,"k":[-51,43,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15.828]},"t":30,"s":[0,0,100]},{"t":45,"s":[151,151,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[164,164]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0.166,1,1,1,0.291,1,0.986,0.894,0.379,1,0.973,0.788,0.522,0.961,0.876,0.394,0.708,0.922,0.78,0,0.865,0.961,0.888,0.206,0.999,1,0.996,0.412,0.166,1,0.291,1,0.379,1,0.522,0.9,0.708,0.8,0.865,0.8,0.999,0.8]}},"s":{"a":0,"k":[1,0.5]},"e":{"a":0,"k":[-61.596,-53.096]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 7","hd":false},{"ty":"tr","p":{"a":0,"k":[-51,43]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":30,"op":45,"st":-45,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"rose splashes 80%","sr":1,"ks":{"o":{"a":0,"k":80},"p":{"a":0,"k":[283.287,244.6,0]},"a":{"a":0,"k":[40.287,1.6,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[8.458,2.584],[-1.178,1.927]],"o":[[0,0],[1.178,-1.927]],"v":[[47.396,-2.495],[66.132,8.305]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[17.915,5.472],[-2.495,4.082]],"o":[[0,0],[2.494,-4.082]],"v":[[127.416,14.655],[167.1,37.528]],"c":true}]},{"t":100,"s":[{"i":[[2.922,0.892],[-0.407,0.666]],"o":[[0,0],[0.407,-0.666]],"v":[[231.544,79.714],[238.016,83.445]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-7.371,11.75],[-2.605,-2.954]],"o":[[0,0],[2.605,2.954]],"v":[[-19.417,21.61],[-33.613,50.565]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-16.511,26.322],[-5.835,-6.617]],"o":[[0,0],[5.835,6.617]],"v":[[-54.289,78.774],[-86.09,143.637]],"c":true}]},{"t":100,"s":[{"i":[[-2.019,3.219],[-0.714,-0.809]],"o":[[0,0],[0.714,0.809]],"v":[[-120,208.391],[-123.889,216.322]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.272,18.752],[3.489,0]],"o":[[0,0],[-2.919,0]],"v":[[13.337,36.564],[18.266,63.997]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[9.5,41.701],[7.758,0]],"o":[[0,0],[-6.491,0]],"v":[[34.44,120.578],[45.401,181.583]],"c":true}]},{"t":100,"s":[{"i":[[1.211,5.316],[0.989,0]],"o":[[0,0],[-0.827,0]],"v":[[49.981,239.625],[51.378,247.402]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.357,10.649],[2.065,-1.671]],"o":[[0,0],[-2.092,1.693]],"v":[[27.785,38.344],[37.752,60.836]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[12.682,25.21],[4.889,-3.955]],"o":[[0,0],[-4.953,4.007]],"v":[[73.965,124.33],[97.561,177.576]],"c":true}]},{"t":100,"s":[{"i":[[1.068,2.124],[0.412,-0.333]],"o":[[0,0],[-0.417,0.338]],"v":[[112.746,219.25],[114.734,223.735]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.125,6.764],[2.818,-3.288]],"o":[[0,0],[-1.952,2.278]],"v":[[39.186,19.394],[56.431,42.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[16.508,15.671],[6.529,-7.617]],"o":[[0,0],[-4.523,5.277]],"v":[[103.804,73.868],[143.76,126.64]],"c":true}]},{"t":100,"s":[{"i":[[1.631,1.548],[0.645,-0.753]],"o":[[0,0],[-0.447,0.521]],"v":[[178.352,168.75],[182.3,173.964]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[14.003,-18.483],[-2.995,-2.598]],"o":[[0,0],[2.346,2.035]],"v":[[19.896,-54.149],[37.88,-77.508]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[31.33,-41.355],[-6.701,-5.813]],"o":[[0,0],[5.249,4.553]],"v":[[52.828,-125.71],[93.066,-177.974]],"c":true}]},{"t":100,"s":[{"i":[[3.858,-5.092],[-0.825,-0.716]],"o":[[0,0],[0.646,0.561]],"v":[[119.615,-214],[124.57,-220.435]],"c":true}]}]},"nm":"Path 6","hd":false},{"ind":6,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.092,-13.223],[3.225,-0.461]],"o":[[0,0],[-3.225,0.461]],"v":[[-11.7,-53.501],[-23.447,-74.576]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-13.694,-29.721],[7.248,-1.036]],"o":[[0,0],[-7.248,1.036]],"v":[[-33.744,-123.528],[-60.149,-170.902]],"c":true}]},{"t":100,"s":[{"i":[[-1.641,-3.562],[0.869,-0.124]],"o":[[0,0],[-0.869,0.124]],"v":[[-92.793,-229.25],[-95.958,-234.928]],"c":true}]}]},"nm":"Path 7","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.996078431373,0.403921568627,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 7","hd":false},{"ty":"tr","p":{"a":0,"k":[40.287,1.6]},"a":{"a":0,"k":[40.287,1.6]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"rose splashes 40%","sr":1,"ks":{"o":{"a":0,"k":40},"p":{"a":0,"k":[255.462,250.532,0]},"a":{"a":0,"k":[12.462,7.532,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.498,-1.717],[-2.802,-3.967]],"o":[[-1.32,0.907],[0,0]],"v":[[-27.909,-69.864],[-23.485,-62.918]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[5.583,-3.836],[-6.261,-8.864]],"o":[[-2.949,2.026],[0,0]],"v":[[-77.365,-168.395],[-67.479,-152.872]],"c":true}]},{"t":100,"s":[{"i":[[0.692,-0.476],[-0.776,-1.099]],"o":[[-0.366,0.251],[0,0]],"v":[[-104.452,-204.425],[-103.226,-202.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.758,-1.202],[3.089,-1.172]],"o":[[0,0],[-3.089,1.172]],"v":[[-40.584,-41.866],[-51.165,-45.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-10.775,-2.722],[6.996,-2.654]],"o":[[0,0],[-6.996,2.654]],"v":[[-111.836,-92.023],[-135.799,-100.881]],"c":true}]},{"t":100,"s":[{"i":[[-1.235,-0.312],[0.802,-0.304]],"o":[[0,0],[-0.802,0.304]],"v":[[-194.867,-116.25],[-197.612,-117.265]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.418,17.711],[-4.713,-1.091]],"o":[[0,0],[2.758,0.638]],"v":[[-22.297,35.041],[-30.452,64.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-14.835,40.938],[-10.895,-2.522]],"o":[[0,0],[6.375,1.475]],"v":[[-62.088,115.52],[-80.938,183.907]],"c":true}]},{"t":100,"s":[{"i":[[-1.49,4.112],[-1.094,-0.253]],"o":[[0,0],[0.64,0.148]],"v":[[-89,203.172],[-90.893,210.041]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.125,2.009],[-1.205,-2.41]],"o":[[-0.644,-1.15],[1.205,2.41]],"v":[[60.208,34.488],[58.28,36.577]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.266,4.046],[-2.428,-4.856]],"o":[[-1.297,-2.316],[2.428,4.856]],"v":[[161.46,114.372],[157.576,118.58]],"c":true}]},{"t":100,"s":[{"i":[[0.457,0.815],[-0.489,-0.978]],"o":[[-0.261,-0.467],[0.489,0.978]],"v":[[178.425,143.467],[177.643,144.315]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.378,1.888],[-0.054,-1.294]],"o":[[-0.244,-1.218],[0.054,1.294]],"v":[[57.201,-37.513],[53.318,-36.704]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0.721,3.602],[-0.103,-2.47]],"o":[[-0.465,-2.323],[0.103,2.47]],"v":[[152.987,-80.688],[145.577,-79.144]],"c":true}]},{"t":100,"s":[{"i":[[0.177,0.884],[-0.025,-0.606]],"o":[[-0.114,-0.57],[0.025,0.606]],"v":[[207.62,-96.485],[205.801,-96.106]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.033,1.484],[-0.082,-1.894]],"o":[[0.031,-1.392],[0.082,1.894]],"v":[[53.595,-30.294],[48.408,-29.669]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-0.074,3.328],[-0.185,-4.247]],"o":[[0.069,-3.121],[0.185,4.247]],"v":[[143.792,-61.221],[132.159,-59.821]],"c":true}]},{"t":100,"s":[{"i":[[-0.009,0.404],[-0.022,-0.516]],"o":[[0.008,-0.379],[0.022,0.516]],"v":[[216.285,-76.436],[214.873,-76.266]],"c":true}]}]},"nm":"Path 6","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.996078431373,0.403921568627,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 6","hd":false},{"ty":"tr","p":{"a":0,"k":[12.462,7.532]},"a":{"a":0,"k":[12.462,7.532]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"violet","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[33.333]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":70,"s":[0]}]},"p":{"a":0,"k":[250.172,221.61,0]},"a":{"a":0,"k":[7.172,-21.39,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.629,0.629,0.629],"y":[0,0,0]},"t":30,"s":[43.235,43.235,100]},{"t":40,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[8.424,-5.071],[2.653,-10.693],[8.493,-0.25],[-0.281,-21.575],[8.206,2.479],[-9.071,-18.319],[10.163,-0.826],[-8.504,-13.367],[7.925,-6.142],[-9.44,-13.344],[2.854,-8.942],[-21.641,-24.17],[6.753,-1.287],[-6.374,-4.022],[10.533,-2.098],[-13.32,-3.511],[-1.839,-6.483],[-21.075,-3.827],[-5.954,-6.816],[-11.932,-2.571],[3.257,-17.575],[-38.942,9.134],[-0.325,-7.706],[-8.742,1.73],[-8.801,-7.785],[-30.134,14.717],[-9.382,-4.129],[-16.279,6.661],[1.088,-8.515],[-7.687,7.097],[-6.012,-8.868],[-10.651,19.166],[-10.35,0.696],[-9.579,21.376],[-8.09,4.605],[-5.131,22.602],[-3.808,-4.758],[-0.748,8.961],[-7.254,-2.788],[2.909,7.968],[-7.635,-1.047],[9.08,17.754],[-7.507,3.193],[9.997,10.579],[-6.351,4.692],[9.781,8.968],[0.178,6.817],[17.454,12.482],[0.03,6.973],[12.265,1.257],[-5.162,4.439],[17.018,1.365],[-5.218,7.12],[24.328,-1.527],[-3.121,9.666],[14.883,-6.778],[10.864,5.993],[11.338,-8.563],[5.168,9.097],[9.336,-10.339],[5.422,9.555],[17.401,-17.591],[8.409,7.467],[2.648,-7.068],[8.104,5.903],[5.776,-17.779],[7.39,-3.513],[1.572,-7.178],[9.221,3.529],[4.343,-6.683]],"o":[[-7.125,5.075],[-0.627,-20.281],[-8.492,0.25],[-7.605,-11.419],[-6.68,-3.509],[-2.4,-2.857],[-8.37,0.053],[-2.455,-2.437],[-7.318,5.151],[-25.313,-18.266],[-0.866,7.957],[-15.111,-8.219],[-6.731,1.147],[0,0],[-8.775,1.322],[-36.623,-3.316],[2.35,6.725],[-4.284,0.119],[5.62,5.119],[0,0],[-0.325,7.953],[-14.317,6.526],[0.333,6.979],[-5.382,3.713],[7.32,4.607],[-4.424,3.372],[7.613,2.532],[-10.42,10.905],[-1.668,7.104],[-2.075,4.92],[4.11,6.36],[-1.424,4.903],[7.699,-1.121],[0,0],[8.176,-4.621],[-1.052,23.086],[4.14,4.652],[5.615,9.885],[7.25,2.786],[5.203,5.546],[7.441,1.093],[15.761,17.732],[7.507,-3.193],[5.904,3.732],[6.351,-4.692],[9.84,5.408],[-0.622,-6.552],[19.337,4.71],[0.329,-7.351],[6.418,-1.574],[5.14,-4.409],[27.522,-2.876],[5.215,-7.117],[4.426,-6.277],[2.875,-9.309],[1.399,-5.562],[-7.079,-5.34],[4.34,-9.001],[-5.002,-8.493],[13.638,-18.255],[-5.312,-9.225],[0.333,-7.822],[-7.414,-6.268],[3.497,-13.498],[-8.104,-5.903],[-0.973,-5.144],[-8.335,3.293],[-2.994,-1.674],[-9.108,-3.513],[-0.006,-3.457]],"v":[[5.228,-95.512],[7.462,-28.929],[-2.195,-87.293],[6.416,-28.961],[-31.261,-81.602],[2.547,-32.204],[-43.849,-81.375],[0.273,-32.419],[-44.643,-71.2],[-1.483,-31.501],[-68.757,-71.437],[-0.116,-26.024],[-42.303,-41.201],[-2.32,-26.028],[-60.656,-35.365],[-6.28,-25.891],[-67.569,-24.781],[-6.096,-24.791],[-61.84,-18.285],[-3.524,-23.253],[-83.167,12.168],[-3.472,-21.52],[-43.616,2.576],[-3.348,-19.306],[-64.141,31.565],[0.002,-18.262],[-50.895,27.819],[3.739,-17.431],[-29.038,27.111],[2.554,-14.294],[-16.457,46.001],[4.192,-11.614],[-10.643,61.853],[6.528,-12.171],[7.719,52.216],[8.895,-14.393],[13.275,34.112],[10.222,-12.355],[26.825,31.666],[12.417,-11.04],[35.999,36.579],[14.675,-10.481],[49.25,44.887],[15.923,-11.135],[54.41,30.884],[17.017,-12.053],[59.976,24.143],[15.598,-15.029],[60.134,6.365],[15.406,-16.076],[56.972,-8.479],[17.766,-17.986],[90.136,-9.191],[19.955,-19.743],[79.759,-35.208],[20.474,-22.64],[63.92,-44.118],[18.736,-24.334],[63.006,-55.052],[17.431,-26.232],[77.149,-67.057],[16.295,-27.947],[47.537,-73.383],[14.878,-29.037],[41.274,-77.714],[13.733,-29.91],[25.971,-72.901],[12.306,-29.047],[19.524,-85.462],[9.122,-30.564]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[8.849,0.01],[7.184,-28.957],[3.052,-1.273],[-0.761,-58.423],[7.839,-5.353],[-24.563,-49.607],[9.192,-3.975],[-23.029,-36.198],[4.861,-7.946],[-25.563,-36.135],[12.25,-6.125],[-58.602,-65.452],[0.423,-3.502],[-17.26,-10.89],[11.497,-5.096],[-36.071,-9.509],[-2.201,-1.041],[-57.07,-10.364],[-1.998,-10.013],[-32.312,-6.962],[9.36,-30.715],[-105.454,24.735],[0.047,-4.178],[-23.672,4.686],[-7.461,-15.968],[-81.601,39.854],[-8.157,-7.347],[-44.083,18.039],[-3.026,-7.306],[-20.815,19.217],[-8.186,-10.792],[-28.842,51.901],[-12.022,-1.924],[-25.94,57.885],[-10.365,1.613],[-13.894,61.205],[-1.581,0.481],[-2.025,24.266],[-5.413,1.006],[7.876,21.576],[-4.573,1.132],[24.589,48.078],[-6.41,1.365],[27.072,28.648],[-4.858,2.346],[26.485,24.286],[-6.451,3.968],[47.266,33.8],[-2.771,2.906],[33.213,3.403],[-1.167,1.667],[46.083,3.696],[-1.333,9],[65.879,-4.134],[-5.083,7.361],[40.303,-18.354],[15.513,2.68],[30.702,-23.187],[1.943,7.096],[25.282,-27.999],[2.5,7.5],[47.12,-47.637],[6.155,7.421],[7.17,-19.139],[5.169,3.176],[15.641,-48.146],[3.103,0.727],[4.257,-19.437],[6.927,0.949],[11.76,-18.098]],"o":[[-5.323,-0.006],[-1.697,-54.919],[-3.052,1.273],[-20.594,-30.923],[-3.728,2.546],[-6.498,-7.737],[-4.346,1.879],[-6.647,-6.6],[-3.22,5.264],[-68.548,-49.463],[-6.872,3.436],[-40.921,-22.258],[-0.377,3.121],[0,0],[-6.756,2.995],[-99.173,-8.979],[3.585,1.695],[-11.602,0.322],[1.08,5.412],[0,0],[-1.42,4.661],[-38.77,17.671],[-0.025,2.213],[-14.575,10.054],[3.439,7.359],[-11.98,9.131],[3.354,3.021],[-28.218,29.53],[1.451,3.503],[-5.619,13.324],[3.041,4.009],[-3.855,13.277],[4.839,0.774],[0,0],[10.589,-1.648],[-2.849,62.516],[2.488,-0.757],[15.206,26.767],[5.413,-1.006],[14.09,15.019],[4.055,-1.004],[42.68,48.017],[6.41,-1.365],[15.989,10.107],[4.858,-2.346],[26.647,14.644],[5.257,-3.234],[52.364,12.754],[3.745,-3.927],[17.38,-4.263],[1.115,-1.592],[74.53,-7.789],[1.333,-9],[11.985,-16.998],[4.419,-6.4],[3.79,-15.061],[-5.258,-0.908],[11.752,-24.375],[-1.495,-5.458],[36.932,-49.434],[-2.202,-6.607],[0.901,-21.183],[-3.464,-4.176],[9.469,-36.552],[-5.169,-3.176],[-2.634,-13.929],[-5.658,-1.325],[-8.107,-4.533],[-6.628,-0.908],[-0.017,-9.362]],"v":[[3.02,-162.999],[8.243,-41.492],[-9.448,-140.273],[5.428,-41.577],[-66.581,-136.474],[-4.982,-50.303],[-94.937,-141.294],[-11.103,-50.883],[-91.631,-117.558],[-15.827,-48.412],[-150.75,-126.625],[-12.148,-33.673],[-76.677,-54.762],[-18.079,-33.683],[-125.935,-48.926],[-28.737,-33.315],[-144.516,-27.935],[-28.241,-30.355],[-129.957,-16.393],[-21.32,-26.218],[-189.443,52.219],[-21.179,-21.553],[-84.613,22.128],[-20.845,-15.595],[-143.927,91.798],[-11.831,-12.788],[-109.552,77.33],[-1.776,-10.549],[-60.574,69.369],[-4.963,-2.109],[-41.055,117.272],[-0.555,5.102],[-30.196,155.83],[5.729,3.604],[8.665,130.425],[12.099,-2.376],[18.32,81.416],[15.669,3.108],[41.962,76.131],[21.577,6.648],[62.49,91.451],[27.654,8.15],[95.923,118.365],[31.011,6.393],[102.975,84.18],[33.954,3.923],[112.957,71.446],[30.136,-4.087],[107.438,31.594],[29.62,-6.903],[94.5,0.667],[35.97,-12.045],[183.167,5],[41.86,-16.772],[147.562,-47.507],[43.258,-24.567],[106.809,-61.148],[38.582,-29.125],[103.057,-80.596],[35.068,-34.233],[141.167,-109],[32.012,-38.849],[76.865,-113.118],[28.198,-41.782],[66.503,-119.657],[25.119,-44.132],[37.324,-105.068],[21.279,-41.807],[29.931,-135.604],[12.71,-45.889]],"c":true}]},{"t":100,"s":[{"i":[[6.52,-0.499],[0,0],[7.552,-1.773],[0,0],[7.419,-3.974],[0,0],[5.063,-2.794],[0,0],[3.869,-4.058],[0,0],[3.25,-5.125],[0,0],[2.323,-7.262],[0,0],[1.065,-7.426],[0,0],[-0.016,-6.935],[0,0],[0.043,-8.393],[0,0],[-1.943,-5.281],[0,0],[-4.613,-6.872],[0,0],[-4.427,-4.702],[0,0],[-5.552,-5.67],[0,0],[-7.074,-5.131],[0,0],[-7.555,-2.728],[0,0],[-8.696,0.33],[0,0],[-5.835,-0.075],[0,0],[-5.179,-0.584],[0,0],[-7.538,4.131],[0,0],[-4.51,1.951],[0,0],[-7.077,4.865],[0,0],[-5.025,3.68],[0,0],[-5.043,6.946],[0,0],[-2.062,4.094],[0,0],[-1.5,7.666],[0,0],[-1.333,7.5],[0,0],[-0.438,6.493],[0,0],[2.309,7.852],[0,0],[1.057,4.404],[0,0],[1.667,6.5],[0,0],[6.365,6.382],[0,0],[3.503,2.843],[0,0],[5.324,3.432],[0,0],[2.931,0.896],[0,0]],"o":[[-6.521,0.499],[0,0],[-7.552,1.773],[0,0],[-7.419,3.974],[0,0],[-5.063,2.794],[0,0],[-3.869,4.058],[0,0],[-3.25,5.125],[0,0],[-2.323,7.262],[0,0],[-1.065,7.426],[0,0],[0.016,6.935],[0,0],[-0.043,8.393],[0,0],[1.943,5.281],[0,0],[4.613,6.872],[0,0],[4.427,4.702],[0,0],[5.552,5.67],[0,0],[7.074,5.131],[0,0],[7.555,2.728],[0,0],[8.696,-0.33],[0,0],[5.835,0.075],[0,0],[5.18,0.584],[0,0],[7.538,-4.131],[0,0],[4.51,-1.951],[0,0],[7.077,-4.865],[0,0],[5.025,-3.68],[0,0],[5.043,-6.946],[0,0],[2.062,-4.094],[0,0],[1.5,-7.666],[0,0],[1.333,-7.5],[0,0],[0.438,-6.493],[0,0],[-2.309,-7.852],[0,0],[-1.057,-4.404],[0,0],[-1.667,-6.5],[0,0],[-6.365,-6.382],[0,0],[-3.503,-2.843],[0,0],[-5.324,-3.432],[0,0],[-2.931,-0.896],[0,0]],"v":[[0.021,-238.999],[6.522,-22.25],[-22.948,-238.773],[6.486,-22.251],[-111.081,-205.974],[6.353,-22.363],[-136.437,-188.794],[6.274,-22.37],[-151.131,-175.058],[6.214,-22.339],[-176.75,-144.125],[6.261,-22.15],[-199.177,-102.262],[6.185,-22.15],[-209.935,-65.926],[6.048,-22.145],[-215.016,-31.435],[6.055,-22.107],[-215.457,-11.893],[6.143,-22.054],[-201.443,57.219],[6.145,-21.994],[-194.113,74.128],[6.149,-21.918],[-171.427,112.298],[6.265,-21.882],[-163.052,122.83],[6.394,-21.853],[-126.074,156.869],[6.353,-21.745],[-65.055,189.772],[6.41,-21.653],[-38.196,196.33],[6.49,-21.672],[9.165,202.425],[6.572,-21.748],[31.821,199.416],[6.618,-21.678],[80.962,187.631],[6.693,-21.633],[105.49,178.451],[6.771,-21.613],[127.923,167.865],[6.814,-21.636],[157.975,144.18],[6.852,-21.668],[174.957,125.946],[6.803,-21.77],[204.438,84.094],[6.796,-21.806],[223.5,34.166],[6.878,-21.872],[227.667,12],[6.953,-21.933],[227.062,-61.507],[6.971,-22.033],[213.309,-104.148],[6.911,-22.091],[198.057,-137.596],[6.866,-22.157],[195.667,-144],[6.827,-22.216],[142.865,-200.118],[6.778,-22.254],[122.503,-211.157],[6.739,-22.284],[84.324,-230.568],[6.689,-22.254],[51.431,-240.604],[6.58,-22.306]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":80},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.001,0.788,0.314,0,0.707,0.776,0.349,0,1,0.765,0.384,0]}},"s":{"a":0,"k":[4,-20]},"e":{"a":0,"k":[177.39,-20]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"white splashes null","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[244.121,231.173,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15]},"t":0,"s":[10,10,100]},{"t":45,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"white splashes 16","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":-26.39},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[3.692,-18.443],[0.554,28.851],[-4.71,-0.153],[0.91,-34.729]],"o":[[0,0],[-0.811,-42.252],[4.48,0.146],[-0.566,21.614]],"v":[[3.698,-34.289],[7.153,-97.417],[3.704,-163.044],[9.887,-97.551]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.569,-224.224],[-0.708,-233.61],[4.557,-243.199],[6.236,-227.083]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"white splashes 15","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":-37.24},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[2.919,0.028],[0.458,3.186],[-3.113,-0.928],[-0.552,-2.173]],"o":[[-2.457,-0.024],[-0.45,-3.129],[2.517,0.751],[0.826,3.251]],"v":[[7.197,-189.998],[2.396,-196.671],[5.985,-201.733],[10.531,-196.769]],"c":true}]},{"t":105,"s":[{"i":[[0.715,0.672],[-0.218,2.085],[-1.681,-1.58],[0.356,-3.399]],"o":[[-1.528,-1.436],[0.24,-2.295],[2.49,2.34],[-0.102,0.975]],"v":[[3.804,-282.639],[1.73,-288.578],[5.061,-294.644],[6.124,-284.448]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[3.537,-26.73],[0.322,38.379],[-8.051,-1.852],[1.133,-39.172]],"o":[[0,0],[-0.423,-50.388],[5.402,1.243],[-0.739,25.566]],"v":[[8.88,-30.231],[9.352,-111.051],[8.877,-182.906],[15.292,-111.636]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.911,-258.66],[-0.366,-268.047],[4.899,-277.636],[6.578,-261.52]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"white splashes 14","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":-76.9},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.889,-0.602],[1.33,4.021],[-2.184,1.073],[-0.71,-4.999]],"o":[[-2.155,0.687],[-1.33,-4.021],[3.935,-1.933],[0.554,3.902]],"v":[[8.293,-195.666],[2.395,-202.581],[3.004,-212.136],[10.191,-204.071]],"c":true}]},{"t":105,"s":[{"i":[[0.715,0.672],[-0.218,2.085],[-1.681,-1.58],[0.356,-3.399]],"o":[[-1.528,-1.436],[0.24,-2.295],[2.49,2.34],[-0.102,0.975]],"v":[[3.084,-248.643],[1.01,-254.582],[4.342,-260.648],[5.404,-250.452]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[-1.319,42.909],[-4.42,3.366],[0.367,-39.751]],"o":[[0,0],[1.684,-54.774],[4.638,-3.532],[-0.457,49.575]],"v":[[9.093,-35.688],[13.821,-104.066],[9.104,-187.932],[19.987,-125.011]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.192,-224.664],[-1.086,-234.051],[4.179,-243.64],[5.858,-227.523]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"white splashes 13","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":247.61},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.106,-0.312],[0.854,3.094],[-1.739,0.347],[-0.484,-3.307]],"o":[[-1.879,0.53],[-0.854,-3.094],[2.606,-0.52],[0.423,2.893]],"v":[[16.044,-188.261],[11.553,-193.701],[12.489,-200.455],[17.091,-194.354]],"c":true}]},{"t":105,"s":[{"i":[[0.715,0.672],[-0.218,2.085],[-1.681,-1.58],[0.356,-3.399]],"o":[[-1.528,-1.436],[0.24,-2.295],[2.49,2.34],[-0.102,0.975]],"v":[[4.94,-258.315],[2.866,-264.254],[6.198,-270.321],[7.26,-260.124]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0.386,32.409],[-2.865,-1.201],[0.359,-8.729]],"o":[[0,0],[-0.486,-40.852],[8.005,3.357],[-1.553,37.802]],"v":[[16.903,-34.891],[18.1,-112.135],[16.912,-182.742],[22.479,-110.91]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.192,-224.664],[-1.086,-234.051],[4.179,-243.64],[5.858,-227.523]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"white splashes 12","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":233.03},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.981,-0.058],[0.74,5.37],[-3.113,-0.709],[-0.16,-4.987]],"o":[[-1.929,0.057],[-0.74,-5.37],[3.113,0.709],[0.16,4.987]],"v":[[12.221,-233.342],[7.552,-244.188],[10.447,-254.057],[15.155,-243.212]],"c":true}]},{"t":105,"s":[{"i":[[0.715,0.672],[-0.218,2.085],[-1.681,-1.58],[0.356,-3.399]],"o":[[-1.528,-1.436],[0.24,-2.295],[2.49,2.34],[-0.102,0.975]],"v":[[9.651,-292.065],[7.577,-298.004],[10.908,-304.071],[11.971,-293.874]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[1.356,31.642],[-4.56,1.137],[-0.088,-53.09]],"o":[[4.684,-49.409],[-2.183,-50.944],[5.665,-1.413],[0.11,66.517]],"v":[[12.032,-26.322],[15.369,-148.176],[12.025,-227.456],[21.738,-151.886]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[6.902,-258.414],[3.625,-267.801],[8.89,-277.39],[10.569,-261.273]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"white splashes 11","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":214.81},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.507,0.148],[-0.026,1.131],[-1.431,-0.266],[-0.107,-1.096]],"o":[[-1.786,-0.176],[0.031,-1.343],[1.208,0.224],[0.127,1.295]],"v":[[4.516,-198.027],[2.064,-200.467],[4.571,-202.884],[6.56,-200.468]],"c":true}]},{"t":105,"s":[{"i":[[0.372,0.35],[-0.114,1.086],[-0.875,-0.823],[0.185,-1.769]],"o":[[-0.795,-0.747],[0.125,-1.194],[1.296,1.218],[-0.053,0.508]],"v":[[11.374,-296.43],[10.295,-299.521],[12.029,-302.679],[12.582,-297.371]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.573,-0.068],[-0.07,2.424],[-1.723,-0.616],[-0.046,-2.055]],"o":[[-2.138,0.092],[0.076,-2.642],[1.541,0.552],[0.052,2.348]],"v":[[4.364,-207.182],[1.458,-211.938],[4.41,-216.605],[6.732,-211.938]],"c":true}]},{"t":105,"s":[{"i":[[0.715,0.672],[-0.218,2.085],[-1.681,-1.58],[0.356,-3.399]],"o":[[-1.528,-1.436],[0.24,-2.295],[2.49,2.34],[-0.102,0.975]],"v":[[12.529,-308.36],[10.456,-314.299],[13.787,-320.366],[14.849,-310.169]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[1,27.626],[-5.456,-2.345],[0.879,-39.91]],"o":[[1.509,-38.059],[-1.888,-52.164],[5.09,2.188],[-1.019,46.266]],"v":[[5.034,-13.727],[5.006,-113.095],[5.033,-193.482],[10.403,-114.654]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[9.781,-274.709],[6.503,-284.096],[11.769,-293.685],[13.448,-277.569]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"white splashes 10","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":192.69},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0.501,-5.417],[0.307,16.252],[-1.853,0.524],[0.918,-24.972]],"o":[[1.34,-26.772],[-0.617,-32.602],[4.732,-1.338],[-1.024,27.851]],"v":[[9.159,-30.175],[10.331,-94.286],[9.15,-140.552],[13.436,-94.62]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.872,-210.009],[-0.406,-219.396],[4.859,-228.985],[6.538,-212.869]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"white splashes 9","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":178.18},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[2.914,0.483],[-0.75,3.266],[-2.159,-0.434],[0.278,-3.069]],"o":[[-2.731,-0.452],[0.75,-3.266],[2.014,0.405],[-0.319,3.512]],"v":[[5.887,-190.899],[3.433,-198.105],[8.313,-203.983],[10.844,-197.439]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[5.198,-239.911],[1.92,-249.298],[7.185,-258.887],[8.864,-242.771]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[-0.178,30.147],[-3.098,-0.098],[2.065,-33.166]],"o":[[-3.379,-29.806],[0.157,-26.65],[6.602,0.21],[-3.247,52.138]],"v":[[4.103,-38.228],[-0.753,-137.332],[4.092,-183.497],[5.25,-137.283]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.872,-210.009],[-0.406,-219.396],[4.859,-228.985],[6.538,-212.869]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"white splashes 8","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":159.43},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.785,-0.166],[-0.606,2.256],[-1.258,-0.472],[0.237,-1.901]],"o":[[-2.305,0.214],[0.54,-2.01],[1.419,0.532],[-0.209,1.677]],"v":[[1.45,-209.993],[-0.568,-214.537],[2.505,-217.89],[4.374,-213.361]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[5.198,-239.911],[1.92,-249.298],[7.185,-258.887],[8.864,-242.771]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[1.193,46.077],[-4.889,-1.15],[1.642,-42.494]],"o":[[0,0],[-1.052,-40.634],[7.955,1.872],[-2.299,59.509]],"v":[[0.57,-29.865],[-3.566,-125.498],[0.579,-202.91],[2.057,-125.567]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.872,-210.009],[-0.406,-219.396],[4.859,-228.985],[6.538,-212.869]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"white splashes 7","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":121.14},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[-0.156,34.036],[-4.468,-1.124],[3.836,-53.869]],"o":[[-9.01,-37.907],[0.232,-50.528],[6.047,1.521],[-4.23,59.393]],"v":[[-1.995,-37.202],[-13.819,-149.054],[-1.999,-236.043],[-8.402,-150.485]],"c":true}]},{"t":105,"s":[{"i":[[0.894,1.266],[-0.999,3.16],[-2.102,-2.979],[1.628,-5.15]],"o":[[-1.911,-2.708],[1.099,-3.477],[3.114,4.413],[-0.467,1.478]],"v":[[-9.187,-267.183],[-10.516,-277.036],[-3.435,-285.375],[-5.021,-269.249]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"white splashes 6","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":99.54},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[2.915,1.639],[-0.439,2.709],[-2.762,-1.266],[0.258,-2.657]],"o":[[-2.152,-1.211],[0.566,-3.493],[1.834,0.841],[-0.374,3.847]],"v":[[0.236,-176.094],[-2.057,-182.925],[3.531,-188.307],[5.714,-182.155]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[5.198,-239.911],[1.92,-249.298],[7.185,-258.887],[8.864,-242.771]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-2.433,-32.344],[1.471,40.713],[-4.408,-2.527],[1.164,-31.322]],"o":[[0,0],[-1.412,-39.1],[2.484,1.424],[-0.718,19.307]],"v":[[1.045,-42.304],[-7.111,-119.798],[1.052,-167.216],[-0.663,-119.462]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[2.872,-210.009],[-0.406,-219.396],[4.859,-228.985],[6.538,-212.869]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"white splashes 5","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":77.63},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.463,0.517],[-0.149,1.097],[-1.132,-0.252],[0.096,-1.199]],"o":[[-1.11,-0.392],[0.199,-1.463],[1.187,0.264],[-0.125,1.557]],"v":[[3.823,-195.789],[2.539,-198.382],[4.909,-201.046],[6.439,-198.381]],"c":true}]},{"t":105,"s":[{"i":[[0.372,0.35],[-0.114,1.086],[-0.875,-0.822],[0.185,-1.769]],"o":[[-0.795,-0.748],[0.125,-1.194],[1.296,1.218],[-0.053,0.508]],"v":[[4.894,-216.411],[3.814,-219.502],[5.548,-222.66],[6.101,-217.353]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[1.326,0.836],[-0.749,2.262],[-1.249,-0.536],[0.89,-2.237]],"o":[[-1.156,-0.729],[0.838,-2.534],[2.124,0.912],[-1.049,2.636]],"v":[[5.046,-203.717],[4.806,-209.142],[8.46,-213.457],[9.665,-207.855]],"c":true}]},{"t":105,"s":[{"i":[[0.715,0.672],[-0.218,2.085],[-1.681,-1.58],[0.356,-3.399]],"o":[[-1.528,-1.436],[0.24,-2.295],[2.49,2.34],[-0.102,0.975]],"v":[[6.049,-228.341],[3.975,-234.28],[7.307,-240.347],[8.369,-230.151]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[-4.814,-40.706],[-1.895,51.518],[-4.761,-1.911],[1.795,-38.673]],"o":[[0,0],[1.569,-42.637],[2.891,1.16],[-1.202,25.903]],"v":[[3.306,-29.924],[-6.601,-132.191],[3.292,-191.348],[-0.482,-130.244]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[3.3,-194.69],[0.023,-204.077],[5.288,-213.666],[6.967,-197.55]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"white splashes 3","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":35.48},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[2.259,0.86],[-0.661,4.424],[-2.433,-0.341],[1.208,-4.987]],"o":[[-2.13,-0.811],[0.754,-5.049],[3.542,0.496],[-1.185,4.895]],"v":[[1.284,-197.622],[-0.569,-207.285],[4.734,-217.037],[7.318,-206.171]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[5.772,-271.189],[2.494,-280.576],[7.759,-290.165],[9.439,-274.049]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[-1.091,54.207],[-2.162,-1.244],[2.031,-39.647]],"o":[[0,0],[0.873,-43.398],[3.603,2.074],[-2.522,49.212]],"v":[[2.196,-32.287],[-7.332,-149.424],[2.183,-192.763],[-0.137,-136.646]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[3.446,-241.287],[0.168,-250.674],[5.433,-260.263],[7.113,-244.146]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"white splashes 4","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[100]},{"t":105,"s":[0]}]},"r":{"a":0,"k":-3.87},"a":{"a":0,"k":[1.121,-11.827,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[2.46,0.092],[-0.034,1.74],[-1.94,0.288],[-0.039,-1.924]],"o":[[-1.711,-0.064],[0.034,-1.74],[1.94,-0.288],[0.039,1.924]],"v":[[2.715,-178.247],[0.16,-181.736],[3.08,-185.561],[6.197,-182.051]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.498],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[5.626,-224.593],[2.349,-233.98],[7.614,-243.569],[9.293,-227.452]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[2.294,0.008],[0.501,2.89],[-1.583,-0.006],[-0.229,-1.323]],"o":[[-2.933,-0.01],[-0.27,-1.56],[1.343,0.005],[0.392,2.26]],"v":[[1.108,-11.6],[-4.67,-18.237],[-0.404,-20.326],[3.025,-18.209]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":45,"s":[{"i":[[0,0],[0.85,39.256],[-3.929,-0.2],[0.353,-39.178]],"o":[[0,0],[-0.635,-29.308],[6.408,0.327],[-0.331,36.714]],"v":[[1.787,-33.47],[-2.076,-118.748],[1.789,-173.393],[2.474,-118.386]],"c":true}]},{"t":105,"s":[{"i":[[1.129,1.062],[-0.345,3.296],[-2.657,-2.497],[0.563,-5.372]],"o":[[-2.415,-2.27],[0.38,-3.627],[3.936,3.699],[-0.161,1.542]],"v":[[3.3,-194.69],[0.023,-204.077],[5.288,-213.666],[6.967,-197.55]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862747669,0.854901969433,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":105,"st":-60,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pink","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[100]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":100,"s":[0]}]},"p":{"a":0,"k":[245.75,225.75,0]},"a":{"a":0,"k":[2.75,-17.25,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.629,0.629,0.629],"y":[0,0,0]},"t":30,"s":[43.235,43.235,100]},{"t":40,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.312,8.525],[3.244,0.766],[0.278,-4.348]],"o":[[-1.312,-8.525],[-5.358,-1.265],[-0.278,4.348]],"v":[[6.13,-24.571],[8.951,-66.768],[5.014,-23.638]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.55,23.061],[3.244,0.766],[0.753,-11.762]],"o":[[-3.55,-23.061],[-5.358,-1.265],[-0.753,11.762]],"v":[[11.788,-37.733],[14.47,-92.154],[8.769,-35.211]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.113,0.736],[3.244,0.766],[0.024,-0.376]],"o":[[-0.113,-0.736],[-5.358,-1.265],[-0.024,0.376]],"v":[[1.251,-14.165],[19.643,-137.56],[1.155,-14.085]],"c":true}]},{"t":100,"s":[{"i":[[0.002,0.014],[3.244,0.766],[0,-0.007]],"o":[[-0.002,-0.014],[-5.358,-1.265],[0,0.007]],"v":[[29.568,-215.114],[32.47,-250.154],[29.566,-215.113]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.775,14.209],[6.351,4.603],[2.652,-16.185]],"o":[[0.775,-14.209],[-4.056,-2.94],[-2.652,16.185]],"v":[[7.231,-23.969],[18.873,-61.186],[6.13,-24.571]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-2.096,38.439],[6.351,4.603],[7.173,-43.783]],"o":[[2.096,-38.439],[-4.056,-2.94],[-7.173,43.783]],"v":[[14.767,-36.105],[37.637,-108.647],[11.788,-37.733]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.067,1.227],[6.351,4.603],[0.229,-1.398]],"o":[[0.067,-1.227],[-4.056,-2.94],[-0.229,1.398]],"v":[[1.932,-14.242],[49.85,-146.868],[1.837,-14.294]],"c":true}]},{"t":100,"s":[{"i":[[-0.001,0.023],[6.351,4.603],[0.004,-0.026]],"o":[[0.001,-0.023],[-4.056,-2.94],[-0.004,0.026]],"v":[[75.069,-225.113],[80.137,-241.647],[75.068,-225.114]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.749,6.829],[6.31,5.609],[1.359,-6.48]],"o":[[-0.749,-6.829],[-3.554,-3.159],[-1.359,6.48]],"v":[[8.596,-23.217],[31.24,-73.607],[7.231,-23.969]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.026,18.473],[6.31,5.609],[3.677,-17.531]],"o":[[-2.026,-18.473],[-3.554,-3.159],[-3.677,17.531]],"v":[[18.46,-34.07],[47.481,-104.355],[14.767,-36.105]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.065,0.59],[6.31,5.609],[0.117,-0.56]],"o":[[-0.065,-0.59],[-3.554,-3.159],[-0.117,0.56]],"v":[[2.166,-13.836],[63.43,-142.576],[2.048,-13.901]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.011],[6.31,5.609],[0.002,-0.011]],"o":[[-0.001,-0.011],[-3.554,-3.159],[-0.002,0.011]],"v":[[84.072,-198.612],[102.981,-237.355],[84.069,-198.613]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.199,15.089],[5.581,6.595],[12.758,-17.563]],"o":[[6.199,-15.089],[-2.72,-3.214],[-12.758,17.563]],"v":[[9.486,-22.203],[48.882,-61.987],[8.281,-23.532]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-16.769,40.819],[5.581,6.595],[34.513,-47.512]],"o":[[16.769,-40.819],[-2.72,-3.214],[-34.513,47.512]],"v":[[21.719,-30.475],[103.282,-109.764],[18.46,-34.07]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.535,1.303],[5.581,6.595],[1.102,-1.517]],"o":[[0.535,-1.303],[-2.72,-3.214],[-1.102,1.517]],"v":[[3.204,-13.341],[122.823,-131.604],[3.099,-13.456]],"c":true}]},{"t":100,"s":[{"i":[[-0.01,0.025],[5.581,6.595],[0.021,-0.029]],"o":[[0.01,-0.025],[-2.72,-3.214],[-0.021,0.029]],"v":[[156.574,-169.11],[171.282,-185.764],[156.572,-169.112]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.223,9.945],[2.258,6.104],[6.726,-10.205]],"o":[[4.223,-9.945],[-1.817,-4.912],[-6.726,10.205]],"v":[[11.177,-20.424],[48.778,-58.677],[9.801,-21.888]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-11.423,26.904],[2.258,6.104],[18.195,-27.606]],"o":[[11.423,-26.904],[-1.817,-4.912],[-18.195,27.606]],"v":[[25.439,-26.516],[74.48,-79.649],[21.719,-30.475]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.365,0.859],[2.258,6.104],[0.581,-0.882]],"o":[[0.365,-0.859],[-1.817,-4.912],[-0.581,0.882]],"v":[[3.264,-12.932],[105.66,-107.524],[3.146,-13.058]],"c":true}]},{"t":100,"s":[{"i":[[-0.007,0.016],[2.258,6.104],[0.011,-0.017]],"o":[[0.007,-0.016],[-1.817,-4.912],[-0.011,0.017]],"v":[[152.076,-147.108],[182.98,-176.649],[152.074,-147.11]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-3.334,6.648],[-1.799,5.518],[9.673,-9.931]],"o":[[3.334,-6.648],[1.878,-5.758],[-9.673,9.931]],"v":[[12.897,-19.193],[48.972,-44.204],[11.177,-20.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-9.018,17.983],[-1.799,5.518],[26.167,-26.865]],"o":[[9.018,-17.983],[1.878,-5.758],[-26.167,26.865]],"v":[[30.094,-23.186],[81.927,-62.022],[25.439,-26.516]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.288,0.574],[-1.799,5.518],[0.836,-0.858]],"o":[[0.288,-0.574],[1.878,-5.758],[-0.836,0.858]],"v":[[3.883,-12.491],[120.292,-83.862],[3.734,-12.597]],"c":true}]},{"t":100,"s":[{"i":[[-0.005,0.011],[-1.799,5.518],[0.016,-0.016]],"o":[[0.005,-0.011],[1.878,-5.758],[-0.016,0.016]],"v":[[188.579,-121.106],[215.427,-138.022],[188.576,-121.108]],"c":true}]}]},"nm":"Path 6","hd":false},{"ind":6,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-9.869,8.704],[-3.432,7.058],[12.009,-7.852]],"o":[[9.869,-8.704],[2.981,-6.13],[-12.009,7.852]],"v":[[12.832,-16.628],[74.374,-42.527],[12.897,-19.193]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-26.696,23.547],[-3.432,7.058],[32.485,-21.24]],"o":[[26.696,-23.547],[2.981,-6.13],[-32.485,21.24]],"v":[[29.916,-16.247],[117.42,-56.876],[30.094,-23.186]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.852,0.752],[-3.432,7.058],[1.037,-0.678]],"o":[[0.852,-0.752],[2.981,-6.13],[-1.037,0.678]],"v":[[3.897,-11.786],[151.618,-69.521],[3.902,-12.008]],"c":true}]},{"t":100,"s":[{"i":[[-0.016,0.014],[-3.432,7.058],[0.02,-0.013]],"o":[[0.016,-0.014],[2.981,-6.13],[-0.02,0.013]],"v":[[190.079,-83.601],[236.42,-100.876],[190.079,-83.606]],"c":true}]}]},"nm":"Path 7","hd":false},{"ind":7,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-14.199,3.553],[-2.249,4.962],[22.38,-4.873]],"o":[[22.287,-5.577],[4.049,-8.935],[-22.38,4.873]],"v":[[10.861,-15.141],[88.919,-15.854],[12.516,-16.944]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-38.412,9.611],[-2.249,4.962],[60.542,-13.183]],"o":[[60.291,-15.085],[4.049,-8.935],[-60.542,13.183]],"v":[[25.439,-11.372],[154.986,-15.381],[29.916,-16.247]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.227,0.307],[-2.249,4.962],[1.933,-0.421]],"o":[[1.925,-0.482],[4.049,-8.935],[-1.933,0.421]],"v":[[3.934,-10.704],[182.862,-13.944],[4.077,-10.859]],"c":true}]},{"t":100,"s":[{"i":[[-0.023,0.006],[-2.249,4.962],[0.036,-0.008]],"o":[[0.036,-0.009],[4.049,-8.935],[-0.036,0.008]],"v":[[204.076,-11.599],[251.986,-10.381],[204.079,-11.601]],"c":true}]}]},"nm":"Path 8","hd":false},{"ind":8,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.711,2.16],[-0.839,0.958],[12.251,-0.88]],"o":[[4.711,-2.16],[1.348,-1.539],[-12.251,0.88]],"v":[[9.079,-12.869],[39.383,-12.388],[10.861,-14.826]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-12.744,5.843],[-0.839,0.958],[33.14,-2.38]],"o":[[12.744,-5.843],[1.348,-1.539],[-33.14,2.38]],"v":[[20.619,-6.076],[78.015,-8.131],[25.439,-11.372]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.407,0.187],[-0.839,0.958],[1.058,-0.076]],"o":[[0.407,-0.187],[1.348,-1.539],[-1.058,0.076]],"v":[[4.224,-10.251],[128.305,-2.239],[4.378,-10.421]],"c":true}]},{"t":100,"s":[{"i":[[-0.008,0.004],[-0.839,0.958],[0.02,-0.001]],"o":[[0.008,-0.004],[1.348,-1.539],[-0.02,0.001]],"v":[[238.573,10.405],[253.015,12.369],[238.576,10.401]],"c":true}]}]},"nm":"Path 9","hd":false},{"ind":9,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-19.702,-2.401],[-2.482,3.154],[14.29,0.398]],"o":[[19.702,2.401],[2.595,-3.297],[-14.29,-0.398]],"v":[[9.698,-12.307],[64.597,6.088],[9.395,-13.184]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-53.298,-6.494],[-2.482,3.154],[38.657,1.077]],"o":[[53.298,6.494],[2.595,-3.297],[-38.657,-1.077]],"v":[[21.439,-3.705],[93.137,16.968],[20.619,-6.076]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.702,-0.207],[-2.482,3.154],[1.234,0.034]],"o":[[1.702,0.207],[2.595,-3.297],[-1.234,-0.034]],"v":[[3.71,-9.493],[135.812,35.216],[3.683,-9.569]],"c":true}]},{"t":100,"s":[{"i":[[-0.032,-0.004],[-2.482,3.154],[0.023,0.001]],"o":[[0.032,0.004],[2.595,-3.297],[-0.023,-0.001]],"v":[[196.573,63.406],[241.637,80.468],[196.573,63.405]],"c":true}]}]},"nm":"Path 10","hd":false},{"ind":10,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-9.253,-3.386],[-5.064,4.293],[16.792,8.51]],"o":[[9.253,3.386],[4.126,-3.498],[-16.792,-8.51]],"v":[[11.313,-9.614],[54.159,17.809],[9.698,-11.992]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-25.032,-9.16],[-5.064,4.293],[45.426,23.022]],"o":[[25.032,9.16],[4.126,-3.498],[-45.426,-23.022]],"v":[[25.808,2.729],[103.197,50.764],[21.439,-3.705]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.799,-0.292],[-5.064,4.293],[1.451,0.735]],"o":[[0.799,0.292],[4.126,-3.498],[-1.451,-0.735]],"v":[[3.881,-8.702],[137.251,71.886],[3.742,-8.908]],"c":true}]},{"t":100,"s":[{"i":[[-0.015,-0.006],[-5.064,4.293],[0.027,0.014]],"o":[[0.015,0.006],[4.126,-3.498],[-0.027,-0.014]],"v":[[199.076,108.91],[221.697,124.264],[199.073,108.906]],"c":true}]}]},"nm":"Path 11","hd":false},{"ind":11,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.526,-3.215],[-3.502,3.162],[9.671,6.481]],"o":[[6.526,3.215],[3.502,-3.162],[-9.671,-6.481]],"v":[[10.491,-8.994],[73.057,40.569],[11.313,-9.929]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-17.653,-8.697],[-3.502,3.162],[26.163,17.532]],"o":[[17.653,8.697],[3.502,-3.162],[-26.163,-17.532]],"v":[[23.585,5.258],[96.236,63.117],[25.808,2.729]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.564,-0.278],[-3.502,3.162],[0.835,0.56]],"o":[[0.564,0.278],[3.502,-3.162],[-0.835,-0.56]],"v":[[3.102,-8.57],[126.267,90.274],[3.173,-8.651]],"c":true}]},{"t":100,"s":[{"i":[[-0.011,-0.005],[-3.502,3.162],[0.016,0.011]],"o":[[0.011,0.005],[3.502,-3.162],[-0.016,-0.011]],"v":[[144.075,112.911],[200.736,157.617],[144.076,112.91]],"c":true}]}]},"nm":"Path 12","hd":false},{"ind":12,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-13.475,-10.482],[-4.458,3.463],[10.073,7.849]],"o":[[13.475,10.482],[4.458,-3.463],[-10.073,-7.849]],"v":[[9.502,-7.951],[52.87,45.892],[10.491,-8.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-36.453,-28.355],[-4.458,3.463],[27.249,21.233]],"o":[[36.453,28.355],[4.458,-3.463],[-27.249,-21.233]],"v":[[20.909,7.226],[94.655,93.669],[23.585,5.258]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.164,-0.905],[-4.458,3.463],[0.87,0.678]],"o":[[1.164,0.905],[4.458,-3.463],[-0.87,-0.678]],"v":[[3.049,-7.986],[116.926,120.825],[3.134,-8.049]],"c":true}]},{"t":100,"s":[{"i":[[-0.022,-0.017],[-4.458,3.463],[0.016,0.013]],"o":[[0.022,0.017],[4.458,-3.463],[-0.016,-0.013]],"v":[[146.573,153.413],[172.155,188.169],[146.575,153.411]],"c":true}]}]},"nm":"Path 13","hd":false},{"ind":13,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.775,-3.087],[-3.488,2.449],[10.229,14.193]],"o":[[4.775,3.087],[3.488,-2.449],[-10.229,-14.193]],"v":[[7.167,-8.135],[48.091,56.332],[9.187,-7.951]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-12.917,-8.352],[-3.488,2.449],[27.671,38.395]],"o":[[12.917,8.352],[3.488,-2.449],[-27.671,-38.395]],"v":[[15.445,6.729],[62.124,74.78],[20.909,7.226]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.412,-0.267],[-3.488,2.449],[0.884,1.226]],"o":[[0.412,0.267],[3.488,-2.449],[-0.884,-1.226]],"v":[[2.321,-8.079],[84.827,113.576],[2.495,-8.063]],"c":true}]},{"t":100,"s":[{"i":[[-0.008,-0.005],[-3.488,2.449],[0.017,0.023]],"o":[[0.008,0.005],[3.488,-2.449],[-0.017,-0.023]],"v":[[103.57,147.412],[141.124,209.78],[103.573,147.413]],"c":true}]}]},"nm":"Path 14","hd":false},{"ind":14,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-5.362,-6.334],[-2.659,0.857],[3.694,6.735]],"o":[[5.361,6.334],[6.495,-2.093],[-3.694,-6.735]],"v":[[5.102,-9.295],[26.477,35.494],[7.167,-8.45]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-14.504,-17.136],[-2.659,0.857],[9.994,18.219]],"o":[[14.504,17.136],[6.495,-2.093],[-9.994,-18.219]],"v":[[9.859,4.445],[41.772,64.349],[15.445,6.729]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.463,-0.547],[-2.659,0.857],[0.319,0.582]],"o":[[0.463,0.547],[6.495,-2.093],[-0.319,-0.582]],"v":[[2.027,-7.553],[61.313,111.91],[2.205,-7.48]],"c":true}]},{"t":100,"s":[{"i":[[-0.009,-0.01],[-2.659,0.857],[0.006,0.011]],"o":[[0.009,0.01],[6.495,-2.093],[-0.006,-0.011]],"v":[[94.566,193.911],[109.772,229.849],[94.57,193.912]],"c":true}]}]},"nm":"Path 15","hd":false},{"ind":15,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.43,-4.038],[-5.792,0.94],[0.557,8.126]],"o":[[0.43,4.038],[3.71,-0.602],[-0.557,-8.126]],"v":[[3.69,-10.876],[17.077,55.965],[5.102,-9.295]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-1.164,-10.924],[-5.792,0.94],[1.507,21.981]],"o":[[1.164,10.924],[3.71,-0.602],[-1.507,-21.981]],"v":[[6.039,0.167],[22.28,71.891],[9.859,4.445]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.037,-0.349],[-5.792,0.94],[0.048,0.702]],"o":[[0.037,0.349],[3.71,-0.602],[-0.048,-0.702]],"v":[[1.242,-7.799],[31.62,122.9],[1.364,-7.663]],"c":true}]},{"t":100,"s":[{"i":[[-0.001,-0.007],[-5.792,0.94],[0.001,0.013]],"o":[[0.001,0.007],[3.71,-0.602],[-0.001,-0.013]],"v":[[43.064,185.408],[54.78,249.391],[43.066,185.411]],"c":true}]}]},"nm":"Path 16","hd":false},{"ind":16,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.268,-1.072],[-8.766,2.77],[-1.453,20.282]],"o":[[-0.268,1.072],[8.956,-2.83],[1.453,-20.282]],"v":[[2.258,-8.649],[11.352,48.031],[4.005,-10.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0.726,-2.901],[-8.766,2.77],[-3.93,54.866]],"o":[[-0.726,2.901],[8.956,-2.83],[3.93,-54.866]],"v":[[1.312,6.192],[20.655,115.675],[6.039,0.167]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.023,-0.093],[-8.766,2.77],[-0.125,1.752]],"o":[[-0.023,0.093],[8.956,-2.83],[0.125,-1.752]],"v":[[0.956,-7.06],[24.966,155.333],[1.106,-7.252]],"c":true}]},{"t":100,"s":[{"i":[[0,-0.002],[-8.766,2.77],[-0.002,0.033]],"o":[[0,0.002],[8.956,-2.83],[0.002,-0.033]],"v":[[32.561,227.912],[35.655,253.675],[32.564,227.908]],"c":true}]}]},"nm":"Path 17","hd":false},{"ind":17,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.674,-5.118],[-9.34,-10.304],[-5.656,20.469]],"o":[[-0.674,5.118],[5.335,5.886],[5.656,-20.469]],"v":[[0.319,-7.862],[-7.754,79.004],[2.258,-8.649]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.822,-13.845],[-9.34,-10.304],[-15.299,55.372]],"o":[[-1.822,13.845],[5.335,5.886],[15.299,-55.372]],"v":[[-3.933,8.322],[-10.119,142.549],[1.312,6.192]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.058,-0.442],[-9.34,-10.304],[-0.489,1.768]],"o":[[-0.058,0.442],[5.335,5.886],[0.489,-1.768]],"v":[[0.157,-7.436],[-14.573,174.16],[0.325,-7.504]],"c":true}]},{"t":100,"s":[{"i":[[0.001,-0.008],[-9.34,-10.304],[-0.009,0.033]],"o":[[-0.001,0.008],[5.335,5.886],[0.009,-0.033]],"v":[[-16.442,193.413],[-25.619,252.549],[-16.439,193.412]],"c":true}]}]},"nm":"Path 18","hd":false},{"ind":18,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.134,-4.491],[-8.529,-8.273],[-6.696,18.034]],"o":[[-1.134,4.491],[3.166,3.071],[6.696,-18.034]],"v":[[-1.761,-9.64],[-13.598,51.106],[0.003,-7.546]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.068,-12.148],[-8.529,-8.273],[-18.113,48.786]],"o":[[-3.068,12.148],[3.166,3.071],[18.113,-48.786]],"v":[[-8.707,2.658],[-24.162,110.866],[-3.933,8.322]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.098,-0.388],[-8.529,-8.273],[-0.578,1.558]],"o":[[-0.098,0.388],[3.166,3.071],[0.578,-1.558]],"v":[[-0.446,-7.378],[-34.795,149.374],[-0.293,-7.198]],"c":true}]},{"t":100,"s":[{"i":[[0.002,-0.007],[-8.529,-8.273],[-0.011,0.029]],"o":[[-0.002,0.007],[3.166,3.071],[0.011,-0.029]],"v":[[-51.445,211.91],[-61.162,244.866],[-51.442,211.913]],"c":true}]}]},"nm":"Path 19","hd":false},{"ind":19,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[9.217,-13.161],[-2.977,-4.918],[-5.725,7.174]],"o":[[-9.217,13.161],[1.721,2.843],[5.725,-7.174]],"v":[[-1.154,-12.499],[-42.53,56.34],[-1.761,-9.64]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[24.934,-35.602],[-2.977,-4.918],[-15.488,19.406]],"o":[[-24.934,35.602],[1.721,2.843],[15.488,-19.406]],"v":[[-7.064,-5.076],[-47.418,71.95],[-8.707,2.658]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.796,-1.137],[-2.977,-4.918],[-0.495,0.62]],"o":[[-0.796,1.137],[1.721,2.843],[0.495,-0.62]],"v":[[-0.876,-8.404],[-71.414,113.188],[-0.929,-8.157]],"c":true}]},{"t":100,"s":[{"i":[[0.015,-0.021],[-2.977,-4.918],[-0.009,0.012]],"o":[[-0.015,0.021],[1.721,2.843],[0.009,-0.012]],"v":[[-88.944,151.405],[-130.918,215.45],[-88.945,151.41]],"c":true}]}]},"nm":"Path 20","hd":false},{"ind":20,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.626,-7.899],[-8.084,-5.313],[-13.235,7.936]],"o":[[-2.855,2.957],[3.306,2.173],[10.979,-6.583]],"v":[[-4.169,-12.723],[-45.434,37.243],[-0.839,-12.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[20.63,-21.369],[-8.084,-5.313],[-35.802,21.467]],"o":[[-7.724,8],[3.306,2.173],[29.699,-17.808]],"v":[[-16.072,-5.684],[-88.796,85.335],[-7.064,-5.076]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.659,-0.682],[-8.084,-5.313],[-1.143,0.686]],"o":[[-0.247,0.255],[3.306,2.173],[0.948,-0.569]],"v":[[-1.962,-8.308],[-113.223,114.36],[-1.674,-8.288]],"c":true}]},{"t":100,"s":[{"i":[[0.012,-0.013],[-8.084,-5.313],[-0.022,0.013]],"o":[[-0.005,0.005],[3.306,2.173],[0.018,-0.011]],"v":[[-150.949,160.405],[-173.796,186.335],[-150.944,160.405]],"c":true}]}]},"nm":"Path 21","hd":false},{"ind":21,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[14.117,-10.21],[-5.628,-14.818],[-24.822,15.796]],"o":[[-14.086,10.188],[3.081,4.733],[21.924,-13.951]],"v":[[-3.765,-15.075],[-82.448,63.651],[-4.484,-12.723]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[38.189,-27.621],[0.797,-25.979],[-67.149,42.73]],"o":[[-38.106,27.561],[-0.163,5.311],[59.307,-37.74]],"v":[[-14.127,-12.046],[-117.611,102.283],[-16.072,-5.684]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[1.219,-0.882],[-2.13,-20.894],[-2.144,1.364]],"o":[[-1.217,0.88],[1.315,5.048],[1.894,-1.205]],"v":[[-1.552,-9.148],[-137.871,121.393],[-1.614,-8.945]],"c":true}]},{"t":100,"s":[{"i":[[0.023,-0.017],[-9.389,-8.283],[-0.04,0.026]],"o":[[-0.023,0.017],[4.981,4.394],[0.036,-0.023]],"v":[[-123.948,110.901],[-188.111,168.783],[-123.949,110.905]],"c":true}]}]},"nm":"Path 22","hd":false},{"ind":22,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.794,-1.349],[0.656,-8.742],[-9.144,3.299]],"o":[[-0.388,0.187],[-0.279,3.717],[9.144,-3.298]],"v":[[-4.357,-15.318],[-39.206,7.131],[-3.283,-15.062]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[7.56,-3.648],[1.507,-8.661],[-24.737,8.919]],"o":[[-1.051,0.507],[-0.641,3.682],[24.737,-8.919]],"v":[[-17.032,-12.737],[-65.957,17.111],[-14.127,-12.046]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.241,-0.117],[1.12,-8.698],[-0.79,0.285]],"o":[[-0.034,0.016],[-0.476,3.698],[0.79,-0.285]],"v":[[-2.581,-9.26],[-111.172,47.264],[-2.489,-9.238]],"c":true}]},{"t":100,"s":[{"i":[[0.004,-0.003],[0.158,-8.79],[-0.014,0.008]],"o":[[-0.001,0],[-0.067,3.737],[0.014,-0.008]],"v":[[-196.685,103.922],[-223.294,122.037],[-196.683,103.922]],"c":true}]}]},"nm":"Path 23","hd":false},{"ind":23,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.652,-0.002],[9.621,-23.195],[-30.797,11.034]],"o":[[-0.652,0.002],[1.201,4.343],[30.797,-11.034]],"v":[[-5.938,-16.534],[-91.485,36.162],[-4.524,-15.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.764,-0.005],[34.94,-49.93],[-83.311,29.848]],"o":[[-1.764,0.005],[-2.448,3.499],[83.311,-29.848]],"v":[[-20.857,-15.139],[-161.337,74.163],[-17.032,-12.737]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.056,0],[23.404,-37.749],[-2.66,0.953]],"o":[[-0.056,0],[-0.786,3.883],[2.66,-0.953]],"v":[[-2.437,-9.678],[-180.879,84.077],[-2.314,-9.602]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0],[-5.203,-7.542],[-0.05,0.018]],"o":[[-0.001,0],[3.337,4.837],[0.05,-0.018]],"v":[[-175.952,77.399],[-229.337,108.663],[-175.95,77.401]],"c":true}]}]},"nm":"Path 24","hd":false},{"ind":24,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[3.079,-0.51],[0.18,-8.491],[-14.645,0.239]],"o":[[-3.079,0.51],[-0.099,4.7],[14.645,-0.239]],"v":[[-8.996,-17.288],[-60.714,-4.682],[-6.253,-16.534]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[8.33,-1.38],[0.18,-8.491],[-39.617,0.647]],"o":[[-8.33,1.38],[-0.099,4.7],[39.617,-0.647]],"v":[[-28.279,-17.178],[-119.213,6.829],[-20.857,-15.139]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.266,-0.044],[0.18,-8.491],[-1.265,0.021]],"o":[[-0.266,0.044],[-0.099,4.7],[1.265,-0.021]],"v":[[-3.288,-10.423],[-157.506,13.654],[-3.051,-10.357]],"c":true}]},{"t":100,"s":[{"i":[[0.005,-0.001],[0.18,-8.491],[-0.024,0]],"o":[[-0.005,0.001],[-0.099,4.7],[0.024,0]],"v":[[-223.707,24.648],[-252.463,30.579],[-223.702,24.649]],"c":true}]}]},"nm":"Path 25","hd":false},{"ind":25,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.002,-0.018],[4.376,-11.742],[-21.034,-0.505]],"o":[[-5.002,0.018],[-1,2.682],[21.034,0.505]],"v":[[-8.482,-18.09],[-80.041,-5.651],[-8.996,-16.972]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[13.533,-0.05],[4.376,-11.742],[-56.9,-1.366]],"o":[[-13.533,0.05],[-1,2.682],[56.9,1.366]],"v":[[-26.888,-20.202],[-133.179,-1.393],[-28.279,-17.178]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.432,-0.002],[4.376,-11.742],[-1.817,-0.044]],"o":[[-0.432,0.002],[-1,2.682],[1.817,0.044]],"v":[[-2.957,-10.802],[-167.52,2.271],[-3.002,-10.706]],"c":true}]},{"t":100,"s":[{"i":[[0.008,0],[4.376,-11.742],[-0.034,-0.001]],"o":[[-0.008,0],[-1,2.682],[0.034,0.001]],"v":[[-201.456,2.646],[-252.679,11.357],[-201.457,2.648]],"c":true}]}]},"nm":"Path 26","hd":false},{"ind":26,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.015,0.648],[9.285,-5.938],[-12.687,-1.577]],"o":[[-1.837,-0.296],[-5.457,3.49],[12.687,1.577]],"v":[[-7.193,-19.109],[-55.539,-18.566],[-8.167,-18.09]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[10.862,1.752],[9.285,-5.938],[-34.32,-4.266]],"o":[[-4.969,-0.802],[-5.457,3.49],[34.32,4.266]],"v":[[-24.253,-22.959],[-119.714,-21.877],[-26.888,-20.202]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.347,0.056],[9.285,-5.938],[-1.096,-0.136]],"o":[[-0.159,-0.026],[-5.457,3.49],[1.096,0.136]],"v":[[-3.256,-11.254],[-157.719,-22.883],[-3.34,-11.166]],"c":true}]},{"t":100,"s":[{"i":[[0.007,0.001],[9.285,-5.938],[-0.021,-0.003]],"o":[[-0.003,0],[-5.457,3.49],[0.021,0.003]],"v":[[-231.204,-25.606],[-251.964,-25.377],[-231.206,-25.604]],"c":true}]}]},"nm":"Path 27","hd":false},{"ind":27,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.393,1.499],[5.601,-5.319],[-6.035,-3.074]],"o":[[-4.393,-1.499],[-2.043,1.94],[7.22,3.678]],"v":[[-5.608,-19.397],[-48.68,-27.903],[-7.508,-19.109]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[11.885,4.055],[5.601,-5.319],[-16.326,-8.316]],"o":[[-11.885,-4.055],[-2.043,1.94],[19.531,9.948]],"v":[[-19.113,-23.736],[-77.851,-34.052],[-24.253,-22.959]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.38,0.13],[5.601,-5.319],[-0.521,-0.266]],"o":[[-0.38,-0.129],[-2.043,1.94],[0.624,0.318]],"v":[[-2.828,-11.723],[-125.77,-43.679],[-2.992,-11.698]],"c":true}]},{"t":100,"s":[{"i":[[0.007,0.002],[5.601,-5.319],[-0.01,-0.005]],"o":[[-0.007,-0.002],[-2.043,1.94],[0.012,0.006]],"v":[[-210.701,-60.106],[-244.601,-67.552],[-210.704,-60.106]],"c":true}]}]},"nm":"Path 28","hd":false},{"ind":28,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.221,2.81],[2.362,-11.3],[-20.382,-17.294]],"o":[[-5.221,-2.81],[-1.358,6.576],[20.382,17.294]],"v":[[-7.193,-23.937],[-71.1,-48.972],[-5.293,-19.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[14.123,7.602],[4.156,-15.533],[-55.138,-46.784]],"o":[[-14.123,-7.602],[-2.317,8.659],[55.138,46.784]],"v":[[-24.253,-36.018],[-168.703,-94.857],[-19.113,-23.736]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.451,0.243],[3.339,-13.604],[-1.761,-1.494]],"o":[[-0.451,-0.243],[-1.88,7.71],[1.761,1.494]],"v":[[-2.925,-12.804],[-184.078,-101.754],[-2.761,-12.412]],"c":true}]},{"t":100,"s":[{"i":[[0.008,0.005],[1.312,-8.822],[-0.033,-0.028]],"o":[[-0.008,-0.005],[-0.797,5.357],[0.033,0.028]],"v":[[-205.454,-113.613],[-222.203,-118.857],[-205.451,-113.606]],"c":true}]}]},"nm":"Path 29","hd":false},{"ind":29,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.26,4.445],[7.011,-4.124],[-10.385,-10.766]],"o":[[-0.326,-0.199],[-7.011,4.124],[16.897,17.517]],"v":[[-5.801,-24.959],[-56.419,-56.973],[-7.193,-23.937]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[19.64,12.023],[7.011,-4.124],[-28.094,-29.123]],"o":[[-0.881,-0.54],[-7.011,4.124],[45.711,47.385]],"v":[[-20.488,-38.784],[-98.519,-86.459],[-24.253,-36.018]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.627,0.384],[7.011,-4.124],[-0.897,-0.93]],"o":[[-0.028,-0.017],[-7.011,4.124],[1.46,1.513]],"v":[[-2.277,-13.13],[-127.401,-106.145],[-2.397,-13.042]],"c":true}]},{"t":100,"s":[{"i":[[0.012,0.007],[7.011,-4.124],[-0.017,-0.018]],"o":[[-0.001,0],[-7.011,4.124],[0.028,0.029]],"v":[[-164.452,-132.115],[-199.019,-154.959],[-164.454,-132.113]],"c":true}]}]},"nm":"Path 30","hd":false},{"ind":30,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[23.866,20.95],[-0.775,-4.182],[-8.843,-10.116]],"o":[[-23.866,-20.95],[0.799,4.308],[8.843,10.116]],"v":[[-4.127,-25.389],[-47.359,-57.266],[-6.116,-25.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[64.562,56.675],[-0.775,-4.182],[-23.921,-27.366]],"o":[[-64.562,-56.675],[0.799,4.308],[23.921,27.366]],"v":[[-15.108,-39.093],[-105.227,-105.674],[-20.488,-38.784]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[2.062,1.81],[-0.775,-4.182],[-0.764,-0.874]],"o":[[-2.062,-1.81],[0.799,4.308],[0.764,0.874]],"v":[[-2.169,-13.514],[-128.217,-124.928],[-2.341,-13.504]],"c":true}]},{"t":100,"s":[{"i":[[0.039,0.034],[-0.775,-4.182],[-0.014,-0.016]],"o":[[-0.039,-0.034],[0.799,4.308],[0.014,0.016]],"v":[[-169.449,-161.115],[-185.227,-172.674],[-169.452,-161.115]],"c":true}]}]},"nm":"Path 31","hd":false},{"ind":31,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.861,0.835],[6.082,-5.676],[-10.296,-14.684]],"o":[[-0.861,-0.835],[-2.893,2.699],[10.296,14.684]],"v":[[-0.366,-23.104],[-55.133,-75.787],[-4.127,-25.389]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.329,2.258],[6.082,-5.676],[-27.852,-39.724]],"o":[[-2.329,-2.258],[-2.893,2.699],[27.852,39.724]],"v":[[-4.933,-32.911],[-79.889,-105.589],[-15.108,-39.093]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.074,0.072],[6.082,-5.676],[-0.889,-1.268]],"o":[[-0.074,-0.072],[-2.893,2.699],[0.889,1.268]],"v":[[-1.214,-13.207],[-103.885,-130.878],[-1.539,-13.404]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.001],[6.082,-5.676],[-0.017,-0.024]],"o":[[-0.001,-0.001],[-2.893,2.699],[0.017,0.024]],"v":[[-120.443,-152.612],[-163.389,-193.589],[-120.449,-152.615]],"c":true}]}]},"nm":"Path 32","hd":false},{"ind":32,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[3.542,19.181],[3.073,-0.981],[-0.152,-9.722]],"o":[[-3.542,-19.181],[-2.453,0.783],[0.152,9.722]],"v":[[0.539,-22.899],[-14.028,-61.928],[-0.366,-22.788]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[9.581,51.887],[3.073,-0.981],[-0.412,-26.3]],"o":[[-9.581,-51.887],[-2.453,0.783],[0.412,26.3]],"v":[[-2.483,-33.211],[-31.215,-116.327],[-4.933,-32.911]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.306,1.657],[3.073,-0.981],[-0.013,-0.84]],"o":[[-0.306,-1.657],[-2.453,0.783],[0.013,0.84]],"v":[[-0.517,-14.182],[-44.865,-152.105],[-0.596,-14.172]],"c":true}]},{"t":100,"s":[{"i":[[0.006,0.031],[3.073,-0.981],[0,-0.016]],"o":[[-0.006,-0.031],[-2.453,0.783],[0,0.016]],"v":[[-72.441,-227.612],[-78.715,-240.827],[-72.443,-227.612]],"c":true}]}]},"nm":"Path 33","hd":false},{"ind":33,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.512,3.311],[7.408,-2.515],[0.879,-9.578]],"o":[[-0.512,-3.311],[-4.274,1.451],[-0.879,9.578]],"v":[[1.755,-24.526],[-15.758,-89.049],[0.539,-22.899]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.386,8.956],[7.408,-2.515],[2.377,-25.91]],"o":[[-1.386,-8.956],[-4.274,1.451],[-2.377,25.91]],"v":[[0.805,-37.612],[-23.169,-137.772],[-2.483,-33.211]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.044,0.286],[7.408,-2.515],[0.076,-0.827]],"o":[[-0.044,-0.286],[-4.274,1.451],[-0.076,0.827]],"v":[[0.051,-14.02],[-30.928,-169.383],[-0.054,-13.879]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.005],[7.408,-2.515],[0.001,-0.016]],"o":[[-0.001,-0.005],[-4.274,1.451],[-0.001,0.016]],"v":[[-36.439,-204.114],[-50.169,-247.772],[-36.441,-204.112]],"c":true}]}]},"nm":"Path 34","hd":false},{"ind":34,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.275,0.477],[4.481,1.632],[2.961,-6.55],[-1.425,0.478]],"o":[[-2.55,-0.954],[-6.936,-2.526],[-1.48,3.275],[1.425,-0.478]],"v":[[5.014,-23.954],[2.623,-65.932],[2.07,-24.842],[3.754,-13.991]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.449,1.291],[4.481,1.632],[8.009,-17.719],[-3.855,1.292]],"o":[[-6.899,-2.581],[-6.936,-2.526],[-4.004,8.859],[3.855,-1.292]],"v":[[8.769,-35.211],[4.357,-117.808],[0.805,-37.612],[5.361,-8.261]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.11,0.041],[4.481,1.632],[0.256,-0.566],[-0.123,0.041]],"o":[[-0.22,-0.082],[-6.936,-2.526],[-0.128,0.283],[0.123,-0.041]],"v":[[0.788,-14.342],[3.064,-156.748],[0.534,-14.419],[0.679,-13.482]],"c":true}]},{"t":100,"s":[{"i":[[0.002,0.001],[4.481,1.632],[0.005,-0.011],[-0.002,0.001]],"o":[[-0.004,-0.002],[-6.936,-2.526],[-0.002,0.005],[0.002,-0.001]],"v":[[1.066,-235.113],[-0.143,-253.308],[1.061,-235.114],[1.064,-235.097]],"c":true}]}]},"nm":"Path 35","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0.166,1,1,1,0.291,1,0.894,0.947,0.379,1,0.788,0.894,0.522,0.961,0.394,0.72,0.708,0.922,0,0.545,0.865,0.961,0.206,0.508,0.999,1,0.412,0.471,0.166,1,0.291,1,0.379,1,0.522,0.9,0.708,0.8,0.865,0.8,0.999,0.8]}},"s":{"a":0,"k":[-12,-18]},"e":{"a":0,"k":[-123.596,-129.596]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6.793,2.506]},"a":{"a":0,"k":[-6.793,2.506]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"white splashes precomp","refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[243,243,0]},"a":{"a":0,"k":[243,243,0]}},"ao":0,"w":486,"h":486,"ip":-4,"op":99,"st":-5,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"ogonek5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[1],"y":[0]},"t":30,"s":[100]},{"t":45,"s":[0]}]},"p":{"a":0,"k":[241,232.25,0]},"a":{"a":0,"k":[-51,43,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15.828]},"t":30,"s":[0,0,100]},{"t":45,"s":[151,151,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[164,164]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0.166,1,1,1,0.291,1,0.894,0.947,0.379,1,0.788,0.894,0.522,0.961,0.394,0.72,0.708,0.922,0,0.545,0.865,0.961,0.206,0.508,0.999,1,0.412,0.471,0.166,1,0.291,1,0.379,1,0.522,0.9,0.708,0.8,0.865,0.8,0.999,0.8]}},"s":{"a":0,"k":[1,0.5]},"e":{"a":0,"k":[-61.596,-53.096]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 9","hd":false},{"ty":"tr","p":{"a":0,"k":[-51,43]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":30,"op":45,"st":-45,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"rose splashes 80%","sr":1,"ks":{"o":{"a":0,"k":80},"p":{"a":0,"k":[283.287,244.6,0]},"a":{"a":0,"k":[40.287,1.6,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[8.458,2.584],[-1.178,1.927]],"o":[[0,0],[1.178,-1.927]],"v":[[47.396,-2.495],[66.132,8.305]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[17.915,5.472],[-2.495,4.082]],"o":[[0,0],[2.494,-4.082]],"v":[[127.416,14.655],[167.1,37.528]],"c":true}]},{"t":100,"s":[{"i":[[2.922,0.892],[-0.407,0.666]],"o":[[0,0],[0.407,-0.666]],"v":[[231.544,79.714],[238.016,83.445]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-7.371,11.75],[-2.605,-2.954]],"o":[[0,0],[2.605,2.954]],"v":[[-19.417,21.61],[-33.613,50.565]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-16.511,26.322],[-5.835,-6.617]],"o":[[0,0],[5.835,6.617]],"v":[[-54.289,78.774],[-86.09,143.637]],"c":true}]},{"t":100,"s":[{"i":[[-2.019,3.219],[-0.714,-0.809]],"o":[[0,0],[0.714,0.809]],"v":[[-120,208.391],[-123.889,216.322]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.272,18.752],[3.489,0]],"o":[[0,0],[-2.919,0]],"v":[[13.337,36.564],[18.266,63.997]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[9.5,41.701],[7.758,0]],"o":[[0,0],[-6.491,0]],"v":[[34.44,120.578],[45.401,181.583]],"c":true}]},{"t":100,"s":[{"i":[[1.211,5.316],[0.989,0]],"o":[[0,0],[-0.827,0]],"v":[[49.981,239.625],[51.378,247.402]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.357,10.649],[2.065,-1.671]],"o":[[0,0],[-2.092,1.693]],"v":[[27.785,38.344],[37.752,60.836]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[12.682,25.21],[4.889,-3.955]],"o":[[0,0],[-4.953,4.007]],"v":[[73.965,124.33],[97.561,177.576]],"c":true}]},{"t":100,"s":[{"i":[[1.068,2.124],[0.412,-0.333]],"o":[[0,0],[-0.417,0.338]],"v":[[112.746,219.25],[114.734,223.735]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.125,6.764],[2.818,-3.288]],"o":[[0,0],[-1.952,2.278]],"v":[[39.186,19.394],[56.431,42.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[16.508,15.671],[6.529,-7.617]],"o":[[0,0],[-4.523,5.277]],"v":[[103.804,73.868],[143.76,126.64]],"c":true}]},{"t":100,"s":[{"i":[[1.631,1.548],[0.645,-0.753]],"o":[[0,0],[-0.447,0.521]],"v":[[178.352,168.75],[182.3,173.964]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[14.003,-18.483],[-2.995,-2.598]],"o":[[0,0],[2.346,2.035]],"v":[[19.896,-54.149],[37.88,-77.508]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[31.33,-41.355],[-6.701,-5.813]],"o":[[0,0],[5.249,4.553]],"v":[[52.828,-125.71],[93.066,-177.974]],"c":true}]},{"t":100,"s":[{"i":[[3.858,-5.092],[-0.825,-0.716]],"o":[[0,0],[0.646,0.561]],"v":[[119.615,-214],[124.57,-220.435]],"c":true}]}]},"nm":"Path 6","hd":false},{"ind":6,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.092,-13.223],[3.225,-0.461]],"o":[[0,0],[-3.225,0.461]],"v":[[-11.7,-53.501],[-23.447,-74.576]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-13.694,-29.721],[7.248,-1.036]],"o":[[0,0],[-7.248,1.036]],"v":[[-33.744,-123.528],[-60.149,-170.902]],"c":true}]},{"t":100,"s":[{"i":[[-1.641,-3.562],[0.869,-0.124]],"o":[[0,0],[-0.869,0.124]],"v":[[-92.793,-229.25],[-95.958,-234.928]],"c":true}]}]},"nm":"Path 7","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.403921574354,0.454901963472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 7","hd":false},{"ty":"tr","p":{"a":0,"k":[40.287,1.6]},"a":{"a":0,"k":[40.287,1.6]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"rose splashes 40%","sr":1,"ks":{"o":{"a":0,"k":40},"p":{"a":0,"k":[255.462,250.532,0]},"a":{"a":0,"k":[12.462,7.532,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.498,-1.717],[-2.802,-3.967]],"o":[[-1.32,0.907],[0,0]],"v":[[-27.909,-69.864],[-23.485,-62.918]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[5.583,-3.836],[-6.261,-8.864]],"o":[[-2.949,2.026],[0,0]],"v":[[-77.365,-168.395],[-67.479,-152.872]],"c":true}]},{"t":100,"s":[{"i":[[0.692,-0.476],[-0.776,-1.099]],"o":[[-0.366,0.251],[0,0]],"v":[[-104.452,-204.425],[-103.226,-202.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.758,-1.202],[3.089,-1.172]],"o":[[0,0],[-3.089,1.172]],"v":[[-40.584,-41.866],[-51.165,-45.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-10.775,-2.722],[6.996,-2.654]],"o":[[0,0],[-6.996,2.654]],"v":[[-111.836,-92.023],[-135.799,-100.881]],"c":true}]},{"t":100,"s":[{"i":[[-1.235,-0.312],[0.802,-0.304]],"o":[[0,0],[-0.802,0.304]],"v":[[-194.867,-116.25],[-197.612,-117.265]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.418,17.711],[-4.713,-1.091]],"o":[[0,0],[2.758,0.638]],"v":[[-22.297,35.041],[-30.452,64.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-14.835,40.938],[-10.895,-2.522]],"o":[[0,0],[6.375,1.475]],"v":[[-62.088,115.52],[-80.938,183.907]],"c":true}]},{"t":100,"s":[{"i":[[-1.49,4.112],[-1.094,-0.253]],"o":[[0,0],[0.64,0.148]],"v":[[-89,203.172],[-90.893,210.041]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.125,2.009],[-1.205,-2.41]],"o":[[-0.644,-1.15],[1.205,2.41]],"v":[[60.208,34.488],[58.28,36.577]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.266,4.046],[-2.428,-4.856]],"o":[[-1.297,-2.316],[2.428,4.856]],"v":[[161.46,114.372],[157.576,118.58]],"c":true}]},{"t":100,"s":[{"i":[[0.457,0.815],[-0.489,-0.978]],"o":[[-0.261,-0.467],[0.489,0.978]],"v":[[178.425,143.467],[177.643,144.315]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.378,1.888],[-0.054,-1.294]],"o":[[-0.244,-1.218],[0.054,1.294]],"v":[[57.201,-37.513],[53.318,-36.704]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0.721,3.602],[-0.103,-2.47]],"o":[[-0.465,-2.323],[0.103,2.47]],"v":[[152.987,-80.688],[145.577,-79.144]],"c":true}]},{"t":100,"s":[{"i":[[0.177,0.884],[-0.025,-0.606]],"o":[[-0.114,-0.57],[0.025,0.606]],"v":[[207.62,-96.485],[205.801,-96.106]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.033,1.484],[-0.082,-1.894]],"o":[[0.031,-1.392],[0.082,1.894]],"v":[[53.595,-30.294],[48.408,-29.669]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-0.074,3.328],[-0.185,-4.247]],"o":[[0.069,-3.121],[0.185,4.247]],"v":[[143.792,-61.221],[132.159,-59.821]],"c":true}]},{"t":100,"s":[{"i":[[-0.009,0.404],[-0.022,-0.516]],"o":[[0.008,-0.379],[0.022,0.516]],"v":[[216.285,-76.436],[214.873,-76.266]],"c":true}]}]},"nm":"Path 6","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.403921574354,0.454901963472,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 6","hd":false},{"ty":"tr","p":{"a":0,"k":[12.462,7.532]},"a":{"a":0,"k":[12.462,7.532]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"violet","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[33.333]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":70,"s":[0]}]},"p":{"a":0,"k":[250.172,221.61,0]},"a":{"a":0,"k":[7.172,-21.39,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.629,0.629,0.629],"y":[0,0,0]},"t":30,"s":[43.235,43.235,100]},{"t":40,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[8.424,-5.071],[2.653,-10.693],[8.493,-0.25],[-0.281,-21.575],[8.206,2.479],[-9.071,-18.319],[10.163,-0.826],[-8.504,-13.367],[7.925,-6.142],[-9.44,-13.344],[2.854,-8.942],[-21.641,-24.17],[6.753,-1.287],[-6.374,-4.022],[10.533,-2.098],[-13.32,-3.511],[-1.839,-6.483],[-21.075,-3.827],[-5.954,-6.816],[-11.932,-2.571],[3.257,-17.575],[-38.942,9.134],[-0.325,-7.706],[-8.742,1.73],[-8.801,-7.785],[-30.134,14.717],[-9.382,-4.129],[-16.279,6.661],[1.088,-8.515],[-7.687,7.097],[-6.012,-8.868],[-10.651,19.166],[-10.35,0.696],[-9.579,21.376],[-8.09,4.605],[-5.131,22.602],[-3.808,-4.758],[-0.748,8.961],[-7.254,-2.788],[2.909,7.968],[-7.635,-1.047],[9.08,17.754],[-7.507,3.193],[9.997,10.579],[-6.351,4.692],[9.781,8.968],[0.178,6.817],[17.454,12.482],[0.03,6.973],[12.265,1.257],[-5.162,4.439],[17.018,1.365],[-5.218,7.12],[24.328,-1.527],[-3.121,9.666],[14.883,-6.778],[10.864,5.993],[11.338,-8.563],[5.168,9.097],[9.336,-10.339],[5.422,9.555],[17.401,-17.591],[8.409,7.467],[2.648,-7.068],[8.104,5.903],[5.776,-17.779],[7.39,-3.513],[1.572,-7.178],[9.221,3.529],[4.343,-6.683]],"o":[[-7.125,5.075],[-0.627,-20.281],[-8.492,0.25],[-7.605,-11.419],[-6.68,-3.509],[-2.4,-2.857],[-8.37,0.053],[-2.455,-2.437],[-7.318,5.151],[-25.313,-18.266],[-0.866,7.957],[-15.111,-8.219],[-6.731,1.147],[0,0],[-8.775,1.322],[-36.623,-3.316],[2.35,6.725],[-4.284,0.119],[5.62,5.119],[0,0],[-0.325,7.953],[-14.317,6.526],[0.333,6.979],[-5.382,3.713],[7.32,4.607],[-4.424,3.372],[7.613,2.532],[-10.42,10.905],[-1.668,7.104],[-2.075,4.92],[4.11,6.36],[-1.424,4.903],[7.699,-1.121],[0,0],[8.176,-4.621],[-1.052,23.086],[4.14,4.652],[5.615,9.885],[7.25,2.786],[5.203,5.546],[7.441,1.093],[15.761,17.732],[7.507,-3.193],[5.904,3.732],[6.351,-4.692],[9.84,5.408],[-0.622,-6.552],[19.337,4.71],[0.329,-7.351],[6.418,-1.574],[5.14,-4.409],[27.522,-2.876],[5.215,-7.117],[4.426,-6.277],[2.875,-9.309],[1.399,-5.562],[-7.079,-5.34],[4.34,-9.001],[-5.002,-8.493],[13.638,-18.255],[-5.312,-9.225],[0.333,-7.822],[-7.414,-6.268],[3.497,-13.498],[-8.104,-5.903],[-0.973,-5.144],[-8.335,3.293],[-2.994,-1.674],[-9.108,-3.513],[-0.006,-3.457]],"v":[[5.228,-95.512],[7.462,-28.929],[-2.195,-87.293],[6.416,-28.961],[-31.261,-81.602],[2.547,-32.204],[-43.849,-81.375],[0.273,-32.419],[-44.643,-71.2],[-1.483,-31.501],[-68.757,-71.437],[-0.116,-26.024],[-42.303,-41.201],[-2.32,-26.028],[-60.656,-35.365],[-6.28,-25.891],[-67.569,-24.781],[-6.096,-24.791],[-61.84,-18.285],[-3.524,-23.253],[-83.167,12.168],[-3.472,-21.52],[-43.616,2.576],[-3.348,-19.306],[-64.141,31.565],[0.002,-18.262],[-50.895,27.819],[3.739,-17.431],[-29.038,27.111],[2.554,-14.294],[-16.457,46.001],[4.192,-11.614],[-10.643,61.853],[6.528,-12.171],[7.719,52.216],[8.895,-14.393],[13.275,34.112],[10.222,-12.355],[26.825,31.666],[12.417,-11.04],[35.999,36.579],[14.675,-10.481],[49.25,44.887],[15.923,-11.135],[54.41,30.884],[17.017,-12.053],[59.976,24.143],[15.598,-15.029],[60.134,6.365],[15.406,-16.076],[56.972,-8.479],[17.766,-17.986],[90.136,-9.191],[19.955,-19.743],[79.759,-35.208],[20.474,-22.64],[63.92,-44.118],[18.736,-24.334],[63.006,-55.052],[17.431,-26.232],[77.149,-67.057],[16.295,-27.947],[47.537,-73.383],[14.878,-29.037],[41.274,-77.714],[13.733,-29.91],[25.971,-72.901],[12.306,-29.047],[19.524,-85.462],[9.122,-30.564]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[8.849,0.01],[7.184,-28.957],[3.052,-1.273],[-0.761,-58.423],[7.839,-5.353],[-24.563,-49.607],[9.192,-3.975],[-23.029,-36.198],[4.861,-7.946],[-25.563,-36.135],[12.25,-6.125],[-58.602,-65.452],[0.423,-3.502],[-17.26,-10.89],[11.497,-5.096],[-36.071,-9.509],[-2.201,-1.041],[-57.07,-10.364],[-1.998,-10.013],[-32.312,-6.962],[9.36,-30.715],[-105.454,24.735],[0.047,-4.178],[-23.672,4.686],[-7.461,-15.968],[-81.601,39.854],[-8.157,-7.347],[-44.083,18.039],[-3.026,-7.306],[-20.815,19.217],[-8.186,-10.792],[-28.842,51.901],[-12.022,-1.924],[-25.94,57.885],[-10.365,1.613],[-13.894,61.205],[-1.581,0.481],[-2.025,24.266],[-5.413,1.006],[7.876,21.576],[-4.573,1.132],[24.589,48.078],[-6.41,1.365],[27.072,28.648],[-4.858,2.346],[26.485,24.286],[-6.451,3.968],[47.266,33.8],[-2.771,2.906],[33.213,3.403],[-1.167,1.667],[46.083,3.696],[-1.333,9],[65.879,-4.134],[-5.083,7.361],[40.303,-18.354],[15.513,2.68],[30.702,-23.187],[1.943,7.096],[25.282,-27.999],[2.5,7.5],[47.12,-47.637],[6.155,7.421],[7.17,-19.139],[5.169,3.176],[15.641,-48.146],[3.103,0.727],[4.257,-19.437],[6.927,0.949],[11.76,-18.098]],"o":[[-5.323,-0.006],[-1.697,-54.919],[-3.052,1.273],[-20.594,-30.923],[-3.728,2.546],[-6.498,-7.737],[-4.346,1.879],[-6.647,-6.6],[-3.22,5.264],[-68.548,-49.463],[-6.872,3.436],[-40.921,-22.258],[-0.377,3.121],[0,0],[-6.756,2.995],[-99.173,-8.979],[3.585,1.695],[-11.602,0.322],[1.08,5.412],[0,0],[-1.42,4.661],[-38.77,17.671],[-0.025,2.213],[-14.575,10.054],[3.439,7.359],[-11.98,9.131],[3.354,3.021],[-28.218,29.53],[1.451,3.503],[-5.619,13.324],[3.041,4.009],[-3.855,13.277],[4.839,0.774],[0,0],[10.589,-1.648],[-2.849,62.516],[2.488,-0.757],[15.206,26.767],[5.413,-1.006],[14.09,15.019],[4.055,-1.004],[42.68,48.017],[6.41,-1.365],[15.989,10.107],[4.858,-2.346],[26.647,14.644],[5.257,-3.234],[52.364,12.754],[3.745,-3.927],[17.38,-4.263],[1.115,-1.592],[74.53,-7.789],[1.333,-9],[11.985,-16.998],[4.419,-6.4],[3.79,-15.061],[-5.258,-0.908],[11.752,-24.375],[-1.495,-5.458],[36.932,-49.434],[-2.202,-6.607],[0.901,-21.183],[-3.464,-4.176],[9.469,-36.552],[-5.169,-3.176],[-2.634,-13.929],[-5.658,-1.325],[-8.107,-4.533],[-6.628,-0.908],[-0.017,-9.362]],"v":[[3.02,-162.999],[8.243,-41.492],[-9.448,-140.273],[5.428,-41.577],[-66.581,-136.474],[-4.982,-50.303],[-94.937,-141.294],[-11.103,-50.883],[-91.631,-117.558],[-15.827,-48.412],[-150.75,-126.625],[-12.148,-33.673],[-76.677,-54.762],[-18.079,-33.683],[-125.935,-48.926],[-28.737,-33.315],[-144.516,-27.935],[-28.241,-30.355],[-129.957,-16.393],[-21.32,-26.218],[-189.443,52.219],[-21.179,-21.553],[-84.613,22.128],[-20.845,-15.595],[-143.927,91.798],[-11.831,-12.788],[-109.552,77.33],[-1.776,-10.549],[-60.574,69.369],[-4.963,-2.109],[-41.055,117.272],[-0.555,5.102],[-30.196,155.83],[5.729,3.604],[8.665,130.425],[12.099,-2.376],[18.32,81.416],[15.669,3.108],[41.962,76.131],[21.577,6.648],[62.49,91.451],[27.654,8.15],[95.923,118.365],[31.011,6.393],[102.975,84.18],[33.954,3.923],[112.957,71.446],[30.136,-4.087],[107.438,31.594],[29.62,-6.903],[94.5,0.667],[35.97,-12.045],[183.167,5],[41.86,-16.772],[147.562,-47.507],[43.258,-24.567],[106.809,-61.148],[38.582,-29.125],[103.057,-80.596],[35.068,-34.233],[141.167,-109],[32.012,-38.849],[76.865,-113.118],[28.198,-41.782],[66.503,-119.657],[25.119,-44.132],[37.324,-105.068],[21.279,-41.807],[29.931,-135.604],[12.71,-45.889]],"c":true}]},{"t":100,"s":[{"i":[[6.52,-0.499],[0,0],[7.552,-1.773],[0,0],[7.419,-3.974],[0,0],[5.063,-2.794],[0,0],[3.869,-4.058],[0,0],[3.25,-5.125],[0,0],[2.323,-7.262],[0,0],[1.065,-7.426],[0,0],[-0.016,-6.935],[0,0],[0.043,-8.393],[0,0],[-1.943,-5.281],[0,0],[-4.613,-6.872],[0,0],[-4.427,-4.702],[0,0],[-5.552,-5.67],[0,0],[-7.074,-5.131],[0,0],[-7.555,-2.728],[0,0],[-8.696,0.33],[0,0],[-5.835,-0.075],[0,0],[-5.179,-0.584],[0,0],[-7.538,4.131],[0,0],[-4.51,1.951],[0,0],[-7.077,4.865],[0,0],[-5.025,3.68],[0,0],[-5.043,6.946],[0,0],[-2.062,4.094],[0,0],[-1.5,7.666],[0,0],[-1.333,7.5],[0,0],[-0.438,6.493],[0,0],[2.309,7.852],[0,0],[1.057,4.404],[0,0],[1.667,6.5],[0,0],[6.365,6.382],[0,0],[3.503,2.843],[0,0],[5.324,3.432],[0,0],[2.931,0.896],[0,0]],"o":[[-6.521,0.499],[0,0],[-7.552,1.773],[0,0],[-7.419,3.974],[0,0],[-5.063,2.794],[0,0],[-3.869,4.058],[0,0],[-3.25,5.125],[0,0],[-2.323,7.262],[0,0],[-1.065,7.426],[0,0],[0.016,6.935],[0,0],[-0.043,8.393],[0,0],[1.943,5.281],[0,0],[4.613,6.872],[0,0],[4.427,4.702],[0,0],[5.552,5.67],[0,0],[7.074,5.131],[0,0],[7.555,2.728],[0,0],[8.696,-0.33],[0,0],[5.835,0.075],[0,0],[5.18,0.584],[0,0],[7.538,-4.131],[0,0],[4.51,-1.951],[0,0],[7.077,-4.865],[0,0],[5.025,-3.68],[0,0],[5.043,-6.946],[0,0],[2.062,-4.094],[0,0],[1.5,-7.666],[0,0],[1.333,-7.5],[0,0],[0.438,-6.493],[0,0],[-2.309,-7.852],[0,0],[-1.057,-4.404],[0,0],[-1.667,-6.5],[0,0],[-6.365,-6.382],[0,0],[-3.503,-2.843],[0,0],[-5.324,-3.432],[0,0],[-2.931,-0.896],[0,0]],"v":[[0.021,-238.999],[6.522,-22.25],[-22.948,-238.773],[6.486,-22.251],[-111.081,-205.974],[6.353,-22.363],[-136.437,-188.794],[6.274,-22.37],[-151.131,-175.058],[6.214,-22.339],[-176.75,-144.125],[6.261,-22.15],[-199.177,-102.262],[6.185,-22.15],[-209.935,-65.926],[6.048,-22.145],[-215.016,-31.435],[6.055,-22.107],[-215.457,-11.893],[6.143,-22.054],[-201.443,57.219],[6.145,-21.994],[-194.113,74.128],[6.149,-21.918],[-171.427,112.298],[6.265,-21.882],[-163.052,122.83],[6.394,-21.853],[-126.074,156.869],[6.353,-21.745],[-65.055,189.772],[6.41,-21.653],[-38.196,196.33],[6.49,-21.672],[9.165,202.425],[6.572,-21.748],[31.821,199.416],[6.618,-21.678],[80.962,187.631],[6.693,-21.633],[105.49,178.451],[6.771,-21.613],[127.923,167.865],[6.814,-21.636],[157.975,144.18],[6.852,-21.668],[174.957,125.946],[6.803,-21.77],[204.438,84.094],[6.796,-21.806],[223.5,34.166],[6.878,-21.872],[227.667,12],[6.953,-21.933],[227.062,-61.507],[6.971,-22.033],[213.309,-104.148],[6.911,-22.091],[198.057,-137.596],[6.866,-22.157],[195.667,-144],[6.827,-22.216],[142.865,-200.118],[6.778,-22.254],[122.503,-211.157],[6.739,-22.284],[84.324,-230.568],[6.689,-22.254],[51.431,-240.604],[6.58,-22.306]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":80},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.001,0.467,0.031,0.541,0.707,0.435,0.108,0.561,1,0.404,0.184,0.58]}},"s":{"a":0,"k":[4,-20]},"e":{"a":0,"k":[177.39,-20]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"picies2","sr":1,"ks":{"p":{"a":0,"k":[257.33,185.73,0]},"a":{"a":0,"k":[-265.67,-10.27,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-0.35],[53.84,0],[-19.93,11.56],[-1,-40.01]],"o":[[0,50.03],[-31.67,-34.87],[39.26,-0.87],[0.01,0.35]],"v":[[-168.19,-10.27],[-265.67,80.32],[-266.5,-79.82],[-168.2,-11.32]],"c":true}]},{"t":35,"s":[{"i":[[0,-0.004],[0.613,0],[-0.227,0.132],[-0.011,-0.455]],"o":[[0,0.569],[-0.36,-0.397],[0.447,-0.01],[0,0.004]],"v":[[-145.03,70.7],[-146.14,71.731],[-146.149,69.909],[-145.03,70.688]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-2.5,-7],[15.65,-61.05],[-53.84,0]],"o":[[0,0],[0,-50.03],[0,0]],"v":[[-266.5,-79.82],[-363.15,-10.27],[-265.67,-100.86]],"c":true}]},{"t":35,"s":[{"i":[[-0.013,-0.036],[0.08,-0.312],[-0.275,0]],"o":[[0,0],[0,-0.256],[0,0]],"v":[[-383.165,-126.689],[-383.659,-126.333],[-383.161,-126.797]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.6,-49.55],[39.26,-0.87],[0,0]],"o":[[-1,-40.01],[-2.5,-7],[53.46,0]],"v":[[-168.2,-11.32],[-266.5,-79.82],[-265.67,-100.86]],"c":true}]},{"t":35,"s":[{"i":[[-0.018,-1.483],[1.175,-0.026],[0,0]],"o":[[-0.03,-1.198],[-0.075,-0.21],[1.6,0]],"v":[[-162.091,-102.75],[-165.034,-104.8],[-165.009,-105.43]],"c":true}]}]},"nm":"Path 3","hd":false},{"ty":"fl","c":{"a":0,"k":[0.749019607843,0,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[-265.67,-10.27]},"a":{"a":0,"k":[-265.67,-10.27]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-31.67,-34.87],[0,50.03],[0,0]],"o":[[-53.84,0],[15.65,-61.05],[-19.93,11.56]],"v":[[-265.67,80.32],[-363.15,-10.27],[-266.5,-79.82]],"c":true}]},{"t":35,"s":[{"i":[[-0.099,-0.109],[0,0.156],[0,0]],"o":[[-0.168,0],[0.049,-0.191],[-0.062,0.036]],"v":[[-415.258,90.5],[-415.562,90.217],[-415.26,90]],"c":true}]}]},"nm":"Path 4","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411764706,0,0.486274539723,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[-314.41,0.25]},"a":{"a":0,"k":[-314.41,0.25]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.301960784314,0,0.274509803922,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-265.67,-10.27]},"a":{"a":0,"k":[-265.67,-10.27]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":30,"op":35,"st":2,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"picies","sr":1,"ks":{"p":{"a":0,"k":[255,191.406,0]},"a":{"a":0,"k":[0,45.406,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-14.81,-13.46],[11.95,21.92],[1.11,16.11],[-22.44,-7.84],[-11.16,1.15]],"o":[[-22.91,4.11],[-6.67,-12.23],[5.79,24.31],[9.97,3.48],[-0.13,0.68]],"v":[[10.978,133.929],[-49.332,107.219],[-76.002,35.549],[-29.982,86.199],[2.028,89.909]],"c":true}]},{"t":36,"s":[{"i":[[0.042,0.009],[-0.025,-0.045],[-0.002,-0.033],[0.03,0.046],[0.013,0.008]],"o":[[0.048,-0.009],[0.014,0.025],[-0.012,-0.05],[-0.009,-0.013],[-0.02,-0.013]],"v":[[-71.68,195.17],[-71.555,195.225],[-71.5,195.374],[-71.582,195.231],[-71.615,195.198]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-20.7,35.34],[6.66,-12.23],[15.67,-2.82],[0,0],[-0.13,0.68]],"o":[[-1.11,16.11],[-8.18,15],[0,0],[-14.81,-13.46],[25.91,-2.68]],"v":[[75.998,35.549],[49.338,107.219],[10.988,133.929],[10.978,133.929],[2.028,89.909]],"c":true}]},{"t":36,"s":[{"i":[[-0.149,0.254],[0.048,-0.088],[0.112,-0.02],[0,0],[-0.001,0.005]],"o":[[-0.008,0.116],[-0.059,0.108],[0,0],[0.129,-0.1],[0.093,-0.157]],"v":[[73.967,180.898],[73.775,181.412],[73.5,181.604],[73.5,181.604],[73.665,181.395]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[4.69,-50.46],[25.91,-2.68],[9.97,3.48],[-5.65,29.96],[19.36,23.12]],"o":[[-20.7,35.34],[-11.16,1.15],[25.15,-11.39],[3.71,-19.59],[38.33,2.51]],"v":[[75.998,35.549],[2.028,89.909],[-29.982,86.199],[26.648,21.049],[6.078,-43.891]],"c":true}]},{"t":36,"s":[{"i":[[0.019,-0.202],[0.104,-0.011],[0.04,0.014],[-0.023,0.12],[0.077,0.092]],"o":[[-0.083,0.141],[-0.045,0.005],[0.101,-0.046],[0.015,-0.078],[0.153,0.01]],"v":[[154.424,34.876],[154.128,35.094],[154,35.079],[154.226,34.818],[154.144,34.559]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[3.71,-19.59],[21,-18.31],[-37.83,-2.49]],"o":[[-10.36,-22.61],[4.41,-44.16],[19.36,23.12]],"v":[[26.648,21.049],[-76.002,18.639],[6.078,-43.891]],"c":true}]},{"t":36,"s":[{"i":[[0.012,-0.061],[0.066,-0.057],[-0.118,-0.008]],"o":[[-0.032,-0.071],[0.014,-0.138],[0.06,0.072]],"v":[[1.192,-97.167],[0.872,-97.174],[1.128,-97.369]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-10.36,-22.61],[25.15,-11.39],[5.79,24.31],[-0.53,5.3]],"o":[[-5.65,29.96],[-22.44,-7.84],[-0.55,-5.97],[21,-18.31]],"v":[[26.648,21.049],[-29.982,86.199],[-76.002,35.549],[-76.002,18.639]],"c":true}]},{"t":36,"s":[{"i":[[-0.156,-0.229],[0.005,-0.198],[0.125,0.524],[-0.011,0.114]],"o":[[0.175,0.257],[-0.483,-0.169],[-0.012,-0.129],[0.113,0.148]],"v":[[-149.053,15.247],[-148.42,15.955],[-149.412,14.864],[-149.412,14.5]],"c":true}]}]},"nm":"Path 5","hd":false},{"ty":"fl","c":{"a":0,"k":[0.749019607843,0,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 5","hd":false},{"ty":"st","c":{"a":0,"k":[0.301960784314,0,0.274509803922,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,45.406]},"a":{"a":0,"k":[0,45.406]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":31,"op":36,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null 3","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[256]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[257.445]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[251.735]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[262.162]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[256.384]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[256.888]},{"t":29,"s":[254.404]}]},"y":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[198]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[190.425]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[197.133]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[186.523]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[194.791]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[186.058]},{"t":29,"s":[194.761]}]}},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":20,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"Null 19","parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50,108,0],"to":[0,0,0],"ti":[0,0,0]},{"t":30,"s":[50,1,0]}]}},"ao":0,"ip":0,"op":36,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"blik","parent":6,"sr":1,"ks":{"p":{"a":0,"k":[20.897,-88.771,0]},"a":{"a":0,"k":[19.25,-92,0]},"s":{"a":0,"k":[70,70,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.427,-0.298],[-30.5,146.5]],"o":[[0,13.193],[-55,1.5],[-0.5,0]],"v":[[80.444,-33.889],[0,-10],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[24.905,-1.3],[-8.202,27.448]],"o":[[0,40.169],[-45,-4.333],[2.417,-2.431]],"v":[[98.282,62.507],[32.976,130.655],[10.893,-24.206]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[23.059,-1.647],[-4.109,3.995]],"o":[[0,50.031],[-47.216,-6.039],[3.294,-3.203]],"v":[[109.918,84.947],[41.535,169.497],[12.437,7.17]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":8},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-131]},{"t":30,"s":[-5]}]},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8.571},"lc":2,"lj":2,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":2}},{"n":"g","nm":"gap","v":{"a":0,"k":12}},{"n":"d","nm":"dash2","v":{"a":0,"k":297}},{"n":"o","nm":"offset","v":{"a":0,"k":0}}],"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"rocket_cap","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[0,-33.889,0]},"a":{"a":0,"k":[0,-33.889,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.427,-0.298],[-30.5,146.5]],"o":[[0,13.193],[-55,1.5],[-0.5,0]],"v":[[80.444,-33.889],[0,-10],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[24.905,-1.3],[-8.202,27.448]],"o":[[0,40.169],[-45,-4.333],[2.417,-2.431]],"v":[[87.389,21.435],[22.083,89.583],[0,-65.278]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[23.059,-1.647],[-4.109,3.995]],"o":[[0,50.031],[-47.216,-6.039],[3.294,-3.203]],"v":[[97.776,39.412],[29.392,123.961],[0.294,-38.366]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.749019607843,0,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.428,0],[0,13.193],[0,0]],"o":[[0,13.193],[-44.428,0],[0,-13.193],[0,0]],"v":[[80.444,-33.889],[0,-10],[-80.444,-33.889],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[48.264,0],[0,40.168],[0,0]],"o":[[0,40.168],[-48.264,0],[0,-61.227],[0,0]],"v":[[87.389,21.435],[0,94.167],[-87.389,21.435],[0,-65.278]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[53.838,0],[0,50.031],[0,0]],"o":[[0,50.031],[-53.838,0],[0,-77.778],[0,0]],"v":[[97.776,39.412],[0.294,130],[-97.187,39.412],[0.294,-38.366]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411764706,0,0.486274539723,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-105]},"a":{"a":0,"k":[0,-105]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.428,0],[0,13.193],[-44.428,0]],"o":[[0,13.193],[-44.428,0],[0,-13.193],[44.428,0]],"v":[[80.444,-33.889],[0,-10],[-80.444,-33.889],[0,-57.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-40.168],[48.264,0],[0,40.168],[-48.264,0]],"o":[[0,40.168],[-48.264,0],[0,-40.168],[48.264,0]],"v":[[87.389,21.435],[0,94.167],[-87.389,21.435],[0,-51.296]],"c":true}]},{"t":30,"s":[{"i":[[0,-50.031],[53.838,0],[0,50.031],[-53.838,0]],"o":[[0,50.031],[-53.838,0],[0,-50.031],[53.838,0]],"v":[[97.776,39.412],[0.294,130],[-97.187,39.412],[0.294,-51.176]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.749019607843,0,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-33.889]},"a":{"a":0,"k":[0,-33.889]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.3,0,0.276439771465,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"rocket body 2 outlines","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[2.222,-10],[7.734,34.804],[0,0]],"o":[[0,0],[-7.676,34.543],[-2.222,-10],[0,0]],"v":[[68.778,-37.222],[59.333,153.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[6.667,-12.222],[20.133,36.91],[1.111,16.111]],"o":[[-1.111,16.111],[-20.133,36.911],[-6.667,-12.222],[0,0]],"v":[[76,35.556],[49.333,107.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.301960784314,0,0.274509803922,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"rocket body 2 shadows","parent":10,"sr":1,"ks":{"o":{"a":0,"k":50},"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","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.667,-19.333],[7.333,22.167],[0,0]],"o":[[0,0],[0.167,0.667],[-3.217,-9.726],[0,0]],"v":[[-13.222,-18.222],[-12.667,177.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[0.167,-11.222],[18.833,29.278],[1.111,16.111]],"o":[[-1.111,16.111],[-15.833,-1.222],[-7.532,-11.709],[0,0]],"v":[[8,37.056],[7.333,133.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3,0,0.274509803922,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"lines2","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[-4.5,135.446,0]},"a":{"a":0,"k":[-4.5,135.446,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[19,23.25],[0,0],[-72.25,-0.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-66,-10.75],[65.25,58.5],[66.5,12.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[19,23.25],[0,0],[-70.25,-2.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-67,-26.25],[65.75,25],[68.5,-17]],"c":true}]},{"t":10,"s":[{"i":[[19,23.25],[0,0],[-70.25,-2.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-67,-26.25],[68.25,-15],[68.5,-17]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[25,44.25],[0,0],[-71.75,9],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-65,33.75],[-62.5,74.75],[60.75,137],[62.5,98]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[25,44.25],[0,0],[-71.75,10.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-66.5,2.75],[-65,41.25],[61.75,99],[65,63]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[26,30.25],[0,0],[-71.75,10.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-68.5,-6.75],[-66,19.75],[62.75,70.5],[68,37]],"c":true}]},{"t":15,"s":[{"i":[[26,30.25],[0,0],[-54.75,16],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-68.5,-6.75],[-65.5,15.25],[65.75,49],[71,14]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-56.25,160.5],[-56,160.5],[49.25,167.75],[49.75,168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-54.5,154.25],[-54.25,154.25],[43,161.5],[43.5,161.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-53.75,148],[-53.5,148],[42.25,155.5],[42.75,155.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[17.5,26],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-52.5,136.25],[-52.75,136.25],[42.25,147.75],[42.5,147.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-57.25,102.5],[-55,120.25],[43.25,137.5],[44,133.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-59.25,89.5],[-54.25,106.75],[42.5,128],[48,118.75]],"c":true}]},{"t":30,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-58.5,71.75],[-53.5,89],[43.25,110.25],[48.75,101]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[19,27.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-58.5,158.5],[-58.25,158.5],[53.5,166],[54,165]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[19,27.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-57.25,147],[-57.25,147.5],[50.5,160],[50,161]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[24.25,45.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-60.5,106.5],[-58.75,138.5],[51,150],[51.25,149.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[24.25,45.5],[0,0],[-54.5,29.25],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-62.5,78],[-58.25,106.75],[49,141.75],[53.5,124.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,67.5],[-59.5,89.75],[50,121.5],[54.5,104.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[21.25,35.75],[0,0],[-49.75,27],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,63.25],[-60.75,81.25],[52.25,106.5],[57.25,81]],"c":true}]},{"t":30,"s":[{"i":[[21.25,35.75],[0,0],[-49.75,27],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,63.25],[-60.75,70.5],[56.5,84.75],[57.25,81]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[25,44.25],[0,0],[-47,36.25],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.5,40.25]],"v":[[-61.5,114.75],[-59,155.75],[63.25,158],[63.5,157.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[25,44.25],[0,0],[-55,45.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-62,77.5],[-60.75,112.25],[60.75,151.25],[59.5,132.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[25,44.25],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-64.25,50.75],[-60.75,80.5],[58.25,128],[60.75,101.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[25,39],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-65.5,33.75],[-63.75,59.5],[59,101.75],[61.5,76.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[25,39],[0,0],[-55.75,26.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-69.5,30],[-65,49],[61,82.75],[63.75,62.25]],"c":true}]},{"t":25,"s":[{"i":[[25,39],[0,0],[-55.75,26.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-69.5,30],[-65,54.75],[62.25,76.25],[63.75,62.25]],"c":true}]}]},"nm":"Path 4","hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725490196,0.81568627451,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"rocket body","parent":4,"sr":1,"ks":{"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[2.222,-10],[7.734,34.804],[0,0]],"o":[[0,0],[-7.676,34.543],[-2.222,-10],[0,0]],"v":[[68.778,-37.222],[59.333,153.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[6.667,-12.222],[20.133,36.91],[1.111,16.111]],"o":[[-1.111,16.111],[-20.133,36.911],[-6.667,-12.222],[0,0]],"v":[[76,35.556],[49.333,107.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.749019607843,0,0.690196078431,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[283,390,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[283,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[280,323,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[279,288,0],"to":[0,0,0],"ti":[0,0,0]},{"t":31,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":4,"s":[100,100,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":10,"s":[20,20,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":11,"s":[100,100,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":17,"s":[20,20,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":18,"s":[100,100,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":24,"s":[20,20,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":25,"s":[100,100,100]},{"t":31,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":4,"op":31,"st":4,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[255,394,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[258,356,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[255,327,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[261,292,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":[100,100,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":12,"s":[20,20,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":13,"s":[100,100,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":19,"s":[20,20,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":20,"s":[100,100,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":26,"s":[20,20,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":27,"s":[100,100,100]},{"t":33,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":6,"op":33,"st":6,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[231,397,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[252,494,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[232,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[254,428,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[230,336,0],"to":[0,0,0],"ti":[0,0,0]},{"t":28,"s":[256.5,371.5,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":8,"s":[100,100,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":14,"s":[20,20,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":15,"s":[100,100,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":21,"s":[20,20,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":22,"s":[100,100,100]},{"t":28,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":8,"op":28,"st":8,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[283,390,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[283,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[280,323,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[279,288,0],"to":[0,0,0],"ti":[0,0,0]},{"t":29,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":2,"s":[100,100,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":8,"s":[20,20,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":9,"s":[100,100,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":15,"s":[20,20,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":16,"s":[100,100,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":22,"s":[20,20,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":23,"s":[100,100,100]},{"t":29,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":2,"op":29,"st":2,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[231,397,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[252,494,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[232,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[254,428,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[230,336,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[234,298,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[259,328,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[239,262,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[264,326,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":0,"s":[100,100,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":6,"s":[20,20,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":7,"s":[100,100,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":13,"s":[20,20,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":14,"s":[100,100,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":20,"s":[20,20,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":21,"s":[100,100,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":27,"s":[20,20,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":28,"s":[100,100,100]},{"t":33,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":0,"op":34,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"picies2","sr":1,"ks":{"p":{"a":0,"k":[257.33,185.73,0]},"a":{"a":0,"k":[-265.67,-10.27,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-0.35],[53.84,0],[-19.93,11.56],[-1,-40.01]],"o":[[0,50.03],[-31.67,-34.87],[39.26,-0.87],[0.01,0.35]],"v":[[-168.19,-10.27],[-265.67,80.32],[-266.5,-79.82],[-168.2,-11.32]],"c":true}]},{"t":35,"s":[{"i":[[0,-0.004],[0.613,0],[-0.227,0.132],[-0.011,-0.455]],"o":[[0,0.569],[-0.36,-0.397],[0.447,-0.01],[0,0.004]],"v":[[-145.03,70.7],[-146.14,71.731],[-146.149,69.909],[-145.03,70.688]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-2.5,-7],[15.65,-61.05],[-53.84,0]],"o":[[0,0],[0,-50.03],[0,0]],"v":[[-266.5,-79.82],[-363.15,-10.27],[-265.67,-100.86]],"c":true}]},{"t":35,"s":[{"i":[[-0.013,-0.036],[0.08,-0.312],[-0.275,0]],"o":[[0,0],[0,-0.256],[0,0]],"v":[[-383.165,-126.689],[-383.659,-126.333],[-383.161,-126.797]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.6,-49.55],[39.26,-0.87],[0,0]],"o":[[-1,-40.01],[-2.5,-7],[53.46,0]],"v":[[-168.2,-11.32],[-266.5,-79.82],[-265.67,-100.86]],"c":true}]},{"t":35,"s":[{"i":[[-0.018,-1.483],[1.175,-0.026],[0,0]],"o":[[-0.03,-1.198],[-0.075,-0.21],[1.6,0]],"v":[[-162.091,-102.75],[-165.034,-104.8],[-165.009,-105.43]],"c":true}]}]},"nm":"Path 3","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039275525,0.898039275525,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[-265.67,-10.27]},"a":{"a":0,"k":[-265.67,-10.27]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-31.67,-34.87],[0,50.03],[0,0]],"o":[[-53.84,0],[15.65,-61.05],[-19.93,11.56]],"v":[[-265.67,80.32],[-363.15,-10.27],[-266.5,-79.82]],"c":true}]},{"t":35,"s":[{"i":[[-0.099,-0.109],[0,0.156],[0,0]],"o":[[-0.168,0],[0.049,-0.191],[-0.062,0.036]],"v":[[-415.258,90.5],[-415.562,90.217],[-415.26,90]],"c":true}]}]},"nm":"Path 4","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.643137254902,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[-314.41,0.25]},"a":{"a":0,"k":[-314.41,0.25]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.647058823529,0.305882352941,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-265.67,-10.27]},"a":{"a":0,"k":[-265.67,-10.27]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":30,"op":35,"st":2,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"picies","sr":1,"ks":{"p":{"a":0,"k":[255,191.406,0]},"a":{"a":0,"k":[0,45.406,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-14.81,-13.46],[11.95,21.92],[1.11,16.11],[-22.44,-7.84],[-11.16,1.15]],"o":[[-22.91,4.11],[-6.67,-12.23],[5.79,24.31],[9.97,3.48],[-0.13,0.68]],"v":[[10.978,133.929],[-49.332,107.219],[-76.002,35.549],[-29.982,86.199],[2.028,89.909]],"c":true}]},{"t":36,"s":[{"i":[[0.042,0.009],[-0.025,-0.045],[-0.002,-0.033],[0.03,0.046],[0.013,0.008]],"o":[[0.048,-0.009],[0.014,0.025],[-0.012,-0.05],[-0.009,-0.013],[-0.02,-0.013]],"v":[[-71.68,195.17],[-71.555,195.225],[-71.5,195.374],[-71.582,195.231],[-71.615,195.198]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-20.7,35.34],[6.66,-12.23],[15.67,-2.82],[0,0],[-0.13,0.68]],"o":[[-1.11,16.11],[-8.18,15],[0,0],[-14.81,-13.46],[25.91,-2.68]],"v":[[75.998,35.549],[49.338,107.219],[10.988,133.929],[10.978,133.929],[2.028,89.909]],"c":true}]},{"t":36,"s":[{"i":[[-0.149,0.254],[0.048,-0.088],[0.112,-0.02],[0,0],[-0.001,0.005]],"o":[[-0.008,0.116],[-0.059,0.108],[0,0],[0.129,-0.1],[0.093,-0.157]],"v":[[73.967,180.898],[73.775,181.412],[73.5,181.604],[73.5,181.604],[73.665,181.395]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[4.69,-50.46],[25.91,-2.68],[9.97,3.48],[-5.65,29.96],[19.36,23.12]],"o":[[-20.7,35.34],[-11.16,1.15],[25.15,-11.39],[3.71,-19.59],[38.33,2.51]],"v":[[75.998,35.549],[2.028,89.909],[-29.982,86.199],[26.648,21.049],[6.078,-43.891]],"c":true}]},{"t":36,"s":[{"i":[[0.019,-0.202],[0.104,-0.011],[0.04,0.014],[-0.023,0.12],[0.077,0.092]],"o":[[-0.083,0.141],[-0.045,0.005],[0.101,-0.046],[0.015,-0.078],[0.153,0.01]],"v":[[154.424,34.876],[154.128,35.094],[154,35.079],[154.226,34.818],[154.144,34.559]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[3.71,-19.59],[21,-18.31],[-37.83,-2.49]],"o":[[-10.36,-22.61],[4.41,-44.16],[19.36,23.12]],"v":[[26.648,21.049],[-76.002,18.639],[6.078,-43.891]],"c":true}]},{"t":36,"s":[{"i":[[0.012,-0.061],[0.066,-0.057],[-0.118,-0.008]],"o":[[-0.032,-0.071],[0.014,-0.138],[0.06,0.072]],"v":[[1.192,-97.167],[0.872,-97.174],[1.128,-97.369]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-10.36,-22.61],[25.15,-11.39],[5.79,24.31],[-0.53,5.3]],"o":[[-5.65,29.96],[-22.44,-7.84],[-0.55,-5.97],[21,-18.31]],"v":[[26.648,21.049],[-29.982,86.199],[-76.002,35.549],[-76.002,18.639]],"c":true}]},{"t":36,"s":[{"i":[[-0.156,-0.229],[0.005,-0.198],[0.125,0.524],[-0.011,0.114]],"o":[[0.175,0.257],[-0.483,-0.169],[-0.012,-0.129],[0.113,0.148]],"v":[[-149.053,15.247],[-148.42,15.955],[-149.412,14.864],[-149.412,14.5]],"c":true}]}]},"nm":"Path 5","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039275525,0.898039275525,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 5","hd":false},{"ty":"st","c":{"a":0,"k":[0.647058823529,0.305882352941,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,45.406]},"a":{"a":0,"k":[0,45.406]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":31,"op":36,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null 3","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[256]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[257.445]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[251.735]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[262.162]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[256.384]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[256.888]},{"t":29,"s":[254.404]}]},"y":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[198]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[190.425]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[197.133]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[186.523]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[194.791]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[186.058]},{"t":29,"s":[194.761]}]}},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":20,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"Null 19","parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50,108,0],"to":[0,0,0],"ti":[0,0,0]},{"t":30,"s":[50,1,0]}]}},"ao":0,"ip":0,"op":36,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"blik","parent":6,"sr":1,"ks":{"p":{"a":0,"k":[20.897,-88.771,0]},"a":{"a":0,"k":[19.25,-92,0]},"s":{"a":0,"k":[70,70,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.427,-0.298],[-30.5,146.5]],"o":[[0,13.193],[-55,1.5],[-0.5,0]],"v":[[80.444,-33.889],[0,-10],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[24.905,-1.3],[-8.202,27.448]],"o":[[0,40.169],[-45,-4.333],[2.417,-2.431]],"v":[[98.282,62.507],[32.976,130.655],[10.893,-24.206]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[23.059,-1.647],[-4.109,3.995]],"o":[[0,50.031],[-47.216,-6.039],[3.294,-3.203]],"v":[[109.918,84.947],[41.535,169.497],[12.437,7.17]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":8},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-131]},{"t":30,"s":[-5]}]},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8.571},"lc":2,"lj":2,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":2}},{"n":"g","nm":"gap","v":{"a":0,"k":12}},{"n":"d","nm":"dash2","v":{"a":0,"k":297}},{"n":"o","nm":"offset","v":{"a":0,"k":0}}],"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"rocket_cap","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[0,-33.889,0]},"a":{"a":0,"k":[0,-33.889,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.427,-0.298],[-30.5,146.5]],"o":[[0,13.193],[-55,1.5],[-0.5,0]],"v":[[80.444,-33.889],[0,-10],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[24.905,-1.3],[-8.202,27.448]],"o":[[0,40.169],[-45,-4.333],[2.417,-2.431]],"v":[[87.389,21.435],[22.083,89.583],[0,-65.278]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[23.059,-1.647],[-4.109,3.995]],"o":[[0,50.031],[-47.216,-6.039],[3.294,-3.203]],"v":[[97.776,39.412],[29.392,123.961],[0.294,-38.366]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039275525,0.898039275525,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.428,0],[0,13.193],[0,0]],"o":[[0,13.193],[-44.428,0],[0,-13.193],[0,0]],"v":[[80.444,-33.889],[0,-10],[-80.444,-33.889],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[48.264,0],[0,40.168],[0,0]],"o":[[0,40.168],[-48.264,0],[0,-61.227],[0,0]],"v":[[87.389,21.435],[0,94.167],[-87.389,21.435],[0,-65.278]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[53.838,0],[0,50.031],[0,0]],"o":[[0,50.031],[-53.838,0],[0,-77.778],[0,0]],"v":[[97.776,39.412],[0.294,130],[-97.187,39.412],[0.294,-38.366]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.643137254902,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-105]},"a":{"a":0,"k":[0,-105]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.428,0],[0,13.193],[-44.428,0]],"o":[[0,13.193],[-44.428,0],[0,-13.193],[44.428,0]],"v":[[80.444,-33.889],[0,-10],[-80.444,-33.889],[0,-57.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-40.168],[48.264,0],[0,40.168],[-48.264,0]],"o":[[0,40.168],[-48.264,0],[0,-40.168],[48.264,0]],"v":[[87.389,21.435],[0,94.167],[-87.389,21.435],[0,-51.296]],"c":true}]},{"t":30,"s":[{"i":[[0,-50.031],[53.838,0],[0,50.031],[-53.838,0]],"o":[[0,50.031],[-53.838,0],[0,-50.031],[53.838,0]],"v":[[97.776,39.412],[0.294,130],[-97.187,39.412],[0.294,-51.176]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039275525,0.898039275525,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-33.889]},"a":{"a":0,"k":[0,-33.889]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0.647058823529,0.305882352941,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"rocket body 2 outlines","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[2.222,-10],[7.734,34.804],[0,0]],"o":[[0,0],[-7.676,34.543],[-2.222,-10],[0,0]],"v":[[68.778,-37.222],[59.333,153.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[6.667,-12.222],[20.133,36.91],[1.111,16.111]],"o":[[-1.111,16.111],[-20.133,36.911],[-6.667,-12.222],[0,0]],"v":[[76,35.556],[49.333,107.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.647058823529,0.305882352941,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"rocket body 2 shadows","parent":10,"sr":1,"ks":{"o":{"a":0,"k":50},"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","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.667,-19.333],[7.333,22.167],[0,0]],"o":[[0,0],[0.167,0.667],[-3.217,-9.726],[0,0]],"v":[[-13.222,-18.222],[-12.667,177.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[0.167,-11.222],[18.833,29.278],[1.111,16.111]],"o":[[-1.111,16.111],[-15.833,-1.222],[-7.532,-11.709],[0,0]],"v":[[8,37.056],[7.333,133.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.713725490196,0.38431372549,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"lines2","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[-4.5,135.446,0]},"a":{"a":0,"k":[-4.5,135.446,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[19,23.25],[0,0],[-72.25,-0.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-66,-10.75],[65.25,58.5],[66.5,12.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[19,23.25],[0,0],[-70.25,-2.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-67,-26.25],[65.75,25],[68.5,-17]],"c":true}]},{"t":10,"s":[{"i":[[19,23.25],[0,0],[-70.25,-2.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-67,-26.25],[68.25,-15],[68.5,-17]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[25,44.25],[0,0],[-71.75,9],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-65,33.75],[-62.5,74.75],[60.75,137],[62.5,98]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[25,44.25],[0,0],[-71.75,10.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-66.5,2.75],[-65,41.25],[61.75,99],[65,63]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[26,30.25],[0,0],[-71.75,10.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-68.5,-6.75],[-66,19.75],[62.75,70.5],[68,37]],"c":true}]},{"t":15,"s":[{"i":[[26,30.25],[0,0],[-54.75,16],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-68.5,-6.75],[-65.5,15.25],[65.75,49],[71,14]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-56.25,160.5],[-56,160.5],[49.25,167.75],[49.75,168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-54.5,154.25],[-54.25,154.25],[43,161.5],[43.5,161.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-53.75,148],[-53.5,148],[42.25,155.5],[42.75,155.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[17.5,26],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-52.5,136.25],[-52.75,136.25],[42.25,147.75],[42.5,147.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-57.25,102.5],[-55,120.25],[43.25,137.5],[44,133.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-59.25,89.5],[-54.25,106.75],[42.5,128],[48,118.75]],"c":true}]},{"t":30,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-58.5,71.75],[-53.5,89],[43.25,110.25],[48.75,101]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[19,27.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-58.5,158.5],[-58.25,158.5],[53.5,166],[54,165]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[19,27.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-57.25,147],[-57.25,147.5],[50.5,160],[50,161]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[24.25,45.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-60.5,106.5],[-58.75,138.5],[51,150],[51.25,149.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[24.25,45.5],[0,0],[-54.5,29.25],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-62.5,78],[-58.25,106.75],[49,141.75],[53.5,124.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,67.5],[-59.5,89.75],[50,121.5],[54.5,104.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[21.25,35.75],[0,0],[-49.75,27],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,63.25],[-60.75,81.25],[52.25,106.5],[57.25,81]],"c":true}]},{"t":30,"s":[{"i":[[21.25,35.75],[0,0],[-49.75,27],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,63.25],[-60.75,70.5],[56.5,84.75],[57.25,81]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[25,44.25],[0,0],[-47,36.25],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.5,40.25]],"v":[[-61.5,114.75],[-59,155.75],[63.25,158],[63.5,157.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[25,44.25],[0,0],[-55,45.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-62,77.5],[-60.75,112.25],[60.75,151.25],[59.5,132.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[25,44.25],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-64.25,50.75],[-60.75,80.5],[58.25,128],[60.75,101.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[25,39],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-65.5,33.75],[-63.75,59.5],[59,101.75],[61.5,76.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[25,39],[0,0],[-55.75,26.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-69.5,30],[-65,49],[61,82.75],[63.75,62.25]],"c":true}]},{"t":25,"s":[{"i":[[25,39],[0,0],[-55.75,26.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-69.5,30],[-65,54.75],[62.25,76.25],[63.75,62.25]],"c":true}]}]},"nm":"Path 4","hd":false},{"ty":"fl","c":{"a":0,"k":[0.109803921569,0.576470588235,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"rocket body","parent":4,"sr":1,"ks":{"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[2.222,-10],[7.734,34.804],[0,0]],"o":[[0,0],[-7.676,34.543],[-2.222,-10],[0,0]],"v":[[68.778,-37.222],[59.333,153.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[6.667,-12.222],[20.133,36.91],[1.111,16.111]],"o":[[-1.111,16.111],[-20.133,36.911],[-6.667,-12.222],[0,0]],"v":[[76,35.556],[49.333,107.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898039215686,0.898039215686,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[283,390,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[283,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[280,323,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[279,288,0],"to":[0,0,0],"ti":[0,0,0]},{"t":31,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":4,"s":[100,100,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":10,"s":[20,20,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":11,"s":[100,100,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":17,"s":[20,20,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":18,"s":[100,100,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":24,"s":[20,20,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":25,"s":[100,100,100]},{"t":31,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":4,"op":31,"st":4,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[255,394,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[258,356,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[255,327,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[261,292,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":[100,100,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":12,"s":[20,20,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":13,"s":[100,100,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":19,"s":[20,20,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":20,"s":[100,100,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":26,"s":[20,20,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":27,"s":[100,100,100]},{"t":33,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":6,"op":33,"st":6,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[231,397,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[252,494,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[232,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[254,428,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[230,336,0],"to":[0,0,0],"ti":[0,0,0]},{"t":28,"s":[256.5,371.5,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":8,"s":[100,100,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":14,"s":[20,20,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":15,"s":[100,100,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":21,"s":[20,20,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":22,"s":[100,100,100]},{"t":28,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":8,"op":28,"st":8,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[283,390,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[283,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[280,323,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[279,288,0],"to":[0,0,0],"ti":[0,0,0]},{"t":29,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":2,"s":[100,100,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":8,"s":[20,20,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":9,"s":[100,100,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":15,"s":[20,20,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":16,"s":[100,100,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":22,"s":[20,20,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":23,"s":[100,100,100]},{"t":29,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":2,"op":29,"st":2,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[231,397,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[252,494,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[232,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[254,428,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[230,336,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[234,298,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[259,328,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[239,262,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[264,326,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":0,"s":[100,100,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":6,"s":[20,20,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":7,"s":[100,100,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":13,"s":[20,20,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":14,"s":[100,100,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":20,"s":[20,20,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":21,"s":[100,100,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":27,"s":[20,20,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":28,"s":[100,100,100]},{"t":33,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":0,"op":34,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pink","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[100]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":100,"s":[0]}]},"p":{"a":0,"k":[245.75,225.75,0]},"a":{"a":0,"k":[2.75,-17.25,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.629,0.629,0.629],"y":[0,0,0]},"t":30,"s":[43.235,43.235,100]},{"t":40,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.312,8.525],[3.244,0.766],[0.278,-4.348]],"o":[[-1.312,-8.525],[-5.358,-1.265],[-0.278,4.348]],"v":[[6.13,-24.571],[8.951,-66.768],[5.014,-23.638]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.55,23.061],[3.244,0.766],[0.753,-11.762]],"o":[[-3.55,-23.061],[-5.358,-1.265],[-0.753,11.762]],"v":[[11.788,-37.733],[14.47,-92.154],[8.769,-35.211]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.113,0.736],[3.244,0.766],[0.024,-0.376]],"o":[[-0.113,-0.736],[-5.358,-1.265],[-0.024,0.376]],"v":[[1.251,-14.165],[19.643,-137.56],[1.155,-14.085]],"c":true}]},{"t":100,"s":[{"i":[[0.002,0.014],[3.244,0.766],[0,-0.007]],"o":[[-0.002,-0.014],[-5.358,-1.265],[0,0.007]],"v":[[29.568,-215.114],[32.47,-250.154],[29.566,-215.113]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.775,14.209],[6.351,4.603],[2.652,-16.185]],"o":[[0.775,-14.209],[-4.056,-2.94],[-2.652,16.185]],"v":[[7.231,-23.969],[18.873,-61.186],[6.13,-24.571]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-2.096,38.439],[6.351,4.603],[7.173,-43.783]],"o":[[2.096,-38.439],[-4.056,-2.94],[-7.173,43.783]],"v":[[14.767,-36.105],[37.637,-108.647],[11.788,-37.733]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.067,1.227],[6.351,4.603],[0.229,-1.398]],"o":[[0.067,-1.227],[-4.056,-2.94],[-0.229,1.398]],"v":[[1.932,-14.242],[49.85,-146.868],[1.837,-14.294]],"c":true}]},{"t":100,"s":[{"i":[[-0.001,0.023],[6.351,4.603],[0.004,-0.026]],"o":[[0.001,-0.023],[-4.056,-2.94],[-0.004,0.026]],"v":[[75.069,-225.113],[80.137,-241.647],[75.068,-225.114]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.749,6.829],[6.31,5.609],[1.359,-6.48]],"o":[[-0.749,-6.829],[-3.554,-3.159],[-1.359,6.48]],"v":[[8.596,-23.217],[31.24,-73.607],[7.231,-23.969]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.026,18.473],[6.31,5.609],[3.677,-17.531]],"o":[[-2.026,-18.473],[-3.554,-3.159],[-3.677,17.531]],"v":[[18.46,-34.07],[47.481,-104.355],[14.767,-36.105]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.065,0.59],[6.31,5.609],[0.117,-0.56]],"o":[[-0.065,-0.59],[-3.554,-3.159],[-0.117,0.56]],"v":[[2.166,-13.836],[63.43,-142.576],[2.048,-13.901]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.011],[6.31,5.609],[0.002,-0.011]],"o":[[-0.001,-0.011],[-3.554,-3.159],[-0.002,0.011]],"v":[[84.072,-198.612],[102.981,-237.355],[84.069,-198.613]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.199,15.089],[5.581,6.595],[12.758,-17.563]],"o":[[6.199,-15.089],[-2.72,-3.214],[-12.758,17.563]],"v":[[9.486,-22.203],[48.882,-61.987],[8.281,-23.532]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-16.769,40.819],[5.581,6.595],[34.513,-47.512]],"o":[[16.769,-40.819],[-2.72,-3.214],[-34.513,47.512]],"v":[[21.719,-30.475],[103.282,-109.764],[18.46,-34.07]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.535,1.303],[5.581,6.595],[1.102,-1.517]],"o":[[0.535,-1.303],[-2.72,-3.214],[-1.102,1.517]],"v":[[3.204,-13.341],[122.823,-131.604],[3.099,-13.456]],"c":true}]},{"t":100,"s":[{"i":[[-0.01,0.025],[5.581,6.595],[0.021,-0.029]],"o":[[0.01,-0.025],[-2.72,-3.214],[-0.021,0.029]],"v":[[156.574,-169.11],[171.282,-185.764],[156.572,-169.112]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.223,9.945],[2.258,6.104],[6.726,-10.205]],"o":[[4.223,-9.945],[-1.817,-4.912],[-6.726,10.205]],"v":[[11.177,-20.424],[48.778,-58.677],[9.801,-21.888]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-11.423,26.904],[2.258,6.104],[18.195,-27.606]],"o":[[11.423,-26.904],[-1.817,-4.912],[-18.195,27.606]],"v":[[25.439,-26.516],[74.48,-79.649],[21.719,-30.475]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.365,0.859],[2.258,6.104],[0.581,-0.882]],"o":[[0.365,-0.859],[-1.817,-4.912],[-0.581,0.882]],"v":[[3.264,-12.932],[105.66,-107.524],[3.146,-13.058]],"c":true}]},{"t":100,"s":[{"i":[[-0.007,0.016],[2.258,6.104],[0.011,-0.017]],"o":[[0.007,-0.016],[-1.817,-4.912],[-0.011,0.017]],"v":[[152.076,-147.108],[182.98,-176.649],[152.074,-147.11]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-3.334,6.648],[-1.799,5.518],[9.673,-9.931]],"o":[[3.334,-6.648],[1.878,-5.758],[-9.673,9.931]],"v":[[12.897,-19.193],[48.972,-44.204],[11.177,-20.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-9.018,17.983],[-1.799,5.518],[26.167,-26.865]],"o":[[9.018,-17.983],[1.878,-5.758],[-26.167,26.865]],"v":[[30.094,-23.186],[81.927,-62.022],[25.439,-26.516]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.288,0.574],[-1.799,5.518],[0.836,-0.858]],"o":[[0.288,-0.574],[1.878,-5.758],[-0.836,0.858]],"v":[[3.883,-12.491],[120.292,-83.862],[3.734,-12.597]],"c":true}]},{"t":100,"s":[{"i":[[-0.005,0.011],[-1.799,5.518],[0.016,-0.016]],"o":[[0.005,-0.011],[1.878,-5.758],[-0.016,0.016]],"v":[[188.579,-121.106],[215.427,-138.022],[188.576,-121.108]],"c":true}]}]},"nm":"Path 6","hd":false},{"ind":6,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-9.869,8.704],[-3.432,7.058],[12.009,-7.852]],"o":[[9.869,-8.704],[2.981,-6.13],[-12.009,7.852]],"v":[[12.832,-16.628],[74.374,-42.527],[12.897,-19.193]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-26.696,23.547],[-3.432,7.058],[32.485,-21.24]],"o":[[26.696,-23.547],[2.981,-6.13],[-32.485,21.24]],"v":[[29.916,-16.247],[117.42,-56.876],[30.094,-23.186]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.852,0.752],[-3.432,7.058],[1.037,-0.678]],"o":[[0.852,-0.752],[2.981,-6.13],[-1.037,0.678]],"v":[[3.897,-11.786],[151.618,-69.521],[3.902,-12.008]],"c":true}]},{"t":100,"s":[{"i":[[-0.016,0.014],[-3.432,7.058],[0.02,-0.013]],"o":[[0.016,-0.014],[2.981,-6.13],[-0.02,0.013]],"v":[[190.079,-83.601],[236.42,-100.876],[190.079,-83.606]],"c":true}]}]},"nm":"Path 7","hd":false},{"ind":7,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-14.199,3.553],[-2.249,4.962],[22.38,-4.873]],"o":[[22.287,-5.577],[4.049,-8.935],[-22.38,4.873]],"v":[[10.861,-15.141],[88.919,-15.854],[12.516,-16.944]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-38.412,9.611],[-2.249,4.962],[60.542,-13.183]],"o":[[60.291,-15.085],[4.049,-8.935],[-60.542,13.183]],"v":[[25.439,-11.372],[154.986,-15.381],[29.916,-16.247]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.227,0.307],[-2.249,4.962],[1.933,-0.421]],"o":[[1.925,-0.482],[4.049,-8.935],[-1.933,0.421]],"v":[[3.934,-10.704],[182.862,-13.944],[4.077,-10.859]],"c":true}]},{"t":100,"s":[{"i":[[-0.023,0.006],[-2.249,4.962],[0.036,-0.008]],"o":[[0.036,-0.009],[4.049,-8.935],[-0.036,0.008]],"v":[[204.076,-11.599],[251.986,-10.381],[204.079,-11.601]],"c":true}]}]},"nm":"Path 8","hd":false},{"ind":8,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.711,2.16],[-0.839,0.958],[12.251,-0.88]],"o":[[4.711,-2.16],[1.348,-1.539],[-12.251,0.88]],"v":[[9.079,-12.869],[39.383,-12.388],[10.861,-14.826]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-12.744,5.843],[-0.839,0.958],[33.14,-2.38]],"o":[[12.744,-5.843],[1.348,-1.539],[-33.14,2.38]],"v":[[20.619,-6.076],[78.015,-8.131],[25.439,-11.372]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.407,0.187],[-0.839,0.958],[1.058,-0.076]],"o":[[0.407,-0.187],[1.348,-1.539],[-1.058,0.076]],"v":[[4.224,-10.251],[128.305,-2.239],[4.378,-10.421]],"c":true}]},{"t":100,"s":[{"i":[[-0.008,0.004],[-0.839,0.958],[0.02,-0.001]],"o":[[0.008,-0.004],[1.348,-1.539],[-0.02,0.001]],"v":[[238.573,10.405],[253.015,12.369],[238.576,10.401]],"c":true}]}]},"nm":"Path 9","hd":false},{"ind":9,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-19.702,-2.401],[-2.482,3.154],[14.29,0.398]],"o":[[19.702,2.401],[2.595,-3.297],[-14.29,-0.398]],"v":[[9.698,-12.307],[64.597,6.088],[9.395,-13.184]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-53.298,-6.494],[-2.482,3.154],[38.657,1.077]],"o":[[53.298,6.494],[2.595,-3.297],[-38.657,-1.077]],"v":[[21.439,-3.705],[93.137,16.968],[20.619,-6.076]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.702,-0.207],[-2.482,3.154],[1.234,0.034]],"o":[[1.702,0.207],[2.595,-3.297],[-1.234,-0.034]],"v":[[3.71,-9.493],[135.812,35.216],[3.683,-9.569]],"c":true}]},{"t":100,"s":[{"i":[[-0.032,-0.004],[-2.482,3.154],[0.023,0.001]],"o":[[0.032,0.004],[2.595,-3.297],[-0.023,-0.001]],"v":[[196.573,63.406],[241.637,80.468],[196.573,63.405]],"c":true}]}]},"nm":"Path 10","hd":false},{"ind":10,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-9.253,-3.386],[-5.064,4.293],[16.792,8.51]],"o":[[9.253,3.386],[4.126,-3.498],[-16.792,-8.51]],"v":[[11.313,-9.614],[54.159,17.809],[9.698,-11.992]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-25.032,-9.16],[-5.064,4.293],[45.426,23.022]],"o":[[25.032,9.16],[4.126,-3.498],[-45.426,-23.022]],"v":[[25.808,2.729],[103.197,50.764],[21.439,-3.705]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.799,-0.292],[-5.064,4.293],[1.451,0.735]],"o":[[0.799,0.292],[4.126,-3.498],[-1.451,-0.735]],"v":[[3.881,-8.702],[137.251,71.886],[3.742,-8.908]],"c":true}]},{"t":100,"s":[{"i":[[-0.015,-0.006],[-5.064,4.293],[0.027,0.014]],"o":[[0.015,0.006],[4.126,-3.498],[-0.027,-0.014]],"v":[[199.076,108.91],[221.697,124.264],[199.073,108.906]],"c":true}]}]},"nm":"Path 11","hd":false},{"ind":11,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.526,-3.215],[-3.502,3.162],[9.671,6.481]],"o":[[6.526,3.215],[3.502,-3.162],[-9.671,-6.481]],"v":[[10.491,-8.994],[73.057,40.569],[11.313,-9.929]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-17.653,-8.697],[-3.502,3.162],[26.163,17.532]],"o":[[17.653,8.697],[3.502,-3.162],[-26.163,-17.532]],"v":[[23.585,5.258],[96.236,63.117],[25.808,2.729]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.564,-0.278],[-3.502,3.162],[0.835,0.56]],"o":[[0.564,0.278],[3.502,-3.162],[-0.835,-0.56]],"v":[[3.102,-8.57],[126.267,90.274],[3.173,-8.651]],"c":true}]},{"t":100,"s":[{"i":[[-0.011,-0.005],[-3.502,3.162],[0.016,0.011]],"o":[[0.011,0.005],[3.502,-3.162],[-0.016,-0.011]],"v":[[144.075,112.911],[200.736,157.617],[144.076,112.91]],"c":true}]}]},"nm":"Path 12","hd":false},{"ind":12,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-13.475,-10.482],[-4.458,3.463],[10.073,7.849]],"o":[[13.475,10.482],[4.458,-3.463],[-10.073,-7.849]],"v":[[9.502,-7.951],[52.87,45.892],[10.491,-8.678]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-36.453,-28.355],[-4.458,3.463],[27.249,21.233]],"o":[[36.453,28.355],[4.458,-3.463],[-27.249,-21.233]],"v":[[20.909,7.226],[94.655,93.669],[23.585,5.258]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-1.164,-0.905],[-4.458,3.463],[0.87,0.678]],"o":[[1.164,0.905],[4.458,-3.463],[-0.87,-0.678]],"v":[[3.049,-7.986],[116.926,120.825],[3.134,-8.049]],"c":true}]},{"t":100,"s":[{"i":[[-0.022,-0.017],[-4.458,3.463],[0.016,0.013]],"o":[[0.022,0.017],[4.458,-3.463],[-0.016,-0.013]],"v":[[146.573,153.413],[172.155,188.169],[146.575,153.411]],"c":true}]}]},"nm":"Path 13","hd":false},{"ind":13,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.775,-3.087],[-3.488,2.449],[10.229,14.193]],"o":[[4.775,3.087],[3.488,-2.449],[-10.229,-14.193]],"v":[[7.167,-8.135],[48.091,56.332],[9.187,-7.951]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-12.917,-8.352],[-3.488,2.449],[27.671,38.395]],"o":[[12.917,8.352],[3.488,-2.449],[-27.671,-38.395]],"v":[[15.445,6.729],[62.124,74.78],[20.909,7.226]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.412,-0.267],[-3.488,2.449],[0.884,1.226]],"o":[[0.412,0.267],[3.488,-2.449],[-0.884,-1.226]],"v":[[2.321,-8.079],[84.827,113.576],[2.495,-8.063]],"c":true}]},{"t":100,"s":[{"i":[[-0.008,-0.005],[-3.488,2.449],[0.017,0.023]],"o":[[0.008,0.005],[3.488,-2.449],[-0.017,-0.023]],"v":[[103.57,147.412],[141.124,209.78],[103.573,147.413]],"c":true}]}]},"nm":"Path 14","hd":false},{"ind":14,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-5.362,-6.334],[-2.659,0.857],[3.694,6.735]],"o":[[5.361,6.334],[6.495,-2.093],[-3.694,-6.735]],"v":[[5.102,-9.295],[26.477,35.494],[7.167,-8.45]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-14.504,-17.136],[-2.659,0.857],[9.994,18.219]],"o":[[14.504,17.136],[6.495,-2.093],[-9.994,-18.219]],"v":[[9.859,4.445],[41.772,64.349],[15.445,6.729]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.463,-0.547],[-2.659,0.857],[0.319,0.582]],"o":[[0.463,0.547],[6.495,-2.093],[-0.319,-0.582]],"v":[[2.027,-7.553],[61.313,111.91],[2.205,-7.48]],"c":true}]},{"t":100,"s":[{"i":[[-0.009,-0.01],[-2.659,0.857],[0.006,0.011]],"o":[[0.009,0.01],[6.495,-2.093],[-0.006,-0.011]],"v":[[94.566,193.911],[109.772,229.849],[94.57,193.912]],"c":true}]}]},"nm":"Path 15","hd":false},{"ind":15,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.43,-4.038],[-5.792,0.94],[0.557,8.126]],"o":[[0.43,4.038],[3.71,-0.602],[-0.557,-8.126]],"v":[[3.69,-10.876],[17.077,55.965],[5.102,-9.295]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-1.164,-10.924],[-5.792,0.94],[1.507,21.981]],"o":[[1.164,10.924],[3.71,-0.602],[-1.507,-21.981]],"v":[[6.039,0.167],[22.28,71.891],[9.859,4.445]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[-0.037,-0.349],[-5.792,0.94],[0.048,0.702]],"o":[[0.037,0.349],[3.71,-0.602],[-0.048,-0.702]],"v":[[1.242,-7.799],[31.62,122.9],[1.364,-7.663]],"c":true}]},{"t":100,"s":[{"i":[[-0.001,-0.007],[-5.792,0.94],[0.001,0.013]],"o":[[0.001,0.007],[3.71,-0.602],[-0.001,-0.013]],"v":[[43.064,185.408],[54.78,249.391],[43.066,185.411]],"c":true}]}]},"nm":"Path 16","hd":false},{"ind":16,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.268,-1.072],[-8.766,2.77],[-1.453,20.282]],"o":[[-0.268,1.072],[8.956,-2.83],[1.453,-20.282]],"v":[[2.258,-8.649],[11.352,48.031],[4.005,-10.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0.726,-2.901],[-8.766,2.77],[-3.93,54.866]],"o":[[-0.726,2.901],[8.956,-2.83],[3.93,-54.866]],"v":[[1.312,6.192],[20.655,115.675],[6.039,0.167]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.023,-0.093],[-8.766,2.77],[-0.125,1.752]],"o":[[-0.023,0.093],[8.956,-2.83],[0.125,-1.752]],"v":[[0.956,-7.06],[24.966,155.333],[1.106,-7.252]],"c":true}]},{"t":100,"s":[{"i":[[0,-0.002],[-8.766,2.77],[-0.002,0.033]],"o":[[0,0.002],[8.956,-2.83],[0.002,-0.033]],"v":[[32.561,227.912],[35.655,253.675],[32.564,227.908]],"c":true}]}]},"nm":"Path 17","hd":false},{"ind":17,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.674,-5.118],[-9.34,-10.304],[-5.656,20.469]],"o":[[-0.674,5.118],[5.335,5.886],[5.656,-20.469]],"v":[[0.319,-7.862],[-7.754,79.004],[2.258,-8.649]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.822,-13.845],[-9.34,-10.304],[-15.299,55.372]],"o":[[-1.822,13.845],[5.335,5.886],[15.299,-55.372]],"v":[[-3.933,8.322],[-10.119,142.549],[1.312,6.192]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.058,-0.442],[-9.34,-10.304],[-0.489,1.768]],"o":[[-0.058,0.442],[5.335,5.886],[0.489,-1.768]],"v":[[0.157,-7.436],[-14.573,174.16],[0.325,-7.504]],"c":true}]},{"t":100,"s":[{"i":[[0.001,-0.008],[-9.34,-10.304],[-0.009,0.033]],"o":[[-0.001,0.008],[5.335,5.886],[0.009,-0.033]],"v":[[-16.442,193.413],[-25.619,252.549],[-16.439,193.412]],"c":true}]}]},"nm":"Path 18","hd":false},{"ind":18,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.134,-4.491],[-8.529,-8.273],[-6.696,18.034]],"o":[[-1.134,4.491],[3.166,3.071],[6.696,-18.034]],"v":[[-1.761,-9.64],[-13.598,51.106],[0.003,-7.546]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.068,-12.148],[-8.529,-8.273],[-18.113,48.786]],"o":[[-3.068,12.148],[3.166,3.071],[18.113,-48.786]],"v":[[-8.707,2.658],[-24.162,110.866],[-3.933,8.322]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.098,-0.388],[-8.529,-8.273],[-0.578,1.558]],"o":[[-0.098,0.388],[3.166,3.071],[0.578,-1.558]],"v":[[-0.446,-7.378],[-34.795,149.374],[-0.293,-7.198]],"c":true}]},{"t":100,"s":[{"i":[[0.002,-0.007],[-8.529,-8.273],[-0.011,0.029]],"o":[[-0.002,0.007],[3.166,3.071],[0.011,-0.029]],"v":[[-51.445,211.91],[-61.162,244.866],[-51.442,211.913]],"c":true}]}]},"nm":"Path 19","hd":false},{"ind":19,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[9.217,-13.161],[-2.977,-4.918],[-5.725,7.174]],"o":[[-9.217,13.161],[1.721,2.843],[5.725,-7.174]],"v":[[-1.154,-12.499],[-42.53,56.34],[-1.761,-9.64]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[24.934,-35.602],[-2.977,-4.918],[-15.488,19.406]],"o":[[-24.934,35.602],[1.721,2.843],[15.488,-19.406]],"v":[[-7.064,-5.076],[-47.418,71.95],[-8.707,2.658]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.796,-1.137],[-2.977,-4.918],[-0.495,0.62]],"o":[[-0.796,1.137],[1.721,2.843],[0.495,-0.62]],"v":[[-0.876,-8.404],[-71.414,113.188],[-0.929,-8.157]],"c":true}]},{"t":100,"s":[{"i":[[0.015,-0.021],[-2.977,-4.918],[-0.009,0.012]],"o":[[-0.015,0.021],[1.721,2.843],[0.009,-0.012]],"v":[[-88.944,151.405],[-130.918,215.45],[-88.945,151.41]],"c":true}]}]},"nm":"Path 20","hd":false},{"ind":20,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.626,-7.899],[-8.084,-5.313],[-13.235,7.936]],"o":[[-2.855,2.957],[3.306,2.173],[10.979,-6.583]],"v":[[-4.169,-12.723],[-45.434,37.243],[-0.839,-12.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[20.63,-21.369],[-8.084,-5.313],[-35.802,21.467]],"o":[[-7.724,8],[3.306,2.173],[29.699,-17.808]],"v":[[-16.072,-5.684],[-88.796,85.335],[-7.064,-5.076]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.659,-0.682],[-8.084,-5.313],[-1.143,0.686]],"o":[[-0.247,0.255],[3.306,2.173],[0.948,-0.569]],"v":[[-1.962,-8.308],[-113.223,114.36],[-1.674,-8.288]],"c":true}]},{"t":100,"s":[{"i":[[0.012,-0.013],[-8.084,-5.313],[-0.022,0.013]],"o":[[-0.005,0.005],[3.306,2.173],[0.018,-0.011]],"v":[[-150.949,160.405],[-173.796,186.335],[-150.944,160.405]],"c":true}]}]},"nm":"Path 21","hd":false},{"ind":21,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[14.117,-10.21],[-5.628,-14.818],[-24.822,15.796]],"o":[[-14.086,10.188],[3.081,4.733],[21.924,-13.951]],"v":[[-3.765,-15.075],[-82.448,63.651],[-4.484,-12.723]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[38.189,-27.621],[0.797,-25.979],[-67.149,42.73]],"o":[[-38.106,27.561],[-0.163,5.311],[59.307,-37.74]],"v":[[-14.127,-12.046],[-117.611,102.283],[-16.072,-5.684]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[1.219,-0.882],[-2.13,-20.894],[-2.144,1.364]],"o":[[-1.217,0.88],[1.315,5.048],[1.894,-1.205]],"v":[[-1.552,-9.148],[-137.871,121.393],[-1.614,-8.945]],"c":true}]},{"t":100,"s":[{"i":[[0.023,-0.017],[-9.389,-8.283],[-0.04,0.026]],"o":[[-0.023,0.017],[4.981,4.394],[0.036,-0.023]],"v":[[-123.948,110.901],[-188.111,168.783],[-123.949,110.905]],"c":true}]}]},"nm":"Path 22","hd":false},{"ind":22,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.794,-1.349],[0.656,-8.742],[-9.144,3.299]],"o":[[-0.388,0.187],[-0.279,3.717],[9.144,-3.298]],"v":[[-4.357,-15.318],[-39.206,7.131],[-3.283,-15.062]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[7.56,-3.648],[1.507,-8.661],[-24.737,8.919]],"o":[[-1.051,0.507],[-0.641,3.682],[24.737,-8.919]],"v":[[-17.032,-12.737],[-65.957,17.111],[-14.127,-12.046]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.241,-0.117],[1.12,-8.698],[-0.79,0.285]],"o":[[-0.034,0.016],[-0.476,3.698],[0.79,-0.285]],"v":[[-2.581,-9.26],[-111.172,47.264],[-2.489,-9.238]],"c":true}]},{"t":100,"s":[{"i":[[0.004,-0.003],[0.158,-8.79],[-0.014,0.008]],"o":[[-0.001,0],[-0.067,3.737],[0.014,-0.008]],"v":[[-196.685,103.922],[-223.294,122.037],[-196.683,103.922]],"c":true}]}]},"nm":"Path 23","hd":false},{"ind":23,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.652,-0.002],[9.621,-23.195],[-30.797,11.034]],"o":[[-0.652,0.002],[1.201,4.343],[30.797,-11.034]],"v":[[-5.938,-16.534],[-91.485,36.162],[-4.524,-15.646]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.764,-0.005],[34.94,-49.93],[-83.311,29.848]],"o":[[-1.764,0.005],[-2.448,3.499],[83.311,-29.848]],"v":[[-20.857,-15.139],[-161.337,74.163],[-17.032,-12.737]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.056,0],[23.404,-37.749],[-2.66,0.953]],"o":[[-0.056,0],[-0.786,3.883],[2.66,-0.953]],"v":[[-2.437,-9.678],[-180.879,84.077],[-2.314,-9.602]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0],[-5.203,-7.542],[-0.05,0.018]],"o":[[-0.001,0],[3.337,4.837],[0.05,-0.018]],"v":[[-175.952,77.399],[-229.337,108.663],[-175.95,77.401]],"c":true}]}]},"nm":"Path 24","hd":false},{"ind":24,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[3.079,-0.51],[0.18,-8.491],[-14.645,0.239]],"o":[[-3.079,0.51],[-0.099,4.7],[14.645,-0.239]],"v":[[-8.996,-17.288],[-60.714,-4.682],[-6.253,-16.534]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[8.33,-1.38],[0.18,-8.491],[-39.617,0.647]],"o":[[-8.33,1.38],[-0.099,4.7],[39.617,-0.647]],"v":[[-28.279,-17.178],[-119.213,6.829],[-20.857,-15.139]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.266,-0.044],[0.18,-8.491],[-1.265,0.021]],"o":[[-0.266,0.044],[-0.099,4.7],[1.265,-0.021]],"v":[[-3.288,-10.423],[-157.506,13.654],[-3.051,-10.357]],"c":true}]},{"t":100,"s":[{"i":[[0.005,-0.001],[0.18,-8.491],[-0.024,0]],"o":[[-0.005,0.001],[-0.099,4.7],[0.024,0]],"v":[[-223.707,24.648],[-252.463,30.579],[-223.702,24.649]],"c":true}]}]},"nm":"Path 25","hd":false},{"ind":25,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.002,-0.018],[4.376,-11.742],[-21.034,-0.505]],"o":[[-5.002,0.018],[-1,2.682],[21.034,0.505]],"v":[[-8.482,-18.09],[-80.041,-5.651],[-8.996,-16.972]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[13.533,-0.05],[4.376,-11.742],[-56.9,-1.366]],"o":[[-13.533,0.05],[-1,2.682],[56.9,1.366]],"v":[[-26.888,-20.202],[-133.179,-1.393],[-28.279,-17.178]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.432,-0.002],[4.376,-11.742],[-1.817,-0.044]],"o":[[-0.432,0.002],[-1,2.682],[1.817,0.044]],"v":[[-2.957,-10.802],[-167.52,2.271],[-3.002,-10.706]],"c":true}]},{"t":100,"s":[{"i":[[0.008,0],[4.376,-11.742],[-0.034,-0.001]],"o":[[-0.008,0],[-1,2.682],[0.034,0.001]],"v":[[-201.456,2.646],[-252.679,11.357],[-201.457,2.648]],"c":true}]}]},"nm":"Path 26","hd":false},{"ind":26,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.015,0.648],[9.285,-5.938],[-12.687,-1.577]],"o":[[-1.837,-0.296],[-5.457,3.49],[12.687,1.577]],"v":[[-7.193,-19.109],[-55.539,-18.566],[-8.167,-18.09]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[10.862,1.752],[9.285,-5.938],[-34.32,-4.266]],"o":[[-4.969,-0.802],[-5.457,3.49],[34.32,4.266]],"v":[[-24.253,-22.959],[-119.714,-21.877],[-26.888,-20.202]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.347,0.056],[9.285,-5.938],[-1.096,-0.136]],"o":[[-0.159,-0.026],[-5.457,3.49],[1.096,0.136]],"v":[[-3.256,-11.254],[-157.719,-22.883],[-3.34,-11.166]],"c":true}]},{"t":100,"s":[{"i":[[0.007,0.001],[9.285,-5.938],[-0.021,-0.003]],"o":[[-0.003,0],[-5.457,3.49],[0.021,0.003]],"v":[[-231.204,-25.606],[-251.964,-25.377],[-231.206,-25.604]],"c":true}]}]},"nm":"Path 27","hd":false},{"ind":27,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.393,1.499],[5.601,-5.319],[-6.035,-3.074]],"o":[[-4.393,-1.499],[-2.043,1.94],[7.22,3.678]],"v":[[-5.608,-19.397],[-48.68,-27.903],[-7.508,-19.109]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[11.885,4.055],[5.601,-5.319],[-16.326,-8.316]],"o":[[-11.885,-4.055],[-2.043,1.94],[19.531,9.948]],"v":[[-19.113,-23.736],[-77.851,-34.052],[-24.253,-22.959]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.38,0.13],[5.601,-5.319],[-0.521,-0.266]],"o":[[-0.38,-0.129],[-2.043,1.94],[0.624,0.318]],"v":[[-2.828,-11.723],[-125.77,-43.679],[-2.992,-11.698]],"c":true}]},{"t":100,"s":[{"i":[[0.007,0.002],[5.601,-5.319],[-0.01,-0.005]],"o":[[-0.007,-0.002],[-2.043,1.94],[0.012,0.006]],"v":[[-210.701,-60.106],[-244.601,-67.552],[-210.704,-60.106]],"c":true}]}]},"nm":"Path 28","hd":false},{"ind":28,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.221,2.81],[2.362,-11.3],[-20.382,-17.294]],"o":[[-5.221,-2.81],[-1.358,6.576],[20.382,17.294]],"v":[[-7.193,-23.937],[-71.1,-48.972],[-5.293,-19.397]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[14.123,7.602],[4.156,-15.533],[-55.138,-46.784]],"o":[[-14.123,-7.602],[-2.317,8.659],[55.138,46.784]],"v":[[-24.253,-36.018],[-168.703,-94.857],[-19.113,-23.736]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.451,0.243],[3.339,-13.604],[-1.761,-1.494]],"o":[[-0.451,-0.243],[-1.88,7.71],[1.761,1.494]],"v":[[-2.925,-12.804],[-184.078,-101.754],[-2.761,-12.412]],"c":true}]},{"t":100,"s":[{"i":[[0.008,0.005],[1.312,-8.822],[-0.033,-0.028]],"o":[[-0.008,-0.005],[-0.797,5.357],[0.033,0.028]],"v":[[-205.454,-113.613],[-222.203,-118.857],[-205.451,-113.606]],"c":true}]}]},"nm":"Path 29","hd":false},{"ind":29,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.26,4.445],[7.011,-4.124],[-10.385,-10.766]],"o":[[-0.326,-0.199],[-7.011,4.124],[16.897,17.517]],"v":[[-5.801,-24.959],[-56.419,-56.973],[-7.193,-23.937]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[19.64,12.023],[7.011,-4.124],[-28.094,-29.123]],"o":[[-0.881,-0.54],[-7.011,4.124],[45.711,47.385]],"v":[[-20.488,-38.784],[-98.519,-86.459],[-24.253,-36.018]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.627,0.384],[7.011,-4.124],[-0.897,-0.93]],"o":[[-0.028,-0.017],[-7.011,4.124],[1.46,1.513]],"v":[[-2.277,-13.13],[-127.401,-106.145],[-2.397,-13.042]],"c":true}]},{"t":100,"s":[{"i":[[0.012,0.007],[7.011,-4.124],[-0.017,-0.018]],"o":[[-0.001,0],[-7.011,4.124],[0.028,0.029]],"v":[[-164.452,-132.115],[-199.019,-154.959],[-164.454,-132.113]],"c":true}]}]},"nm":"Path 30","hd":false},{"ind":30,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[23.866,20.95],[-0.775,-4.182],[-8.843,-10.116]],"o":[[-23.866,-20.95],[0.799,4.308],[8.843,10.116]],"v":[[-4.127,-25.389],[-47.359,-57.266],[-6.116,-25.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[64.562,56.675],[-0.775,-4.182],[-23.921,-27.366]],"o":[[-64.562,-56.675],[0.799,4.308],[23.921,27.366]],"v":[[-15.108,-39.093],[-105.227,-105.674],[-20.488,-38.784]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[2.062,1.81],[-0.775,-4.182],[-0.764,-0.874]],"o":[[-2.062,-1.81],[0.799,4.308],[0.764,0.874]],"v":[[-2.169,-13.514],[-128.217,-124.928],[-2.341,-13.504]],"c":true}]},{"t":100,"s":[{"i":[[0.039,0.034],[-0.775,-4.182],[-0.014,-0.016]],"o":[[-0.039,-0.034],[0.799,4.308],[0.014,0.016]],"v":[[-169.449,-161.115],[-185.227,-172.674],[-169.452,-161.115]],"c":true}]}]},"nm":"Path 31","hd":false},{"ind":31,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.861,0.835],[6.082,-5.676],[-10.296,-14.684]],"o":[[-0.861,-0.835],[-2.893,2.699],[10.296,14.684]],"v":[[-0.366,-23.104],[-55.133,-75.787],[-4.127,-25.389]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.329,2.258],[6.082,-5.676],[-27.852,-39.724]],"o":[[-2.329,-2.258],[-2.893,2.699],[27.852,39.724]],"v":[[-4.933,-32.911],[-79.889,-105.589],[-15.108,-39.093]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.074,0.072],[6.082,-5.676],[-0.889,-1.268]],"o":[[-0.074,-0.072],[-2.893,2.699],[0.889,1.268]],"v":[[-1.214,-13.207],[-103.885,-130.878],[-1.539,-13.404]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.001],[6.082,-5.676],[-0.017,-0.024]],"o":[[-0.001,-0.001],[-2.893,2.699],[0.017,0.024]],"v":[[-120.443,-152.612],[-163.389,-193.589],[-120.449,-152.615]],"c":true}]}]},"nm":"Path 32","hd":false},{"ind":32,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[3.542,19.181],[3.073,-0.981],[-0.152,-9.722]],"o":[[-3.542,-19.181],[-2.453,0.783],[0.152,9.722]],"v":[[0.539,-22.899],[-14.028,-61.928],[-0.366,-22.788]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[9.581,51.887],[3.073,-0.981],[-0.412,-26.3]],"o":[[-9.581,-51.887],[-2.453,0.783],[0.412,26.3]],"v":[[-2.483,-33.211],[-31.215,-116.327],[-4.933,-32.911]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.306,1.657],[3.073,-0.981],[-0.013,-0.84]],"o":[[-0.306,-1.657],[-2.453,0.783],[0.013,0.84]],"v":[[-0.517,-14.182],[-44.865,-152.105],[-0.596,-14.172]],"c":true}]},{"t":100,"s":[{"i":[[0.006,0.031],[3.073,-0.981],[0,-0.016]],"o":[[-0.006,-0.031],[-2.453,0.783],[0,0.016]],"v":[[-72.441,-227.612],[-78.715,-240.827],[-72.443,-227.612]],"c":true}]}]},"nm":"Path 33","hd":false},{"ind":33,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.512,3.311],[7.408,-2.515],[0.879,-9.578]],"o":[[-0.512,-3.311],[-4.274,1.451],[-0.879,9.578]],"v":[[1.755,-24.526],[-15.758,-89.049],[0.539,-22.899]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[1.386,8.956],[7.408,-2.515],[2.377,-25.91]],"o":[[-1.386,-8.956],[-4.274,1.451],[-2.377,25.91]],"v":[[0.805,-37.612],[-23.169,-137.772],[-2.483,-33.211]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.044,0.286],[7.408,-2.515],[0.076,-0.827]],"o":[[-0.044,-0.286],[-4.274,1.451],[-0.076,0.827]],"v":[[0.051,-14.02],[-30.928,-169.383],[-0.054,-13.879]],"c":true}]},{"t":100,"s":[{"i":[[0.001,0.005],[7.408,-2.515],[0.001,-0.016]],"o":[[-0.001,-0.005],[-4.274,1.451],[-0.001,0.016]],"v":[[-36.439,-204.114],[-50.169,-247.772],[-36.441,-204.112]],"c":true}]}]},"nm":"Path 34","hd":false},{"ind":34,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.275,0.477],[4.481,1.632],[2.961,-6.55],[-1.425,0.478]],"o":[[-2.55,-0.954],[-6.936,-2.526],[-1.48,3.275],[1.425,-0.478]],"v":[[5.014,-23.954],[2.623,-65.932],[2.07,-24.842],[3.754,-13.991]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[3.449,1.291],[4.481,1.632],[8.009,-17.719],[-3.855,1.292]],"o":[[-6.899,-2.581],[-6.936,-2.526],[-4.004,8.859],[3.855,-1.292]],"v":[[8.769,-35.211],[4.357,-117.808],[0.805,-37.612],[5.361,-8.261]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":43,"s":[{"i":[[0.11,0.041],[4.481,1.632],[0.256,-0.566],[-0.123,0.041]],"o":[[-0.22,-0.082],[-6.936,-2.526],[-0.128,0.283],[0.123,-0.041]],"v":[[0.788,-14.342],[3.064,-156.748],[0.534,-14.419],[0.679,-13.482]],"c":true}]},{"t":100,"s":[{"i":[[0.002,0.001],[4.481,1.632],[0.005,-0.011],[-0.002,0.001]],"o":[[-0.004,-0.002],[-6.936,-2.526],[-0.002,0.005],[0.002,-0.001]],"v":[[1.066,-235.113],[-0.143,-253.308],[1.061,-235.114],[1.064,-235.097]],"c":true}]}]},"nm":"Path 35","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0.166,1,1,1,0.291,0.919,0.91,1,0.379,0.837,0.82,1,0.522,0.444,0.645,0.994,0.708,0.05,0.47,0.988,0.865,0.262,0.465,0.992,0.999,0.474,0.461,0.996,0.166,1,0.291,1,0.379,1,0.522,0.9,0.708,0.8,0.865,0.8,0.999,0.8]}},"s":{"a":0,"k":[-12,-18]},"e":{"a":0,"k":[-123.596,-129.596]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-6.793,2.506]},"a":{"a":0,"k":[-6.793,2.506]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"white splashes precomp","refId":"comp_2","sr":1,"ks":{"p":{"a":0,"k":[243,243,0]},"a":{"a":0,"k":[243,243,0]}},"ao":0,"w":486,"h":486,"ip":-4,"op":99,"st":-5,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"ogonek5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[1],"y":[0]},"t":30,"s":[100]},{"t":45,"s":[0]}]},"p":{"a":0,"k":[241,232.25,0]},"a":{"a":0,"k":[-51,43,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,15.828]},"t":30,"s":[0,0,100]},{"t":45,"s":[151,151,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[164,164]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":7,"k":{"a":0,"k":[0.166,1,1,1,0.291,0.886,0.886,0.99,0.379,0.773,0.773,0.98,0.522,0.386,0.644,0.967,0.708,0,0.516,0.953,0.865,0.203,0.631,0.969,0.999,0.405,0.746,0.984,0.166,1,0.291,1,0.379,1,0.522,0.9,0.708,0.8,0.865,0.8,0.999,0.8]}},"s":{"a":0,"k":[1,0.5]},"e":{"a":0,"k":[-61.596,-53.096]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 8","hd":false},{"ty":"tr","p":{"a":0,"k":[-51,43]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":30,"op":45,"st":-45,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"rose splashes 80%","sr":1,"ks":{"o":{"a":0,"k":80},"p":{"a":0,"k":[283.287,244.6,0]},"a":{"a":0,"k":[40.287,1.6,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[8.458,2.584],[-1.178,1.927]],"o":[[0,0],[1.178,-1.927]],"v":[[47.396,-2.495],[66.132,8.305]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[17.915,5.472],[-2.495,4.082]],"o":[[0,0],[2.494,-4.082]],"v":[[127.416,14.655],[167.1,37.528]],"c":true}]},{"t":100,"s":[{"i":[[2.922,0.892],[-0.407,0.666]],"o":[[0,0],[0.407,-0.666]],"v":[[231.544,79.714],[238.016,83.445]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-7.371,11.75],[-2.605,-2.954]],"o":[[0,0],[2.605,2.954]],"v":[[-19.417,21.61],[-33.613,50.565]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-16.511,26.322],[-5.835,-6.617]],"o":[[0,0],[5.835,6.617]],"v":[[-54.289,78.774],[-86.09,143.637]],"c":true}]},{"t":100,"s":[{"i":[[-2.019,3.219],[-0.714,-0.809]],"o":[[0,0],[0.714,0.809]],"v":[[-120,208.391],[-123.889,216.322]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[4.272,18.752],[3.489,0]],"o":[[0,0],[-2.919,0]],"v":[[13.337,36.564],[18.266,63.997]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[9.5,41.701],[7.758,0]],"o":[[0,0],[-6.491,0]],"v":[[34.44,120.578],[45.401,181.583]],"c":true}]},{"t":100,"s":[{"i":[[1.211,5.316],[0.989,0]],"o":[[0,0],[-0.827,0]],"v":[[49.981,239.625],[51.378,247.402]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[5.357,10.649],[2.065,-1.671]],"o":[[0,0],[-2.092,1.693]],"v":[[27.785,38.344],[37.752,60.836]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[12.682,25.21],[4.889,-3.955]],"o":[[0,0],[-4.953,4.007]],"v":[[73.965,124.33],[97.561,177.576]],"c":true}]},{"t":100,"s":[{"i":[[1.068,2.124],[0.412,-0.333]],"o":[[0,0],[-0.417,0.338]],"v":[[112.746,219.25],[114.734,223.735]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[7.125,6.764],[2.818,-3.288]],"o":[[0,0],[-1.952,2.278]],"v":[[39.186,19.394],[56.431,42.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[16.508,15.671],[6.529,-7.617]],"o":[[0,0],[-4.523,5.277]],"v":[[103.804,73.868],[143.76,126.64]],"c":true}]},{"t":100,"s":[{"i":[[1.631,1.548],[0.645,-0.753]],"o":[[0,0],[-0.447,0.521]],"v":[[178.352,168.75],[182.3,173.964]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[14.003,-18.483],[-2.995,-2.598]],"o":[[0,0],[2.346,2.035]],"v":[[19.896,-54.149],[37.88,-77.508]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[31.33,-41.355],[-6.701,-5.813]],"o":[[0,0],[5.249,4.553]],"v":[[52.828,-125.71],[93.066,-177.974]],"c":true}]},{"t":100,"s":[{"i":[[3.858,-5.092],[-0.825,-0.716]],"o":[[0,0],[0.646,0.561]],"v":[[119.615,-214],[124.57,-220.435]],"c":true}]}]},"nm":"Path 6","hd":false},{"ind":6,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.092,-13.223],[3.225,-0.461]],"o":[[0,0],[-3.225,0.461]],"v":[[-11.7,-53.501],[-23.447,-74.576]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-13.694,-29.721],[7.248,-1.036]],"o":[[0,0],[-7.248,1.036]],"v":[[-33.744,-123.528],[-60.149,-170.902]],"c":true}]},{"t":100,"s":[{"i":[[-1.641,-3.562],[0.869,-0.124]],"o":[[0,0],[-0.869,0.124]],"v":[[-92.793,-229.25],[-95.958,-234.928]],"c":true}]}]},"nm":"Path 7","hd":false},{"ty":"fl","c":{"a":0,"k":[0.399169562845,0.676376941157,0.988235294118,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 7","hd":false},{"ty":"tr","p":{"a":0,"k":[40.287,1.6]},"a":{"a":0,"k":[40.287,1.6]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"rose splashes 40%","sr":1,"ks":{"o":{"a":0,"k":40},"p":{"a":0,"k":[255.462,250.532,0]},"a":{"a":0,"k":[12.462,7.532,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[2.498,-1.717],[-2.802,-3.967]],"o":[[-1.32,0.907],[0,0]],"v":[[-27.909,-69.864],[-23.485,-62.918]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[5.583,-3.836],[-6.261,-8.864]],"o":[[-2.949,2.026],[0,0]],"v":[[-77.365,-168.395],[-67.479,-152.872]],"c":true}]},{"t":100,"s":[{"i":[[0.692,-0.476],[-0.776,-1.099]],"o":[[-0.366,0.251],[0,0]],"v":[[-104.452,-204.425],[-103.226,-202.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-4.758,-1.202],[3.089,-1.172]],"o":[[0,0],[-3.089,1.172]],"v":[[-40.584,-41.866],[-51.165,-45.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-10.775,-2.722],[6.996,-2.654]],"o":[[0,0],[-6.996,2.654]],"v":[[-111.836,-92.023],[-135.799,-100.881]],"c":true}]},{"t":100,"s":[{"i":[[-1.235,-0.312],[0.802,-0.304]],"o":[[0,0],[-0.802,0.304]],"v":[[-194.867,-116.25],[-197.612,-117.265]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-6.418,17.711],[-4.713,-1.091]],"o":[[0,0],[2.758,0.638]],"v":[[-22.297,35.041],[-30.452,64.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-14.835,40.938],[-10.895,-2.522]],"o":[[0,0],[6.375,1.475]],"v":[[-62.088,115.52],[-80.938,183.907]],"c":true}]},{"t":100,"s":[{"i":[[-1.49,4.112],[-1.094,-0.253]],"o":[[0,0],[0.64,0.148]],"v":[[-89,203.172],[-90.893,210.041]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[1.125,2.009],[-1.205,-2.41]],"o":[[-0.644,-1.15],[1.205,2.41]],"v":[[60.208,34.488],[58.28,36.577]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[2.266,4.046],[-2.428,-4.856]],"o":[[-1.297,-2.316],[2.428,4.856]],"v":[[161.46,114.372],[157.576,118.58]],"c":true}]},{"t":100,"s":[{"i":[[0.457,0.815],[-0.489,-0.978]],"o":[[-0.261,-0.467],[0.489,0.978]],"v":[[178.425,143.467],[177.643,144.315]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0.378,1.888],[-0.054,-1.294]],"o":[[-0.244,-1.218],[0.054,1.294]],"v":[[57.201,-37.513],[53.318,-36.704]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[0.721,3.602],[-0.103,-2.47]],"o":[[-0.465,-2.323],[0.103,2.47]],"v":[[152.987,-80.688],[145.577,-79.144]],"c":true}]},{"t":100,"s":[{"i":[[0.177,0.884],[-0.025,-0.606]],"o":[[-0.114,-0.57],[0.025,0.606]],"v":[[207.62,-96.485],[205.801,-96.106]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":5,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.033,1.484],[-0.082,-1.894]],"o":[[0.031,-1.392],[0.082,1.894]],"v":[[53.595,-30.294],[48.408,-29.669]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[-0.074,3.328],[-0.185,-4.247]],"o":[[0.069,-3.121],[0.185,4.247]],"v":[[143.792,-61.221],[132.159,-59.821]],"c":true}]},{"t":100,"s":[{"i":[[-0.009,0.404],[-0.022,-0.516]],"o":[[0.008,-0.379],[0.022,0.516]],"v":[[216.285,-76.436],[214.873,-76.266]],"c":true}]}]},"nm":"Path 6","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.674509803922,0.988235294118,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 6","hd":false},{"ty":"tr","p":{"a":0,"k":[12.462,7.532]},"a":{"a":0,"k":[12.462,7.532]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"violet","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[33.333]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":70,"s":[0]}]},"p":{"a":0,"k":[250.172,221.61,0]},"a":{"a":0,"k":[7.172,-21.39,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.629,0.629,0.629],"y":[0,0,0]},"t":30,"s":[43.235,43.235,100]},{"t":40,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[8.424,-5.071],[2.653,-10.693],[8.493,-0.25],[-0.281,-21.575],[8.206,2.479],[-9.071,-18.319],[10.163,-0.826],[-8.504,-13.367],[7.925,-6.142],[-9.44,-13.344],[2.854,-8.942],[-21.641,-24.17],[6.753,-1.287],[-6.374,-4.022],[10.533,-2.098],[-13.32,-3.511],[-1.839,-6.483],[-21.075,-3.827],[-5.954,-6.816],[-11.932,-2.571],[3.257,-17.575],[-38.942,9.134],[-0.325,-7.706],[-8.742,1.73],[-8.801,-7.785],[-30.134,14.717],[-9.382,-4.129],[-16.279,6.661],[1.088,-8.515],[-7.687,7.097],[-6.012,-8.868],[-10.651,19.166],[-10.35,0.696],[-9.579,21.376],[-8.09,4.605],[-5.131,22.602],[-3.808,-4.758],[-0.748,8.961],[-7.254,-2.788],[2.909,7.968],[-7.635,-1.047],[9.08,17.754],[-7.507,3.193],[9.997,10.579],[-6.351,4.692],[9.781,8.968],[0.178,6.817],[17.454,12.482],[0.03,6.973],[12.265,1.257],[-5.162,4.439],[17.018,1.365],[-5.218,7.12],[24.328,-1.527],[-3.121,9.666],[14.883,-6.778],[10.864,5.993],[11.338,-8.563],[5.168,9.097],[9.336,-10.339],[5.422,9.555],[17.401,-17.591],[8.409,7.467],[2.648,-7.068],[8.104,5.903],[5.776,-17.779],[7.39,-3.513],[1.572,-7.178],[9.221,3.529],[4.343,-6.683]],"o":[[-7.125,5.075],[-0.627,-20.281],[-8.492,0.25],[-7.605,-11.419],[-6.68,-3.509],[-2.4,-2.857],[-8.37,0.053],[-2.455,-2.437],[-7.318,5.151],[-25.313,-18.266],[-0.866,7.957],[-15.111,-8.219],[-6.731,1.147],[0,0],[-8.775,1.322],[-36.623,-3.316],[2.35,6.725],[-4.284,0.119],[5.62,5.119],[0,0],[-0.325,7.953],[-14.317,6.526],[0.333,6.979],[-5.382,3.713],[7.32,4.607],[-4.424,3.372],[7.613,2.532],[-10.42,10.905],[-1.668,7.104],[-2.075,4.92],[4.11,6.36],[-1.424,4.903],[7.699,-1.121],[0,0],[8.176,-4.621],[-1.052,23.086],[4.14,4.652],[5.615,9.885],[7.25,2.786],[5.203,5.546],[7.441,1.093],[15.761,17.732],[7.507,-3.193],[5.904,3.732],[6.351,-4.692],[9.84,5.408],[-0.622,-6.552],[19.337,4.71],[0.329,-7.351],[6.418,-1.574],[5.14,-4.409],[27.522,-2.876],[5.215,-7.117],[4.426,-6.277],[2.875,-9.309],[1.399,-5.562],[-7.079,-5.34],[4.34,-9.001],[-5.002,-8.493],[13.638,-18.255],[-5.312,-9.225],[0.333,-7.822],[-7.414,-6.268],[3.497,-13.498],[-8.104,-5.903],[-0.973,-5.144],[-8.335,3.293],[-2.994,-1.674],[-9.108,-3.513],[-0.006,-3.457]],"v":[[5.228,-95.512],[7.462,-28.929],[-2.195,-87.293],[6.416,-28.961],[-31.261,-81.602],[2.547,-32.204],[-43.849,-81.375],[0.273,-32.419],[-44.643,-71.2],[-1.483,-31.501],[-68.757,-71.437],[-0.116,-26.024],[-42.303,-41.201],[-2.32,-26.028],[-60.656,-35.365],[-6.28,-25.891],[-67.569,-24.781],[-6.096,-24.791],[-61.84,-18.285],[-3.524,-23.253],[-83.167,12.168],[-3.472,-21.52],[-43.616,2.576],[-3.348,-19.306],[-64.141,31.565],[0.002,-18.262],[-50.895,27.819],[3.739,-17.431],[-29.038,27.111],[2.554,-14.294],[-16.457,46.001],[4.192,-11.614],[-10.643,61.853],[6.528,-12.171],[7.719,52.216],[8.895,-14.393],[13.275,34.112],[10.222,-12.355],[26.825,31.666],[12.417,-11.04],[35.999,36.579],[14.675,-10.481],[49.25,44.887],[15.923,-11.135],[54.41,30.884],[17.017,-12.053],[59.976,24.143],[15.598,-15.029],[60.134,6.365],[15.406,-16.076],[56.972,-8.479],[17.766,-17.986],[90.136,-9.191],[19.955,-19.743],[79.759,-35.208],[20.474,-22.64],[63.92,-44.118],[18.736,-24.334],[63.006,-55.052],[17.431,-26.232],[77.149,-67.057],[16.295,-27.947],[47.537,-73.383],[14.878,-29.037],[41.274,-77.714],[13.733,-29.91],[25.971,-72.901],[12.306,-29.047],[19.524,-85.462],[9.122,-30.564]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":40,"s":[{"i":[[8.849,0.01],[7.184,-28.957],[3.052,-1.273],[-0.761,-58.423],[7.839,-5.353],[-24.563,-49.607],[9.192,-3.975],[-23.029,-36.198],[4.861,-7.946],[-25.563,-36.135],[12.25,-6.125],[-58.602,-65.452],[0.423,-3.502],[-17.26,-10.89],[11.497,-5.096],[-36.071,-9.509],[-2.201,-1.041],[-57.07,-10.364],[-1.998,-10.013],[-32.312,-6.962],[9.36,-30.715],[-105.454,24.735],[0.047,-4.178],[-23.672,4.686],[-7.461,-15.968],[-81.601,39.854],[-8.157,-7.347],[-44.083,18.039],[-3.026,-7.306],[-20.815,19.217],[-8.186,-10.792],[-28.842,51.901],[-12.022,-1.924],[-25.94,57.885],[-10.365,1.613],[-13.894,61.205],[-1.581,0.481],[-2.025,24.266],[-5.413,1.006],[7.876,21.576],[-4.573,1.132],[24.589,48.078],[-6.41,1.365],[27.072,28.648],[-4.858,2.346],[26.485,24.286],[-6.451,3.968],[47.266,33.8],[-2.771,2.906],[33.213,3.403],[-1.167,1.667],[46.083,3.696],[-1.333,9],[65.879,-4.134],[-5.083,7.361],[40.303,-18.354],[15.513,2.68],[30.702,-23.187],[1.943,7.096],[25.282,-27.999],[2.5,7.5],[47.12,-47.637],[6.155,7.421],[7.17,-19.139],[5.169,3.176],[15.641,-48.146],[3.103,0.727],[4.257,-19.437],[6.927,0.949],[11.76,-18.098]],"o":[[-5.323,-0.006],[-1.697,-54.919],[-3.052,1.273],[-20.594,-30.923],[-3.728,2.546],[-6.498,-7.737],[-4.346,1.879],[-6.647,-6.6],[-3.22,5.264],[-68.548,-49.463],[-6.872,3.436],[-40.921,-22.258],[-0.377,3.121],[0,0],[-6.756,2.995],[-99.173,-8.979],[3.585,1.695],[-11.602,0.322],[1.08,5.412],[0,0],[-1.42,4.661],[-38.77,17.671],[-0.025,2.213],[-14.575,10.054],[3.439,7.359],[-11.98,9.131],[3.354,3.021],[-28.218,29.53],[1.451,3.503],[-5.619,13.324],[3.041,4.009],[-3.855,13.277],[4.839,0.774],[0,0],[10.589,-1.648],[-2.849,62.516],[2.488,-0.757],[15.206,26.767],[5.413,-1.006],[14.09,15.019],[4.055,-1.004],[42.68,48.017],[6.41,-1.365],[15.989,10.107],[4.858,-2.346],[26.647,14.644],[5.257,-3.234],[52.364,12.754],[3.745,-3.927],[17.38,-4.263],[1.115,-1.592],[74.53,-7.789],[1.333,-9],[11.985,-16.998],[4.419,-6.4],[3.79,-15.061],[-5.258,-0.908],[11.752,-24.375],[-1.495,-5.458],[36.932,-49.434],[-2.202,-6.607],[0.901,-21.183],[-3.464,-4.176],[9.469,-36.552],[-5.169,-3.176],[-2.634,-13.929],[-5.658,-1.325],[-8.107,-4.533],[-6.628,-0.908],[-0.017,-9.362]],"v":[[3.02,-162.999],[8.243,-41.492],[-9.448,-140.273],[5.428,-41.577],[-66.581,-136.474],[-4.982,-50.303],[-94.937,-141.294],[-11.103,-50.883],[-91.631,-117.558],[-15.827,-48.412],[-150.75,-126.625],[-12.148,-33.673],[-76.677,-54.762],[-18.079,-33.683],[-125.935,-48.926],[-28.737,-33.315],[-144.516,-27.935],[-28.241,-30.355],[-129.957,-16.393],[-21.32,-26.218],[-189.443,52.219],[-21.179,-21.553],[-84.613,22.128],[-20.845,-15.595],[-143.927,91.798],[-11.831,-12.788],[-109.552,77.33],[-1.776,-10.549],[-60.574,69.369],[-4.963,-2.109],[-41.055,117.272],[-0.555,5.102],[-30.196,155.83],[5.729,3.604],[8.665,130.425],[12.099,-2.376],[18.32,81.416],[15.669,3.108],[41.962,76.131],[21.577,6.648],[62.49,91.451],[27.654,8.15],[95.923,118.365],[31.011,6.393],[102.975,84.18],[33.954,3.923],[112.957,71.446],[30.136,-4.087],[107.438,31.594],[29.62,-6.903],[94.5,0.667],[35.97,-12.045],[183.167,5],[41.86,-16.772],[147.562,-47.507],[43.258,-24.567],[106.809,-61.148],[38.582,-29.125],[103.057,-80.596],[35.068,-34.233],[141.167,-109],[32.012,-38.849],[76.865,-113.118],[28.198,-41.782],[66.503,-119.657],[25.119,-44.132],[37.324,-105.068],[21.279,-41.807],[29.931,-135.604],[12.71,-45.889]],"c":true}]},{"t":100,"s":[{"i":[[6.52,-0.499],[0,0],[7.552,-1.773],[0,0],[7.419,-3.974],[0,0],[5.063,-2.794],[0,0],[3.869,-4.058],[0,0],[3.25,-5.125],[0,0],[2.323,-7.262],[0,0],[1.065,-7.426],[0,0],[-0.016,-6.935],[0,0],[0.043,-8.393],[0,0],[-1.943,-5.281],[0,0],[-4.613,-6.872],[0,0],[-4.427,-4.702],[0,0],[-5.552,-5.67],[0,0],[-7.074,-5.131],[0,0],[-7.555,-2.728],[0,0],[-8.696,0.33],[0,0],[-5.835,-0.075],[0,0],[-5.179,-0.584],[0,0],[-7.538,4.131],[0,0],[-4.51,1.951],[0,0],[-7.077,4.865],[0,0],[-5.025,3.68],[0,0],[-5.043,6.946],[0,0],[-2.062,4.094],[0,0],[-1.5,7.666],[0,0],[-1.333,7.5],[0,0],[-0.438,6.493],[0,0],[2.309,7.852],[0,0],[1.057,4.404],[0,0],[1.667,6.5],[0,0],[6.365,6.382],[0,0],[3.503,2.843],[0,0],[5.324,3.432],[0,0],[2.931,0.896],[0,0]],"o":[[-6.521,0.499],[0,0],[-7.552,1.773],[0,0],[-7.419,3.974],[0,0],[-5.063,2.794],[0,0],[-3.869,4.058],[0,0],[-3.25,5.125],[0,0],[-2.323,7.262],[0,0],[-1.065,7.426],[0,0],[0.016,6.935],[0,0],[-0.043,8.393],[0,0],[1.943,5.281],[0,0],[4.613,6.872],[0,0],[4.427,4.702],[0,0],[5.552,5.67],[0,0],[7.074,5.131],[0,0],[7.555,2.728],[0,0],[8.696,-0.33],[0,0],[5.835,0.075],[0,0],[5.18,0.584],[0,0],[7.538,-4.131],[0,0],[4.51,-1.951],[0,0],[7.077,-4.865],[0,0],[5.025,-3.68],[0,0],[5.043,-6.946],[0,0],[2.062,-4.094],[0,0],[1.5,-7.666],[0,0],[1.333,-7.5],[0,0],[0.438,-6.493],[0,0],[-2.309,-7.852],[0,0],[-1.057,-4.404],[0,0],[-1.667,-6.5],[0,0],[-6.365,-6.382],[0,0],[-3.503,-2.843],[0,0],[-5.324,-3.432],[0,0],[-2.931,-0.896],[0,0]],"v":[[0.021,-238.999],[6.522,-22.25],[-22.948,-238.773],[6.486,-22.251],[-111.081,-205.974],[6.353,-22.363],[-136.437,-188.794],[6.274,-22.37],[-151.131,-175.058],[6.214,-22.339],[-176.75,-144.125],[6.261,-22.15],[-199.177,-102.262],[6.185,-22.15],[-209.935,-65.926],[6.048,-22.145],[-215.016,-31.435],[6.055,-22.107],[-215.457,-11.893],[6.143,-22.054],[-201.443,57.219],[6.145,-21.994],[-194.113,74.128],[6.149,-21.918],[-171.427,112.298],[6.265,-21.882],[-163.052,122.83],[6.394,-21.853],[-126.074,156.869],[6.353,-21.745],[-65.055,189.772],[6.41,-21.653],[-38.196,196.33],[6.49,-21.672],[9.165,202.425],[6.572,-21.748],[31.821,199.416],[6.618,-21.678],[80.962,187.631],[6.693,-21.633],[105.49,178.451],[6.771,-21.613],[127.923,167.865],[6.814,-21.636],[157.975,144.18],[6.852,-21.668],[174.957,125.946],[6.803,-21.77],[204.438,84.094],[6.796,-21.806],[223.5,34.166],[6.878,-21.872],[227.667,12],[6.953,-21.933],[227.062,-61.507],[6.971,-22.033],[213.309,-104.148],[6.911,-22.091],[198.057,-137.596],[6.866,-22.157],[195.667,-144],[6.827,-22.216],[142.865,-200.118],[6.778,-22.254],[122.503,-211.157],[6.739,-22.284],[84.324,-230.568],[6.689,-22.254],[51.431,-240.604],[6.58,-22.306]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":80},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.001,0.031,0.138,0.537,0.707,0.106,0.275,0.555,1,0.182,0.412,0.573]}},"s":{"a":0,"k":[4,-20]},"e":{"a":0,"k":[177.39,-20]},"t":2,"h":{"a":0,"k":0},"a":{"a":0,"k":0},"nm":"Gradient Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":-4,"op":99,"st":-65,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"picies2","sr":1,"ks":{"p":{"a":0,"k":[257.33,185.73,0]},"a":{"a":0,"k":[-265.67,-10.27,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-0.35],[53.84,0],[-19.93,11.56],[-1,-40.01]],"o":[[0,50.03],[-31.67,-34.87],[39.26,-0.87],[0.01,0.35]],"v":[[-168.19,-10.27],[-265.67,80.32],[-266.5,-79.82],[-168.2,-11.32]],"c":true}]},{"t":35,"s":[{"i":[[0,-0.004],[0.613,0],[-0.227,0.132],[-0.011,-0.455]],"o":[[0,0.569],[-0.36,-0.397],[0.447,-0.01],[0,0.004]],"v":[[-145.03,70.7],[-146.14,71.731],[-146.149,69.909],[-145.03,70.688]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-2.5,-7],[15.65,-61.05],[-53.84,0]],"o":[[0,0],[0,-50.03],[0,0]],"v":[[-266.5,-79.82],[-363.15,-10.27],[-265.67,-100.86]],"c":true}]},{"t":35,"s":[{"i":[[-0.013,-0.036],[0.08,-0.312],[-0.275,0]],"o":[[0,0],[0,-0.256],[0,0]],"v":[[-383.165,-126.689],[-383.659,-126.333],[-383.161,-126.797]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-0.6,-49.55],[39.26,-0.87],[0,0]],"o":[[-1,-40.01],[-2.5,-7],[53.46,0]],"v":[[-168.2,-11.32],[-266.5,-79.82],[-265.67,-100.86]],"c":true}]},{"t":35,"s":[{"i":[[-0.018,-1.483],[1.175,-0.026],[0,0]],"o":[[-0.03,-1.198],[-0.075,-0.21],[1.6,0]],"v":[[-162.091,-102.75],[-165.034,-104.8],[-165.009,-105.43]],"c":true}]}]},"nm":"Path 3","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.360784313725,0.698039215686,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[-265.67,-10.27]},"a":{"a":0,"k":[-265.67,-10.27]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[-31.67,-34.87],[0,50.03],[0,0]],"o":[[-53.84,0],[15.65,-61.05],[-19.93,11.56]],"v":[[-265.67,80.32],[-363.15,-10.27],[-266.5,-79.82]],"c":true}]},{"t":35,"s":[{"i":[[-0.099,-0.109],[0,0.156],[0,0]],"o":[[-0.168,0],[0.049,-0.191],[-0.062,0.036]],"v":[[-415.258,90.5],[-415.562,90.217],[-415.26,90]],"c":true}]}]},"nm":"Path 4","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.286274509804,0.552941176471,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[-314.41,0.25]},"a":{"a":0,"k":[-314.41,0.25]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0,0.207843152214,0.400000029919,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-265.67,-10.27]},"a":{"a":0,"k":[-265.67,-10.27]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":30,"op":35,"st":2,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"picies","sr":1,"ks":{"p":{"a":0,"k":[255,191.406,0]},"a":{"a":0,"k":[0,45.406,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-14.81,-13.46],[11.95,21.92],[1.11,16.11],[-22.44,-7.84],[-11.16,1.15]],"o":[[-22.91,4.11],[-6.67,-12.23],[5.79,24.31],[9.97,3.48],[-0.13,0.68]],"v":[[10.978,133.929],[-49.332,107.219],[-76.002,35.549],[-29.982,86.199],[2.028,89.909]],"c":true}]},{"t":36,"s":[{"i":[[0.042,0.009],[-0.025,-0.045],[-0.002,-0.033],[0.03,0.046],[0.013,0.008]],"o":[[0.048,-0.009],[0.014,0.025],[-0.012,-0.05],[-0.009,-0.013],[-0.02,-0.013]],"v":[[-71.68,195.17],[-71.555,195.225],[-71.5,195.374],[-71.582,195.231],[-71.615,195.198]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-20.7,35.34],[6.66,-12.23],[15.67,-2.82],[0,0],[-0.13,0.68]],"o":[[-1.11,16.11],[-8.18,15],[0,0],[-14.81,-13.46],[25.91,-2.68]],"v":[[75.998,35.549],[49.338,107.219],[10.988,133.929],[10.978,133.929],[2.028,89.909]],"c":true}]},{"t":36,"s":[{"i":[[-0.149,0.254],[0.048,-0.088],[0.112,-0.02],[0,0],[-0.001,0.005]],"o":[[-0.008,0.116],[-0.059,0.108],[0,0],[0.129,-0.1],[0.093,-0.157]],"v":[[73.967,180.898],[73.775,181.412],[73.5,181.604],[73.5,181.604],[73.665,181.395]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[4.69,-50.46],[25.91,-2.68],[9.97,3.48],[-5.65,29.96],[19.36,23.12]],"o":[[-20.7,35.34],[-11.16,1.15],[25.15,-11.39],[3.71,-19.59],[38.33,2.51]],"v":[[75.998,35.549],[2.028,89.909],[-29.982,86.199],[26.648,21.049],[6.078,-43.891]],"c":true}]},{"t":36,"s":[{"i":[[0.019,-0.202],[0.104,-0.011],[0.04,0.014],[-0.023,0.12],[0.077,0.092]],"o":[[-0.083,0.141],[-0.045,0.005],[0.101,-0.046],[0.015,-0.078],[0.153,0.01]],"v":[[154.424,34.876],[154.128,35.094],[154,35.079],[154.226,34.818],[154.144,34.559]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[3.71,-19.59],[21,-18.31],[-37.83,-2.49]],"o":[[-10.36,-22.61],[4.41,-44.16],[19.36,23.12]],"v":[[26.648,21.049],[-76.002,18.639],[6.078,-43.891]],"c":true}]},{"t":36,"s":[{"i":[[0.012,-0.061],[0.066,-0.057],[-0.118,-0.008]],"o":[[-0.032,-0.071],[0.014,-0.138],[0.06,0.072]],"v":[[1.192,-97.167],[0.872,-97.174],[1.128,-97.369]],"c":true}]}]},"nm":"Path 4","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[-10.36,-22.61],[25.15,-11.39],[5.79,24.31],[-0.53,5.3]],"o":[[-5.65,29.96],[-22.44,-7.84],[-0.55,-5.97],[21,-18.31]],"v":[[26.648,21.049],[-29.982,86.199],[-76.002,35.549],[-76.002,18.639]],"c":true}]},{"t":36,"s":[{"i":[[-0.156,-0.229],[0.005,-0.198],[0.125,0.524],[-0.011,0.114]],"o":[[0.175,0.257],[-0.483,-0.169],[-0.012,-0.129],[0.113,0.148]],"v":[[-149.053,15.247],[-148.42,15.955],[-149.412,14.864],[-149.412,14.5]],"c":true}]}]},"nm":"Path 5","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.360784313725,0.698039215686,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 5","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.207843137255,0.4,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,45.406]},"a":{"a":0,"k":[0,45.406]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":31,"op":36,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null 3","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[256]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[257.445]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[251.735]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[262.162]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[256.384]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[256.888]},{"t":29,"s":[254.404]}]},"y":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[198]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[190.425]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[197.133]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[186.523]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[194.791]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[186.058]},{"t":29,"s":[194.761]}]}},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":20,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"Null 19","parent":3,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50,108,0],"to":[0,0,0],"ti":[0,0,0]},{"t":30,"s":[50,1,0]}]}},"ao":0,"ip":0,"op":36,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"blik","parent":6,"sr":1,"ks":{"p":{"a":0,"k":[20.897,-88.771,0]},"a":{"a":0,"k":[19.25,-92,0]},"s":{"a":0,"k":[70,70,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.427,-0.298],[-30.5,146.5]],"o":[[0,13.193],[-55,1.5],[-0.5,0]],"v":[[80.444,-33.889],[0,-10],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[24.905,-1.3],[-8.202,27.448]],"o":[[0,40.169],[-45,-4.333],[2.417,-2.431]],"v":[[98.282,62.507],[32.976,130.655],[10.893,-24.206]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[23.059,-1.647],[-4.109,3.995]],"o":[[0,50.031],[-47.216,-6.039],[3.294,-3.203]],"v":[[109.918,84.947],[41.535,169.497],[12.437,7.17]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":8},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-131]},{"t":30,"s":[-5]}]},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8.571},"lc":2,"lj":2,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":2}},{"n":"g","nm":"gap","v":{"a":0,"k":12}},{"n":"d","nm":"dash2","v":{"a":0,"k":297}},{"n":"o","nm":"offset","v":{"a":0,"k":0}}],"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":30,"st":-60,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"rocket_cap","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[0,-33.889,0]},"a":{"a":0,"k":[0,-33.889,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.427,-0.298],[-30.5,146.5]],"o":[[0,13.193],[-55,1.5],[-0.5,0]],"v":[[80.444,-33.889],[0,-10],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[24.905,-1.3],[-8.202,27.448]],"o":[[0,40.169],[-45,-4.333],[2.417,-2.431]],"v":[[87.389,21.435],[22.083,89.583],[0,-65.278]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[23.059,-1.647],[-4.109,3.995]],"o":[[0,50.031],[-47.216,-6.039],[3.294,-3.203]],"v":[[97.776,39.412],[29.392,123.961],[0.294,-38.366]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.360784313725,0.698039215686,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.428,0],[0,13.193],[0,0]],"o":[[0,13.193],[-44.428,0],[0,-13.193],[0,0]],"v":[[80.444,-33.889],[0,-10],[-80.444,-33.889],[0,-200]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-61.227],[48.264,0],[0,40.168],[0,0]],"o":[[0,40.168],[-48.264,0],[0,-61.227],[0,0]],"v":[[87.389,21.435],[0,94.167],[-87.389,21.435],[0,-65.278]],"c":true}]},{"t":30,"s":[{"i":[[0,-77.778],[53.838,0],[0,50.031],[0,0]],"o":[[0,50.031],[-53.838,0],[0,-77.778],[0,0]],"v":[[97.776,39.412],[0.294,130],[-97.187,39.412],[0.294,-38.366]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.286274509804,0.552941176471,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-105]},"a":{"a":0,"k":[0,-105]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-13.193],[44.428,0],[0,13.193],[-44.428,0]],"o":[[0,13.193],[-44.428,0],[0,-13.193],[44.428,0]],"v":[[80.444,-33.889],[0,-10],[-80.444,-33.889],[0,-57.778]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-40.168],[48.264,0],[0,40.168],[-48.264,0]],"o":[[0,40.168],[-48.264,0],[0,-40.168],[48.264,0]],"v":[[87.389,21.435],[0,94.167],[-87.389,21.435],[0,-51.296]],"c":true}]},{"t":30,"s":[{"i":[[0,-50.031],[53.838,0],[0,50.031],[-53.838,0]],"o":[[0,50.031],[-53.838,0],[0,-50.031],[53.838,0]],"v":[[97.776,39.412],[0.294,130],[-97.187,39.412],[0.294,-51.176]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.360784313725,0.698039215686,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-33.889]},"a":{"a":0,"k":[0,-33.889]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"st","c":{"a":0,"k":[0,0.207843137255,0.4,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":24},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"rocket body 2 outlines","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[2.222,-10],[7.734,34.804],[0,0]],"o":[[0,0],[-7.676,34.543],[-2.222,-10],[0,0]],"v":[[68.778,-37.222],[59.333,153.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[6.667,-12.222],[20.133,36.91],[1.111,16.111]],"o":[[-1.111,16.111],[-20.133,36.911],[-6.667,-12.222],[0,0]],"v":[[76,35.556],[49.333,107.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.207843137255,0.4,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"rocket body 2 shadows","parent":10,"sr":1,"ks":{"o":{"a":0,"k":50},"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","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.667,-19.333],[7.333,22.167],[0,0]],"o":[[0,0],[0.167,0.667],[-3.217,-9.726],[0,0]],"v":[[-13.222,-18.222],[-12.667,177.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[0.167,-11.222],[18.833,29.278],[1.111,16.111]],"o":[[-1.111,16.111],[-15.833,-1.222],[-7.532,-11.709],[0,0]],"v":[[8,37.056],[7.333,133.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.207843137255,0.4,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"lines2","parent":10,"sr":1,"ks":{"p":{"a":0,"k":[-4.5,135.446,0]},"a":{"a":0,"k":[-4.5,135.446,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[19,23.25],[0,0],[-72.25,-0.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-66,-10.75],[65.25,58.5],[66.5,12.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[19,23.25],[0,0],[-70.25,-2.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-67,-26.25],[65.75,25],[68.5,-17]],"c":true}]},{"t":10,"s":[{"i":[[19,23.25],[0,0],[-70.25,-2.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-45,-7]],"v":[[-67.5,-34.25],[-67,-26.25],[68.25,-15],[68.5,-17]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[25,44.25],[0,0],[-71.75,9],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-65,33.75],[-62.5,74.75],[60.75,137],[62.5,98]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[25,44.25],[0,0],[-71.75,10.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-66.5,2.75],[-65,41.25],[61.75,99],[65,63]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[26,30.25],[0,0],[-71.75,10.5],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-68.5,-6.75],[-66,19.75],[62.75,70.5],[68,37]],"c":true}]},{"t":15,"s":[{"i":[[26,30.25],[0,0],[-54.75,16],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50,5]],"v":[[-68.5,-6.75],[-65.5,15.25],[65.75,49],[71,14]],"c":true}]}]},"nm":"Path 3","hd":false},{"ind":2,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-56.25,160.5],[-56,160.5],[49.25,167.75],[49.75,168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-54.5,154.25],[-54.25,154.25],[43,161.5],[43.5,161.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[20,16.5],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[13.25,13.75],[-0.25,0],[-50.75,19]],"v":[[-53.75,148],[-53.5,148],[42.25,155.5],[42.75,155.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[17.5,26],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-52.5,136.25],[-52.75,136.25],[42.25,147.75],[42.5,147.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-57.25,102.5],[-55,120.25],[43.25,137.5],[44,133.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-59.25,89.5],[-54.25,106.75],[42.5,128],[48,118.75]],"c":true}]},{"t":30,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-58.5,71.75],[-53.5,89],[43.25,110.25],[48.75,101]],"c":true}]}]},"nm":"Path 2","hd":false},{"ind":3,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[19,27.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-58.5,158.5],[-58.25,158.5],[53.5,166],[54,165]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[19,27.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-57.25,147],[-57.25,147.5],[50.5,160],[50,161]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[24.25,45.5],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-60.5,106.5],[-58.75,138.5],[51,150],[51.25,149.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[24.25,45.5],[0,0],[-54.5,29.25],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.75,19]],"v":[[-62.5,78],[-58.25,106.75],[49,141.75],[53.5,124.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[21.25,35.75],[0,0],[-53.25,24.25],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,67.5],[-59.5,89.75],[50,121.5],[54.5,104.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[21.25,35.75],[0,0],[-49.75,27],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,63.25],[-60.75,81.25],[52.25,106.5],[57.25,81]],"c":true}]},{"t":30,"s":[{"i":[[21.25,35.75],[0,0],[-49.75,27],[0,0]],"o":[[-0.25,0.25],[11.75,20.5],[-0.25,0],[-50.75,19]],"v":[[-62.5,63.25],[-60.75,70.5],[56.5,84.75],[57.25,81]],"c":true}]}]},"nm":"Path 5","hd":false},{"ind":4,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[25,44.25],[0,0],[-47,36.25],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-50.5,40.25]],"v":[[-61.5,114.75],[-59,155.75],[63.25,158],[63.5,157.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[25,44.25],[0,0],[-55,45.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-62,77.5],[-60.75,112.25],[60.75,151.25],[59.5,132.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[25,44.25],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-64.25,50.75],[-60.75,80.5],[58.25,128],[60.75,101.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[25,39],[0,0],[-58.5,22],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-65.5,33.75],[-63.75,59.5],[59,101.75],[61.5,76.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[25,39],[0,0],[-55.75,26.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-69.5,30],[-65,49],[61,82.75],[63.75,62.25]],"c":true}]},{"t":25,"s":[{"i":[[25,39],[0,0],[-55.75,26.75],[0,0]],"o":[[-0.25,0.25],[13.75,25.75],[-0.25,0],[-51,12.25]],"v":[[-69.5,30],[-65,54.75],[62.25,76.25],[63.75,62.25]],"c":true}]}]},"nm":"Path 4","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.360784313725,0.698039215686,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"rocket body","parent":4,"sr":1,"ks":{"p":{"a":0,"k":[0,71.389,0]},"a":{"a":0,"k":[0,71.389,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[2.222,-10],[7.734,34.804],[0,0]],"o":[[0,0],[-7.676,34.543],[-2.222,-10],[0,0]],"v":[[68.778,-37.222],[59.333,153.333],[-59.333,153.333],[-68.778,-37.222]],"c":true}]},{"t":30,"s":[{"i":[[0,0],[6.667,-12.222],[20.133,36.91],[1.111,16.111]],"o":[[-1.111,16.111],[-20.133,36.911],[-6.667,-12.222],[0,0]],"v":[[76,35.556],[49.333,107.222],[-49.333,107.222],[-76,35.556]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725550034,0.815686334348,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4,"s":[283,390,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[283,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[280,323,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[279,288,0],"to":[0,0,0],"ti":[0,0,0]},{"t":31,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":4,"s":[100,100,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":10,"s":[20,20,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":11,"s":[100,100,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":17,"s":[20,20,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":18,"s":[100,100,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":24,"s":[20,20,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":25,"s":[100,100,100]},{"t":31,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":4,"op":31,"st":4,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[255,394,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[258,356,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[255,327,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[261,292,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":[100,100,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":12,"s":[20,20,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":13,"s":[100,100,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":19,"s":[20,20,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":20,"s":[100,100,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":26,"s":[20,20,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":27,"s":[100,100,100]},{"t":33,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":6,"op":33,"st":6,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[231,397,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[252,494,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[232,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[254,428,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[230,336,0],"to":[0,0,0],"ti":[0,0,0]},{"t":28,"s":[256.5,371.5,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":8,"s":[100,100,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":14,"s":[20,20,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":15,"s":[100,100,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":21,"s":[20,20,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":22,"s":[100,100,100]},{"t":28,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":8,"op":28,"st":8,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2,"s":[283,390,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[257,472,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[283,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[262,427.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[280,323,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[279,288,0],"to":[0,0,0],"ti":[0,0,0]},{"t":29,"s":[259,328,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":2,"s":[100,100,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":8,"s":[20,20,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":9,"s":[100,100,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":15,"s":[20,20,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":16,"s":[100,100,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":22,"s":[20,20,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":23,"s":[100,100,100]},{"t":29,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":2,"op":29,"st":2,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[231,397,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6,"s":[252,494,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[232,354,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[254,428,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[230,336,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[256.5,371.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[234,298,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[259,328,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[239,262,0],"to":[0,0,0],"ti":[0,0,0]},{"t":33,"s":[264,326,0]}]},"a":{"a":0,"k":[-28,116,0]},"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":0,"s":[100,100,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":6,"s":[20,20,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":7,"s":[100,100,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":13,"s":[20,20,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":14,"s":[100,100,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":20,"s":[20,20,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":21,"s":[100,100,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":27,"s":[20,20,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":28,"s":[100,100,100]},{"t":33,"s":[20,20,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56,56]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.956862745098,0.854901960784,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-28,116]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Ellipse 1","bm":0,"hd":false}],"ip":0,"op":34,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"1536_fireworks_3 sec","refId":"comp_0","sr":1,"ks":{"p":{"a":0,"k":[256,256,0]},"a":{"a":0,"k":[768,768,0]},"s":{"a":0,"k":[33.333,33.333,100]}},"ao":0,"w":1536,"h":1536,"ip":0,"op":180,"st":0,"bm":0}]}
\ No newline at end of file
diff --git a/Tests/LottieMesh/Sources/AppDelegate.swift b/Tests/LottieMesh/Sources/AppDelegate.swift
new file mode 100644
index 0000000000..f40c8894f5
--- /dev/null
+++ b/Tests/LottieMesh/Sources/AppDelegate.swift
@@ -0,0 +1,21 @@
+import Foundation
+import UIKit
+
+@objc(Application)
+public final class Application: UIApplication {
+}
+
+@objc(AppDelegate)
+public final class AppDelegate: NSObject, UIApplicationDelegate {
+ public var window: UIWindow?
+
+ public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
+ let window = UIWindow()
+ self.window = window
+
+ window.rootViewController = ViewController()
+ window.makeKeyAndVisible()
+
+ return true
+ }
+}
diff --git a/Tests/LottieMesh/Sources/ViewController.swift b/Tests/LottieMesh/Sources/ViewController.swift
new file mode 100644
index 0000000000..40d86d5d76
--- /dev/null
+++ b/Tests/LottieMesh/Sources/ViewController.swift
@@ -0,0 +1,28 @@
+import Foundation
+import UIKit
+
+import LottieMeshSwift
+
+public final class ViewController: UIViewController {
+ override public func viewDidLoad() {
+ super.viewDidLoad()
+
+ self.view.backgroundColor = .black
+
+ let path = Bundle.main.path(forResource: "Fireworks", ofType: "json")!
+ //let path = Bundle.main.path(forResource: "Cat", ofType: "json")!
+ /*for _ in 0 ..< 100 {
+ let _ = generateMeshAnimation(data: try! Data(contentsOf: URL(fileURLWithPath: path)))!
+ }*/
+
+ if #available(iOS 13.0, *) {
+ let animation = generateMeshAnimation(data: try! Data(contentsOf: URL(fileURLWithPath: path)))!
+ let renderer = MeshRenderer(wireframe: true)!
+
+ renderer.frame = CGRect(origin: CGPoint(x: 0.0, y: 50.0), size: CGSize(width: 300.0, height: 300.0))
+ self.view.addSubview(renderer)
+
+ renderer.add(mesh: animation, offset: CGPoint(), loop: true)
+ }
+ }
+}
diff --git a/submodules/AccountContext/BUILD b/submodules/AccountContext/BUILD
index a28b4a4daa..fbc7f6c627 100644
--- a/submodules/AccountContext/BUILD
+++ b/submodules/AccountContext/BUILD
@@ -20,7 +20,7 @@ swift_library(
"//submodules/Postbox:Postbox",
"//submodules/TelegramCore:TelegramCore",
"//submodules/MusicAlbumArtResources:MusicAlbumArtResources",
- #"//submodules/MeshAnimationCache:MeshAnimationCache"
+ "//submodules/MeshAnimationCache:MeshAnimationCache"
],
visibility = [
"//visibility:public",
diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift
index 8be6add26d..b6eeed0ce3 100644
--- a/submodules/AccountContext/Sources/AccountContext.swift
+++ b/submodules/AccountContext/Sources/AccountContext.swift
@@ -10,7 +10,7 @@ import AsyncDisplayKit
import Display
import DeviceLocationManager
import TemporaryCachedPeerDataManager
-//import MeshAnimationCache
+import MeshAnimationCache
public final class TelegramApplicationOpenUrlCompletion {
public let completion: (Bool) -> Void
@@ -737,7 +737,7 @@ public protocol AccountContext: AnyObject {
var currentAppConfiguration: Atomic { get }
var cachedGroupCallContexts: AccountGroupCallContextCache { get }
- //var meshAnimationCache: MeshAnimationCache { get }
+ var meshAnimationCache: MeshAnimationCache { get }
func storeSecureIdPassword(password: String)
func getStoredSecureIdPassword() -> String?
diff --git a/submodules/LottieMeshSwift/BUILD b/submodules/LottieMeshSwift/BUILD
index be8e8a8c67..3782d528d0 100644
--- a/submodules/LottieMeshSwift/BUILD
+++ b/submodules/LottieMeshSwift/BUILD
@@ -120,6 +120,7 @@ cc_library(
]),
copts = [
"-Isubmodules/LottieMeshSwift/LottieMesh/boost",
+ "-Isubmodules/LottieMeshSwift/libtess2/Include",
] + optimization_flags,
hdrs = glob([
"LottieMesh/PublicHeaders/**/*.h",
@@ -128,6 +129,27 @@ cc_library(
includes = [
"LottieMesh/PublicHeaders",
],
+ deps = [
+ ":libtess2",
+ ],
+ visibility = [
+ "//visibility:public",
+ ],
+)
+
+cc_library(
+ name = "libtess2",
+ srcs = glob([
+ "libtess2/Sources/**/*.c",
+ "libtess2/Sources/**/*.h",
+ "libtess2/Include/**/*.h",
+ ]),
+ copts = [
+ "-Isubmodules/LottieMeshSwift/libtess2/Include",
+ ] + optimization_flags,
+ hdrs = glob([
+ "libtess2/Include/**/*.h",
+ ]),
deps = [
],
visibility = [
diff --git a/submodules/LottieMeshSwift/LottieMesh/PublicHeaders/LottieMesh/Point.h b/submodules/LottieMeshSwift/LottieMesh/PublicHeaders/LottieMesh/Point.h
index 761e15a16e..5c412f6252 100644
--- a/submodules/LottieMeshSwift/LottieMesh/PublicHeaders/LottieMesh/Point.h
+++ b/submodules/LottieMeshSwift/LottieMesh/PublicHeaders/LottieMesh/Point.h
@@ -10,9 +10,12 @@ struct Point {
float x = 0.0f;
float y = 0.0f;
- explicit Point(float x_, float y_) :
+ Point(float x_, float y_) :
x(x_), y(y_) {
}
+
+ Point() : Point(0.0f, 0.0f) {
+ }
bool isEqual(Point const &other, float epsilon = 0.0001f) const {
return std::abs(x - other.x) <= epsilon && std::abs(y - other.y) <= epsilon;
diff --git a/submodules/LottieMeshSwift/LottieMesh/Sources/LineSegment.h b/submodules/LottieMeshSwift/LottieMesh/Sources/LineSegment.h
new file mode 100644
index 0000000000..890351c2bc
--- /dev/null
+++ b/submodules/LottieMeshSwift/LottieMesh/Sources/LineSegment.h
@@ -0,0 +1,86 @@
+#pragma once
+
+#include "Vec2.h"
+#include
+
+namespace crushedpixel {
+
+template
+struct LineSegment {
+ LineSegment(const Vec2 &a, const Vec2 &b) :
+ a(a), b(b) {}
+
+ Vec2 a, b;
+
+ /**
+ * @return A copy of the line segment, offset by the given vector.
+ */
+ LineSegment operator+(const Vec2 &toAdd) const {
+ return {Vec2Maths::add(a, toAdd), Vec2Maths::add(b, toAdd)};
+ }
+
+ /**
+ * @return A copy of the line segment, offset by the given vector.
+ */
+ LineSegment operator-(const Vec2 &toRemove) const {
+ return {Vec2Maths::subtract(a, toRemove), Vec2Maths::subtract(b, toRemove)};
+ }
+
+ /**
+ * @return The line segment's normal vector.
+ */
+ Vec2 normal() const {
+ auto dir = direction();
+
+ // return the direction vector
+ // rotated by 90 degrees counter-clockwise
+ return {-dir.y, dir.x};
+ }
+
+ /**
+ * @return The line segment's direction vector.
+ */
+ Vec2 direction(bool normalized = true) const {
+ auto vec = Vec2Maths::subtract(b, a);
+
+ return normalized
+ ? Vec2Maths::normalized(vec)
+ : vec;
+ }
+
+ static Vec2 intersection(const LineSegment &a, const LineSegment &b, bool infiniteLines, bool &success) {
+ success = true;
+
+ // calculate un-normalized direction vectors
+ auto r = a.direction(false);
+ auto s = b.direction(false);
+
+ auto originDist = Vec2Maths::subtract(b.a, a.a);
+
+ auto uNumerator = Vec2Maths::cross(originDist, r);
+ auto denominator = Vec2Maths::cross(r, s);
+
+ if (std::abs(denominator) < 0.0001f) {
+ // The lines are parallel
+ success = false;
+ return Vec2();
+ }
+
+ // solve the intersection positions
+ auto u = uNumerator / denominator;
+ auto t = Vec2Maths::cross(originDist, s) / denominator;
+
+ if (!infiniteLines && (t < 0 || t > 1 || u < 0 || u > 1)) {
+ // the intersection lies outside of the line segments
+ success = false;
+ return Vec2();
+ }
+
+ // calculate the intersection point
+ // a.a + r * t;
+ return Vec2Maths::add(a.a, Vec2Maths::multiply(r, t));
+ }
+};
+
+
+} // namespace crushedpixel
diff --git a/submodules/LottieMeshSwift/LottieMesh/Sources/LottieMesh.cpp b/submodules/LottieMeshSwift/LottieMesh/Sources/LottieMesh.cpp
index 173eda2602..41b2dafb03 100644
--- a/submodules/LottieMeshSwift/LottieMesh/Sources/LottieMesh.cpp
+++ b/submodules/LottieMeshSwift/LottieMesh/Sources/LottieMesh.cpp
@@ -4,9 +4,85 @@
#include
#include "Triangulation.h"
+#include "tesselator.h"
+#include "Polyline2D.h"
+
+namespace {
+};
+
namespace MeshGenerator {
std::unique_ptr generateMesh(std::vector const &paths, std::unique_ptr fill, std::unique_ptr stroke) {
+ if (stroke) {
+ std::unique_ptr mesh = std::make_unique();
+
+ for (const auto &path : paths) {
+ crushedpixel::Polyline2D::JointStyle jointStyle = crushedpixel::Polyline2D::JointStyle::ROUND;
+ crushedpixel::Polyline2D::EndCapStyle endCapStyle = crushedpixel::Polyline2D::EndCapStyle::SQUARE;
+ switch (stroke->lineJoin) {
+ case Stroke::LineJoin::Miter:
+ jointStyle = crushedpixel::Polyline2D::JointStyle::MITER;
+ break;
+ case Stroke::LineJoin::Round:
+ jointStyle = crushedpixel::Polyline2D::JointStyle::ROUND;
+ break;
+ case Stroke::LineJoin::Bevel:
+ jointStyle = crushedpixel::Polyline2D::JointStyle::BEVEL;
+ break;
+ default: {
+ break;
+ }
+ }
+ switch (stroke->lineCap) {
+ case Stroke::LineCap::Round: {
+ endCapStyle = crushedpixel::Polyline2D::EndCapStyle::ROUND;
+ break;
+ }
+ case Stroke::LineCap::Square: {
+ endCapStyle = crushedpixel::Polyline2D::EndCapStyle::SQUARE;
+ break;
+ }
+ case Stroke::LineCap::Butt: {
+ endCapStyle = crushedpixel::Polyline2D::EndCapStyle::BUTT;
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+
+ auto vertices = crushedpixel::Polyline2D::create(path.points, stroke->lineWidth, jointStyle, endCapStyle);
+ for (const auto &vertex : vertices) {
+ mesh->triangles.push_back((int)mesh->vertices.size());
+ mesh->vertices.push_back(vertex);
+ }
+ }
+
+ assert(mesh->triangles.size() % 3 == 0);
+ return mesh;
+ } else {
+ TESStesselator *tessellator = tessNewTess(NULL);
+ tessSetOption(tessellator, TESS_CONSTRAINED_DELAUNAY_TRIANGULATION, 1);
+ for (const auto &path : paths) {
+ tessAddContour(tessellator, 2, path.points.data(), sizeof(Point), (int)path.points.size());
+ }
+ tessTesselate(tessellator, TESS_WINDING_ODD, TESS_POLYGONS, 3, 2, NULL);
+
+ int vertexCount = tessGetVertexCount(tessellator);
+ const TESSreal *vertices = tessGetVertices(tessellator);
+ int indexCount = tessGetElementCount(tessellator) * 3;
+ const TESSindex *indices = tessGetElements(tessellator);
+
+ std::unique_ptr mesh = std::make_unique();
+ for (int i = 0; i < vertexCount; i++) {
+ mesh->vertices.push_back(Point(vertices[i * 2 + 0], vertices[i * 2 + 1]));
+ }
+ for (int i = 0; i < indexCount; i++) {
+ mesh->triangles.push_back(indices[i]);
+ }
+ return mesh;
+ }
+
std::unique_ptr graph;
std::unique_ptr> updatedPaths;
diff --git a/submodules/LottieMeshSwift/LottieMesh/Sources/Polyline2D.h b/submodules/LottieMeshSwift/LottieMesh/Sources/Polyline2D.h
new file mode 100644
index 0000000000..7c95177d1d
--- /dev/null
+++ b/submodules/LottieMeshSwift/LottieMesh/Sources/Polyline2D.h
@@ -0,0 +1,446 @@
+#pragma once
+
+#include "LineSegment.h"
+#include
+#include
+#include
+
+namespace crushedpixel {
+
+class Polyline2D {
+public:
+ enum class JointStyle {
+ /**
+ * Corners are drawn with sharp joints.
+ * If the joint's outer angle is too large,
+ * the joint is drawn as beveled instead,
+ * to avoid the miter extending too far out.
+ */
+ MITER,
+ /**
+ * Corners are flattened.
+ */
+ BEVEL,
+ /**
+ * Corners are rounded off.
+ */
+ ROUND
+ };
+
+ enum class EndCapStyle {
+ /**
+ * Path ends are drawn flat,
+ * and don't exceed the actual end point.
+ */
+ BUTT, // lol
+ /**
+ * Path ends are drawn flat,
+ * but extended beyond the end point
+ * by half the line thickness.
+ */
+ SQUARE,
+ /**
+ * Path ends are rounded off.
+ */
+ ROUND,
+ /**
+ * Path ends are connected according to the JointStyle.
+ * When using this EndCapStyle, don't specify the common start/end point twice,
+ * as Polyline2D connects the first and last input point itself.
+ */
+ JOINT
+ };
+
+ /**
+ * Creates a vector of vertices describing a solid path through the input points.
+ * @param points The points of the path.
+ * @param thickness The path's thickness.
+ * @param jointStyle The path's joint style.
+ * @param endCapStyle The path's end cap style.
+ * @param allowOverlap Whether to allow overlapping vertices.
+ * This yields better results when dealing with paths
+ * whose points have a distance smaller than the thickness,
+ * but may introduce overlapping vertices,
+ * which is undesirable when rendering transparent paths.
+ * @return The vertices describing the path.
+ * @tparam Vec2 The vector type to use for the vertices.
+ * Must have public non-const float fields "x" and "y".
+ * Must have a two-args constructor taking x and y values.
+ * See crushedpixel::Vec2 for a type that satisfies these requirements.
+ * @tparam InputCollection The collection type of the input points.
+ * Must contain elements of type Vec2.
+ * Must expose size() and operator[] functions.
+ */
+ template
+ static std::vector create(const InputCollection &points, float thickness,
+ JointStyle jointStyle = JointStyle::MITER,
+ EndCapStyle endCapStyle = EndCapStyle::BUTT,
+ bool allowOverlap = false) {
+ std::vector vertices;
+ create(vertices, points, thickness, jointStyle, endCapStyle, allowOverlap);
+ return vertices;
+ }
+
+ template
+ static std::vector create(const std::vector &points, float thickness,
+ JointStyle jointStyle = JointStyle::MITER,
+ EndCapStyle endCapStyle = EndCapStyle::BUTT,
+ bool allowOverlap = false) {
+ std::vector vertices;
+ create>(vertices, points, thickness, jointStyle, endCapStyle, allowOverlap);
+ return vertices;
+ }
+
+ template
+ static size_t create(std::vector &vertices, const InputCollection &points, float thickness,
+ JointStyle jointStyle = JointStyle::MITER,
+ EndCapStyle endCapStyle = EndCapStyle::BUTT,
+ bool allowOverlap = false) {
+ auto numVerticesBefore = vertices.size();
+
+ create(std::back_inserter(vertices), points, thickness,
+ jointStyle, endCapStyle, allowOverlap);
+
+ return vertices.size() - numVerticesBefore;
+ }
+
+ template
+ static OutputIterator create(OutputIterator vertices, const InputCollection &points, float thickness,
+ JointStyle jointStyle = JointStyle::MITER,
+ EndCapStyle endCapStyle = EndCapStyle::BUTT,
+ bool allowOverlap = false) {
+ // operate on half the thickness to make our lives easier
+ thickness /= 2;
+
+ // create poly segments from the points
+ std::vector> segments;
+ for (size_t i = 0; i + 1 < points.size(); i++) {
+ auto &point1 = points[i];
+ auto &point2 = points[i + 1];
+
+ // to avoid division-by-zero errors,
+ // only create a line segment for non-identical points
+ if (!Vec2Maths::equal(point1, point2)) {
+ segments.emplace_back(LineSegment(point1, point2), thickness);
+ }
+ }
+
+ if (endCapStyle == EndCapStyle::JOINT) {
+ // create a connecting segment from the last to the first point
+
+ auto &point1 = points[points.size() - 1];
+ auto &point2 = points[0];
+
+ // to avoid division-by-zero errors,
+ // only create a line segment for non-identical points
+ if (!Vec2Maths::equal(point1, point2)) {
+ segments.emplace_back(LineSegment(point1, point2), thickness);
+ }
+ }
+
+ if (segments.empty()) {
+ // handle the case of insufficient input points
+ return vertices;
+ }
+
+ Vec2 nextStart1{0, 0};
+ Vec2 nextStart2{0, 0};
+ Vec2 start1{0, 0};
+ Vec2 start2{0, 0};
+ Vec2 end1{0, 0};
+ Vec2 end2{0, 0};
+
+ // calculate the path's global start and end points
+ auto &firstSegment = segments[0];
+ auto &lastSegment = segments[segments.size() - 1];
+
+ auto pathStart1 = firstSegment.edge1.a;
+ auto pathStart2 = firstSegment.edge2.a;
+ auto pathEnd1 = lastSegment.edge1.b;
+ auto pathEnd2 = lastSegment.edge2.b;
+
+ // handle different end cap styles
+ if (endCapStyle == EndCapStyle::SQUARE) {
+ // extend the start/end points by half the thickness
+ pathStart1 = Vec2Maths::subtract(pathStart1, Vec2Maths::multiply(firstSegment.edge1.direction(), thickness));
+ pathStart2 = Vec2Maths::subtract(pathStart2, Vec2Maths::multiply(firstSegment.edge2.direction(), thickness));
+ pathEnd1 = Vec2Maths::add(pathEnd1, Vec2Maths::multiply(lastSegment.edge1.direction(), thickness));
+ pathEnd2 = Vec2Maths::add(pathEnd2, Vec2Maths::multiply(lastSegment.edge2.direction(), thickness));
+
+ } else if (endCapStyle == EndCapStyle::ROUND) {
+ // draw half circle end caps
+ createTriangleFan(vertices, firstSegment.center.a, firstSegment.center.a,
+ firstSegment.edge1.a, firstSegment.edge2.a, false);
+ createTriangleFan(vertices, lastSegment.center.b, lastSegment.center.b,
+ lastSegment.edge1.b, lastSegment.edge2.b, true);
+
+ } else if (endCapStyle == EndCapStyle::JOINT) {
+ // join the last (connecting) segment and the first segment
+ createJoint(vertices, lastSegment, firstSegment, jointStyle,
+ pathEnd1, pathEnd2, pathStart1, pathStart2, allowOverlap);
+ }
+
+ // generate mesh data for path segments
+ for (size_t i = 0; i < segments.size(); i++) {
+ auto &segment = segments[i];
+
+ // calculate start
+ if (i == 0) {
+ // this is the first segment
+ start1 = pathStart1;
+ start2 = pathStart2;
+ }
+
+ if (i + 1 == segments.size()) {
+ // this is the last segment
+ end1 = pathEnd1;
+ end2 = pathEnd2;
+
+ } else {
+ createJoint(vertices, segment, segments[i + 1], jointStyle,
+ end1, end2, nextStart1, nextStart2, allowOverlap);
+ }
+
+ // emit vertices
+ *vertices++ = start1;
+ *vertices++ = start2;
+ *vertices++ = end1;
+
+ *vertices++ = end1;
+ *vertices++ = start2;
+ *vertices++ = end2;
+
+ start1 = nextStart1;
+ start2 = nextStart2;
+ }
+
+ return vertices;
+ }
+
+private:
+ static constexpr float pi = 3.14159265358979323846f;
+
+ /**
+ * The threshold for mitered joints.
+ * If the joint's angle is smaller than this angle,
+ * the joint will be drawn beveled instead.
+ */
+ static constexpr float miterMinAngle = 0.349066; // ~20 degrees
+
+ /**
+ * The minimum angle of a round joint's triangles.
+ */
+ static constexpr float roundMinAngle = 0.174533; // ~10 degrees
+
+ template
+ struct PolySegment {
+ PolySegment(const LineSegment ¢er, float thickness) :
+ center(center),
+ // calculate the segment's outer edges by offsetting
+ // the central line by the normal vector
+ // multiplied with the thickness
+
+ // center + center.normal() * thickness
+ edge1(center + Vec2Maths::multiply(center.normal(), thickness)),
+ edge2(center - Vec2Maths::multiply(center.normal(), thickness)) {}
+
+ LineSegment center, edge1, edge2;
+ };
+
+ template
+ static OutputIterator createJoint(OutputIterator vertices,
+ const PolySegment &segment1, const PolySegment &segment2,
+ JointStyle jointStyle, Vec2 &end1, Vec2 &end2,
+ Vec2 &nextStart1, Vec2 &nextStart2,
+ bool allowOverlap) {
+ // calculate the angle between the two line segments
+ auto dir1 = segment1.center.direction();
+ auto dir2 = segment2.center.direction();
+
+ auto angle = Vec2Maths::angle(dir1, dir2);
+
+ // wrap the angle around the 180ยฐ mark if it exceeds 90ยฐ
+ // for minimum angle detection
+ auto wrappedAngle = angle;
+ if (wrappedAngle > pi / 2) {
+ wrappedAngle = pi - wrappedAngle;
+ }
+
+ if (jointStyle == JointStyle::MITER && wrappedAngle < miterMinAngle) {
+ // the minimum angle for mitered joints wasn't exceeded.
+ // to avoid the intersection point being extremely far out,
+ // thus producing an enormous joint like a rasta on 4/20,
+ // we render the joint beveled instead.
+ jointStyle = JointStyle::BEVEL;
+ }
+
+ if (jointStyle == JointStyle::MITER) {
+ // calculate each edge's intersection point
+ // with the next segment's central line
+ bool sec1Success = true;
+ bool sec2Success = true;
+ auto sec1 = LineSegment::intersection(segment1.edge1, segment2.edge1, true, sec1Success);
+ auto sec2 = LineSegment::intersection(segment1.edge2, segment2.edge2, true, sec2Success);
+
+ end1 = sec1Success ? sec1 : segment1.edge1.b;
+ end2 = sec2Success ? sec2 : segment1.edge2.b;
+
+ nextStart1 = end1;
+ nextStart2 = end2;
+
+ } else {
+ // joint style is either BEVEL or ROUND
+
+ // find out which are the inner edges for this joint
+ auto x1 = dir1.x;
+ auto x2 = dir2.x;
+ auto y1 = dir1.y;
+ auto y2 = dir2.y;
+
+ auto clockwise = x1 * y2 - x2 * y1 < 0;
+
+ const LineSegment *inner1, *inner2, *outer1, *outer2;
+
+ // as the normal vector is rotated counter-clockwise,
+ // the first edge lies to the left
+ // from the central line's perspective,
+ // and the second one to the right.
+ if (clockwise) {
+ outer1 = &segment1.edge1;
+ outer2 = &segment2.edge1;
+ inner1 = &segment1.edge2;
+ inner2 = &segment2.edge2;
+ } else {
+ outer1 = &segment1.edge2;
+ outer2 = &segment2.edge2;
+ inner1 = &segment1.edge1;
+ inner2 = &segment2.edge1;
+ }
+
+ // calculate the intersection point of the inner edges
+ bool innerSecOptSuccess = true;
+ auto innerSecOpt = LineSegment::intersection(*inner1, *inner2, allowOverlap, innerSecOptSuccess);
+
+ auto innerSec = innerSecOptSuccess
+ ? innerSecOpt
+ // for parallel lines, simply connect them directly
+ : inner1->b;
+
+ // if there's no inner intersection, flip
+ // the next start position for near-180ยฐ turns
+ Vec2 innerStart;
+ if (innerSecOptSuccess) {
+ innerStart = innerSec;
+ } else if (angle > pi / 2) {
+ innerStart = outer1->b;
+ } else {
+ innerStart = inner1->b;
+ }
+
+ if (clockwise) {
+ end1 = outer1->b;
+ end2 = innerSec;
+
+ nextStart1 = outer2->a;
+ nextStart2 = innerStart;
+
+ } else {
+ end1 = innerSec;
+ end2 = outer1->b;
+
+ nextStart1 = innerStart;
+ nextStart2 = outer2->a;
+ }
+
+ // connect the intersection points according to the joint style
+
+ if (jointStyle == JointStyle::BEVEL) {
+ // simply connect the intersection points
+ *vertices++ = outer1->b;
+ *vertices++ = outer2->a;
+ *vertices++ = innerSec;
+
+ } else if (jointStyle == JointStyle::ROUND) {
+ // draw a circle between the ends of the outer edges,
+ // centered at the actual point
+ // with half the line thickness as the radius
+ createTriangleFan(vertices, innerSec, segment1.center.b, outer1->b, outer2->a, clockwise);
+ } else {
+ assert(false);
+ }
+ }
+
+ return vertices;
+ }
+
+ /**
+ * Creates a partial circle between two points.
+ * The points must be equally far away from the origin.
+ * @param vertices The vector to add vertices to.
+ * @param connectTo The position to connect the triangles to.
+ * @param origin The circle's origin.
+ * @param start The circle's starting point.
+ * @param end The circle's ending point.
+ * @param clockwise Whether the circle's rotation is clockwise.
+ */
+ template
+ static OutputIterator createTriangleFan(OutputIterator vertices, Vec2 connectTo, Vec2 origin,
+ Vec2 start, Vec2 end, bool clockwise) {
+
+ auto point1 = Vec2Maths::subtract(start, origin);
+ auto point2 = Vec2Maths::subtract(end, origin);
+
+ // calculate the angle between the two points
+ auto angle1 = atan2(point1.y, point1.x);
+ auto angle2 = atan2(point2.y, point2.x);
+
+ // ensure the outer angle is calculated
+ if (clockwise) {
+ if (angle2 > angle1) {
+ angle2 = angle2 - 2 * pi;
+ }
+ } else {
+ if (angle1 > angle2) {
+ angle1 = angle1 - 2 * pi;
+ }
+ }
+
+ auto jointAngle = angle2 - angle1;
+
+ // calculate the amount of triangles to use for the joint
+ auto numTriangles = std::max(1, (int) std::floor(std::abs(jointAngle) / roundMinAngle));
+
+ // calculate the angle of each triangle
+ auto triAngle = jointAngle / numTriangles;
+
+ Vec2 startPoint = start;
+ Vec2 endPoint;
+ for (int t = 0; t < numTriangles; t++) {
+ if (t + 1 == numTriangles) {
+ // it's the last triangle - ensure it perfectly
+ // connects to the next line
+ endPoint = end;
+ } else {
+ auto rot = (t + 1) * triAngle;
+
+ // rotate the original point around the origin
+ endPoint.x = std::cos(rot) * point1.x - std::sin(rot) * point1.y;
+ endPoint.y = std::sin(rot) * point1.x + std::cos(rot) * point1.y;
+
+ // re-add the rotation origin to the target point
+ endPoint = Vec2Maths::add(endPoint, origin);
+ }
+
+ // emit the triangle
+ *vertices++ = startPoint;
+ *vertices++ = endPoint;
+ *vertices++ = connectTo;
+
+ startPoint = endPoint;
+ }
+
+ return vertices;
+ }
+};
+
+} // namespace crushedpixel
diff --git a/submodules/LottieMeshSwift/LottieMesh/Sources/Vec2.h b/submodules/LottieMeshSwift/LottieMesh/Sources/Vec2.h
new file mode 100644
index 0000000000..08b9ad1e30
--- /dev/null
+++ b/submodules/LottieMeshSwift/LottieMesh/Sources/Vec2.h
@@ -0,0 +1,99 @@
+#pragma once
+
+#include
+
+namespace crushedpixel {
+
+/**
+ * A two-dimensional float vector.
+ * It exposes the x and y fields
+ * as required by the Polyline2D functions.
+ */
+struct Vec2 {
+ Vec2() :
+ Vec2(0, 0) {}
+
+ Vec2(float x, float y) :
+ x(x), y(y) {}
+
+ virtual ~Vec2() = default;
+
+ float x, y;
+};
+
+namespace Vec2Maths {
+
+template
+static bool equal(const Vec2 &a, const Vec2 &b) {
+ return a.x == b.x && a.y == b.y;
+}
+
+template
+static Vec2 multiply(const Vec2 &a, const Vec2 &b) {
+ return {a.x * b.x, a.y * b.y};
+}
+
+template
+static Vec2 multiply(const Vec2 &vec, float factor) {
+ return {vec.x * factor, vec.y * factor};
+}
+
+template
+static Vec2 divide(const Vec2 &vec, float factor) {
+ return {vec.x / factor, vec.y / factor};
+}
+
+template
+static Vec2 add(const Vec2 &a, const Vec2 &b) {
+ return {a.x + b.x, a.y + b.y};
+}
+
+template
+static Vec2 subtract(const Vec2 &a, const Vec2 &b) {
+ return {a.x - b.x, a.y - b.y};
+}
+
+template
+static float magnitude(const Vec2 &vec) {
+ return std::sqrt(vec.x * vec.x + vec.y * vec.y);
+}
+
+template
+static Vec2 withLength(const Vec2 &vec, float len) {
+ auto mag = magnitude(vec);
+ auto factor = mag / len;
+ return divide(vec, factor);
+}
+
+template
+static Vec2 normalized(const Vec2 &vec) {
+ return withLength(vec, 1);
+}
+
+/**
+ * Calculates the dot product of two vectors.
+ */
+template
+static float dot(const Vec2 &a, const Vec2 &b) {
+ return a.x * b.x + a.y * b.y;
+}
+
+/**
+ * Calculates the cross product of two vectors.
+ */
+template
+static float cross(const Vec2 &a, const Vec2 &b) {
+ return a.x * b.y - a.y * b.x;
+}
+
+/**
+ * Calculates the angle between two vectors.
+ */
+template
+static float angle(const Vec2 &a, const Vec2 &b) {
+ return std::acos(dot(a, b) / (magnitude(a) * magnitude(b)));
+}
+
+} // namespace Vec2Maths
+
+}
\ No newline at end of file
diff --git a/submodules/LottieMeshSwift/LottieMeshBinding/Sources/LottieMeshBinding.mm b/submodules/LottieMeshSwift/LottieMeshBinding/Sources/LottieMeshBinding.mm
index 9ccafa31eb..e76e7d974c 100644
--- a/submodules/LottieMeshSwift/LottieMeshBinding/Sources/LottieMeshBinding.mm
+++ b/submodules/LottieMeshSwift/LottieMeshBinding/Sources/LottieMeshBinding.mm
@@ -94,7 +94,7 @@ float approximateBezierQubicLength(MeshGenerator::Point const &p0, MeshGenerator
+ (LottieMeshData * _Nullable)generateWithPath:(UIBezierPath * _Nonnull)path fill: (LottieMeshFill * _Nullable)fill stroke:(LottieMeshStroke * _Nullable)stroke {
float scale = 1.0f;
- float flatness = 0.5;
+ float flatness = 1.0;
__block MeshGenerator::Point startingPoint(0.0f, 0.0f);
__block bool hasStartingPoint = false;
__block std::vector paths;
diff --git a/submodules/LottieMeshSwift/Sources/MeshAnimation.swift b/submodules/LottieMeshSwift/Sources/MeshAnimation.swift
index 000af87d75..0de377be5a 100644
--- a/submodules/LottieMeshSwift/Sources/MeshAnimation.swift
+++ b/submodules/LottieMeshSwift/Sources/MeshAnimation.swift
@@ -126,13 +126,13 @@ public final class MeshAnimation {
static func read(buffer: MeshReadBuffer) -> Segment {
let vertCount = Int(buffer.readInt32())
- var vertices = Data(count: 4 * vertCount * 2)
+ var vertices = Data(count: vertCount)
vertices.withUnsafeMutableBytes { bytes in
buffer.read(bytes.baseAddress!, length: bytes.count)
}
let triCount = Int(buffer.readInt32())
- var triangles = Data(count: 3 * triCount * 4)
+ var triangles = Data(count: triCount)
triangles.withUnsafeMutableBytes { bytes in
buffer.read(bytes.baseAddress!, length: bytes.count)
}
@@ -207,6 +207,7 @@ public final class MeshRenderer: MTKView {
private final class RenderingMesh {
let mesh: MeshAnimation
let offset: CGPoint
+ let loop: Bool
var currentFrame: Int = 0
let vertexBuffer: MTLBuffer
let indexBuffer: MTLBuffer
@@ -214,9 +215,10 @@ public final class MeshRenderer: MTKView {
let maxVertices: Int
let maxTriangles: Int
- init(device: MTLDevice, mesh: MeshAnimation, offset: CGPoint) {
+ init(device: MTLDevice, mesh: MeshAnimation, offset: CGPoint, loop: Bool) {
self.mesh = mesh
self.offset = offset
+ self.loop = loop
var maxTriangles = 0
var maxVertices = 0
@@ -254,6 +256,7 @@ public final class MeshRenderer: MTKView {
}
}
+ private let wireframe: Bool
private let commandQueue: MTLCommandQueue
private let drawPassthroughPipelineState: MTLRenderPipelineState
private let drawRadialGradientPipelineStates: [Int: MTLRenderPipelineState]
@@ -272,6 +275,8 @@ public final class MeshRenderer: MTKView {
public var allAnimationsCompleted: (() -> Void)?
public init?(wireframe: Bool = false) {
+ self.wireframe = wireframe
+
let mainBundle = Bundle(for: MeshRenderer.self)
guard let path = mainBundle.path(forResource: "LottieMeshSwiftBundle", ofType: "bundle") else {
@@ -357,6 +362,7 @@ public final class MeshRenderer: MTKView {
self.displayLink = CADisplayLink(target: DisplayLinkProxy(target: self), selector: #selector(DisplayLinkProxy.displayLinkEvent))
if #available(iOS 15.0, *) {
self.displayLink?.preferredFrameRateRange = CAFrameRateRange(minimum: 60.0, maximum: 60.0, preferred: 60.0)
+ //self.displayLink?.preferredFrameRateRange = CAFrameRateRange(minimum: 10.0, maximum: 60.0, preferred: 10.0)
}
self.displayLink?.add(to: .main, forMode: .common)
self.displayLink?.isPaused = false
@@ -372,8 +378,8 @@ public final class MeshRenderer: MTKView {
self.displayLink?.invalidate()
}
- public func add(mesh: MeshAnimation, offset: CGPoint) {
- self.meshes.append(RenderingMesh(device: self.device!, mesh: mesh, offset: offset))
+ public func add(mesh: MeshAnimation, offset: CGPoint, loop: Bool = false) {
+ self.meshes.append(RenderingMesh(device: self.device!, mesh: mesh, offset: offset, loop: loop))
}
@objc private func displayLinkEvent() {
@@ -400,9 +406,9 @@ public final class MeshRenderer: MTKView {
}
renderEncoder.setCullMode(.none)
- /*if displayDebug {
+ if self.wireframe {
renderEncoder.setTriangleFillMode(.lines)
- }*/
+ }
func addTriangle(vertexData: UnsafeMutablePointer, maxVertices: Int, nextVertexIndex: inout Int, vertices: Data, triangles: Data, triangleIndex: Int) {
assert(nextVertexIndex + 3 <= maxVertices)
@@ -534,7 +540,11 @@ public final class MeshRenderer: MTKView {
let nextFrame = mesh.currentFrame + 1
if nextFrame >= mesh.mesh.frames.count {
- removeMeshes.append(i)
+ if mesh.loop {
+ mesh.currentFrame = 0
+ } else {
+ removeMeshes.append(i)
+ }
} else {
mesh.currentFrame = nextFrame
}
diff --git a/submodules/LottieMeshSwift/libtess2/Include/tesselator.h b/submodules/LottieMeshSwift/libtess2/Include/tesselator.h
new file mode 100755
index 0000000000..3d431559a1
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Include/tesselator.h
@@ -0,0 +1,242 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Mikko Mononen, July 2009.
+*/
+
+#ifndef TESSELATOR_H
+#define TESSELATOR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// See OpenGL Red Book for description of the winding rules
+// http://www.glprogramming.com/red/chapter11.html
+enum TessWindingRule
+{
+ TESS_WINDING_ODD,
+ TESS_WINDING_NONZERO,
+ TESS_WINDING_POSITIVE,
+ TESS_WINDING_NEGATIVE,
+ TESS_WINDING_ABS_GEQ_TWO,
+};
+
+// The contents of the tessGetElements() depends on element type being passed to tessTesselate().
+// Tesselation result element types:
+// TESS_POLYGONS
+// Each element in the element array is polygon defined as 'polySize' number of vertex indices.
+// If a polygon has than 'polySize' vertices, the remaining indices are stored as TESS_UNDEF.
+// Example, drawing a polygon:
+// const int nelems = tessGetElementCount(tess);
+// const TESSindex* elems = tessGetElements(tess);
+// for (int i = 0; i < nelems; i++) {
+// const TESSindex* poly = &elems[i * polySize];
+// glBegin(GL_POLYGON);
+// for (int j = 0; j < polySize; j++) {
+// if (poly[j] == TESS_UNDEF) break;
+// glVertex2fv(&verts[poly[j]*vertexSize]);
+// }
+// glEnd();
+// }
+//
+// TESS_CONNECTED_POLYGONS
+// Each element in the element array is polygon defined as 'polySize' number of vertex indices,
+// followed by 'polySize' indices to neighour polygons, that is each element is 'polySize' * 2 indices.
+// If a polygon has than 'polySize' vertices, the remaining indices are stored as TESS_UNDEF.
+// If a polygon edge is a boundary, that is, not connected to another polygon, the neighbour index is TESS_UNDEF.
+// Example, flood fill based on seed polygon:
+// const int nelems = tessGetElementCount(tess);
+// const TESSindex* elems = tessGetElements(tess);
+// unsigned char* visited = (unsigned char*)calloc(nelems);
+// TESSindex stack[50];
+// int nstack = 0;
+// stack[nstack++] = seedPoly;
+// visited[startPoly] = 1;
+// while (nstack > 0) {
+// TESSindex idx = stack[--nstack];
+// const TESSindex* poly = &elems[idx * polySize * 2];
+// const TESSindex* nei = &poly[polySize];
+// for (int i = 0; i < polySize; i++) {
+// if (poly[i] == TESS_UNDEF) break;
+// if (nei[i] != TESS_UNDEF && !visited[nei[i]])
+// stack[nstack++] = nei[i];
+// visited[nei[i]] = 1;
+// }
+// }
+// }
+//
+// TESS_BOUNDARY_CONTOURS
+// Each element in the element array is [base index, count] pair defining a range of vertices for a contour.
+// The first value is index to first vertex in contour and the second value is number of vertices in the contour.
+// Example, drawing contours:
+// const int nelems = tessGetElementCount(tess);
+// const TESSindex* elems = tessGetElements(tess);
+// for (int i = 0; i < nelems; i++) {
+// const TESSindex base = elems[i * 2];
+// const TESSindex count = elems[i * 2 + 1];
+// glBegin(GL_LINE_LOOP);
+// for (int j = 0; j < count; j++) {
+// glVertex2fv(&verts[(base+j) * vertexSize]);
+// }
+// glEnd();
+// }
+
+enum TessElementType
+{
+ TESS_POLYGONS,
+ TESS_CONNECTED_POLYGONS,
+ TESS_BOUNDARY_CONTOURS,
+};
+
+
+// TESS_CONSTRAINED_DELAUNAY_TRIANGULATION
+// If enabled, the initial triagulation is improved with non-robust Constrained Delayney triangulation.
+// Disable by default.
+//
+// TESS_REVERSE_CONTOURS
+// If enabled, tessAddContour() will treat CW contours as CCW and vice versa
+// Disabled by default.
+
+enum TessOption
+{
+ TESS_CONSTRAINED_DELAUNAY_TRIANGULATION,
+ TESS_REVERSE_CONTOURS
+};
+
+typedef float TESSreal;
+typedef int TESSindex;
+typedef struct TESStesselator TESStesselator;
+typedef struct TESSalloc TESSalloc;
+
+#define TESS_UNDEF (~(TESSindex)0)
+
+#define TESS_NOTUSED(v) do { (void)(1 ? (void)0 : ( (void)(v) ) ); } while(0)
+
+// Custom memory allocator interface.
+// The internal memory allocator allocates mesh edges, vertices and faces
+// as well as dictionary nodes and active regions in buckets and uses simple
+// freelist to speed up the allocation. The bucket size should roughly match your
+// expected input data. For example if you process only hundreds of vertices,
+// a bucket size of 128 might be ok, where as when processing thousands of vertices
+// bucket size of 1024 might be approproate. The bucket size is a compromise between
+// how often to allocate memory from the system versus how much extra space the system
+// should allocate. Reasonable defaults are show in commects below, they will be used if
+// the bucket sizes are zero.
+//
+// The use may left the memrealloc to be null. In that case, the tesselator will not try to
+// dynamically grow int's internal arrays. The tesselator only needs the reallocation when it
+// has found intersecting segments and needs to add new vertex. This defency can be cured by
+// allocating some extra vertices beforehand. The 'extraVertices' variable allows to specify
+// number of expected extra vertices.
+struct TESSalloc
+{
+ void *(*memalloc)( void *userData, unsigned int size );
+ void *(*memrealloc)( void *userData, void* ptr, unsigned int size );
+ void (*memfree)( void *userData, void *ptr );
+ void* userData; // User data passed to the allocator functions.
+ int meshEdgeBucketSize; // 512
+ int meshVertexBucketSize; // 512
+ int meshFaceBucketSize; // 256
+ int dictNodeBucketSize; // 512
+ int regionBucketSize; // 256
+ int extraVertices; // Number of extra vertices allocated for the priority queue.
+};
+
+
+//
+// Example use:
+//
+//
+//
+//
+
+// tessNewTess() - Creates a new tesselator.
+// Use tessDeleteTess() to delete the tesselator.
+// Parameters:
+// alloc - pointer to a filled TESSalloc struct or NULL to use default malloc based allocator.
+// Returns:
+// new tesselator object.
+TESStesselator* tessNewTess( TESSalloc* alloc );
+
+// tessDeleteTess() - Deletes a tesselator.
+// Parameters:
+// tess - pointer to tesselator object to be deleted.
+void tessDeleteTess( TESStesselator *tess );
+
+// tessAddContour() - Adds a contour to be tesselated.
+// The type of the vertex coordinates is assumed to be TESSreal.
+// Parameters:
+// tess - pointer to tesselator object.
+// size - number of coordinates per vertex. Must be 2 or 3.
+// pointer - pointer to the first coordinate of the first vertex in the array.
+// stride - defines offset in bytes between consecutive vertices.
+// count - number of vertices in contour.
+void tessAddContour( TESStesselator *tess, int size, const void* pointer, int stride, int count );
+
+// tessSetOption() - Toggles optional tessellation parameters
+// Parameters:
+// option - one of TessOption
+// value - 1 if enabled, 0 if disabled.
+void tessSetOption( TESStesselator *tess, int option, int value );
+
+// tessTesselate() - tesselate contours.
+// Parameters:
+// tess - pointer to tesselator object.
+// windingRule - winding rules used for tesselation, must be one of TessWindingRule.
+// elementType - defines the tesselation result element type, must be one of TessElementType.
+// polySize - defines maximum vertices per polygons if output is polygons.
+// vertexSize - defines the number of coordinates in tesselation result vertex, must be 2 or 3.
+// normal - defines the normal of the input contours, of null the normal is calculated automatically.
+// Returns:
+// 1 if succeed, 0 if failed.
+int tessTesselate( TESStesselator *tess, int windingRule, int elementType, int polySize, int vertexSize, const TESSreal* normal );
+
+// tessGetVertexCount() - Returns number of vertices in the tesselated output.
+int tessGetVertexCount( TESStesselator *tess );
+
+// tessGetVertices() - Returns pointer to first coordinate of first vertex.
+const TESSreal* tessGetVertices( TESStesselator *tess );
+
+// tessGetVertexIndices() - Returns pointer to first vertex index.
+// Vertex indices can be used to map the generated vertices to the original vertices.
+// Every point added using tessAddContour() will get a new index starting at 0.
+// New vertices generated at the intersections of segments are assigned value TESS_UNDEF.
+const TESSindex* tessGetVertexIndices( TESStesselator *tess );
+
+// tessGetElementCount() - Returns number of elements in the the tesselated output.
+int tessGetElementCount( TESStesselator *tess );
+
+// tessGetElements() - Returns pointer to the first element.
+const TESSindex* tessGetElements( TESStesselator *tess );
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif // TESSELATOR_H
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/bucketalloc.c b/submodules/LottieMeshSwift/libtess2/Sources/bucketalloc.c
new file mode 100755
index 0000000000..420ebab5ea
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/bucketalloc.c
@@ -0,0 +1,191 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Mikko Mononen, July 2009.
+*/
+
+#include
+#include
+#include "../Include/tesselator.h"
+
+//#define CHECK_BOUNDS
+
+typedef struct BucketAlloc BucketAlloc;
+typedef struct Bucket Bucket;
+
+struct Bucket
+{
+ Bucket *next;
+};
+
+struct BucketAlloc
+{
+ void *freelist;
+ Bucket *buckets;
+ unsigned int itemSize;
+ unsigned int bucketSize;
+ const char *name;
+ TESSalloc* alloc;
+};
+
+static int CreateBucket( struct BucketAlloc* ba )
+{
+ size_t size;
+ Bucket* bucket;
+ void* freelist;
+ unsigned char* head;
+ unsigned char* it;
+
+ // Allocate memory for the bucket
+ size = sizeof(Bucket) + ba->itemSize * ba->bucketSize;
+ bucket = (Bucket*)ba->alloc->memalloc( ba->alloc->userData, size );
+ if ( !bucket )
+ return 0;
+ bucket->next = 0;
+
+ // Add the bucket into the list of buckets.
+ bucket->next = ba->buckets;
+ ba->buckets = bucket;
+
+ // Add new items to the free list.
+ freelist = ba->freelist;
+ head = (unsigned char*)bucket + sizeof(Bucket);
+ it = head + ba->itemSize * ba->bucketSize;
+ do
+ {
+ it -= ba->itemSize;
+ // Store pointer to next free item.
+ *((void**)it) = freelist;
+ // Pointer to next location containing a free item.
+ freelist = (void*)it;
+ }
+ while ( it != head );
+ // Update pointer to next location containing a free item.
+ ba->freelist = (void*)it;
+
+ return 1;
+}
+
+static void *NextFreeItem( struct BucketAlloc *ba )
+{
+ return *(void**)ba->freelist;
+}
+
+struct BucketAlloc* createBucketAlloc( TESSalloc* alloc, const char* name,
+ unsigned int itemSize, unsigned int bucketSize )
+{
+ BucketAlloc* ba = (BucketAlloc*)alloc->memalloc( alloc->userData, sizeof(BucketAlloc) );
+
+ ba->alloc = alloc;
+ ba->name = name;
+ ba->itemSize = itemSize;
+ if ( ba->itemSize < sizeof(void*) )
+ ba->itemSize = sizeof(void*);
+ ba->bucketSize = bucketSize;
+ ba->freelist = 0;
+ ba->buckets = 0;
+
+ if ( !CreateBucket( ba ) )
+ {
+ alloc->memfree( alloc->userData, ba );
+ return 0;
+ }
+
+ return ba;
+}
+
+void* bucketAlloc( struct BucketAlloc *ba )
+{
+ void *it;
+
+ // If running out of memory, allocate new bucket and update the freelist.
+ if ( !ba->freelist || !NextFreeItem( ba ) )
+ {
+ if ( !CreateBucket( ba ) )
+ return 0;
+ }
+
+ // Pop item from in front of the free list.
+ it = ba->freelist;
+ ba->freelist = NextFreeItem( ba );
+
+ return it;
+}
+
+void bucketFree( struct BucketAlloc *ba, void *ptr )
+{
+#ifdef CHECK_BOUNDS
+ int inBounds = 0;
+ Bucket *bucket;
+
+ // Check that the pointer is allocated with this allocator.
+ bucket = ba->buckets;
+ while ( bucket )
+ {
+ void *bucketMin = (void*)((unsigned char*)bucket + sizeof(Bucket));
+ void *bucketMax = (void*)((unsigned char*)bucket + sizeof(Bucket) + ba->itemSize * ba->bucketSize);
+ if ( ptr >= bucketMin && ptr < bucketMax )
+ {
+ inBounds = 1;
+ break;
+ }
+ bucket = bucket->next;
+ }
+
+ if ( inBounds )
+ {
+ // Add the node in front of the free list.
+ *(void**)ptr = ba->freelist;
+ ba->freelist = ptr;
+ }
+ else
+ {
+ printf("ERROR! pointer 0x%p does not belong to allocator '%s'\n", ba->name);
+ }
+#else
+ // Add the node in front of the free list.
+ *(void**)ptr = ba->freelist;
+ ba->freelist = ptr;
+#endif
+}
+
+void deleteBucketAlloc( struct BucketAlloc *ba )
+{
+ TESSalloc* alloc = ba->alloc;
+ Bucket *bucket = ba->buckets;
+ Bucket *next;
+ while ( bucket )
+ {
+ next = bucket->next;
+ alloc->memfree( alloc->userData, bucket );
+ bucket = next;
+ }
+ ba->freelist = 0;
+ ba->buckets = 0;
+ alloc->memfree( alloc->userData, ba );
+}
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/bucketalloc.h b/submodules/LottieMeshSwift/libtess2/Sources/bucketalloc.h
new file mode 100755
index 0000000000..c540951ea3
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/bucketalloc.h
@@ -0,0 +1,51 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Mikko Mononen, July 2009.
+*/
+
+#ifndef MEMALLOC_H
+#define MEMALLOC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "tesselator.h"
+
+struct BucketAlloc *createBucketAlloc( TESSalloc* alloc, const char *name,
+ unsigned int itemSize, unsigned int bucketSize );
+void *bucketAlloc( struct BucketAlloc *ba);
+void bucketFree( struct BucketAlloc *ba, void *ptr );
+void deleteBucketAlloc( struct BucketAlloc *ba );
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/dict.c b/submodules/LottieMeshSwift/libtess2/Sources/dict.c
new file mode 100755
index 0000000000..650adda21d
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/dict.c
@@ -0,0 +1,109 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#include
+#include "../Include/tesselator.h"
+#include "bucketalloc.h"
+#include "dict.h"
+
+/* really tessDictListNewDict */
+Dict *dictNewDict( TESSalloc* alloc, void *frame, int (*leq)(void *frame, DictKey key1, DictKey key2) )
+{
+ Dict *dict = (Dict *)alloc->memalloc( alloc->userData, sizeof( Dict ));
+ DictNode *head;
+
+ if (dict == NULL) return NULL;
+
+ head = &dict->head;
+
+ head->key = NULL;
+ head->next = head;
+ head->prev = head;
+
+ dict->frame = frame;
+ dict->leq = leq;
+
+ if (alloc->dictNodeBucketSize < 16)
+ alloc->dictNodeBucketSize = 16;
+ if (alloc->dictNodeBucketSize > 4096)
+ alloc->dictNodeBucketSize = 4096;
+ dict->nodePool = createBucketAlloc( alloc, "Dict", sizeof(DictNode), alloc->dictNodeBucketSize );
+
+ return dict;
+}
+
+/* really tessDictListDeleteDict */
+void dictDeleteDict( TESSalloc* alloc, Dict *dict )
+{
+ deleteBucketAlloc( dict->nodePool );
+ alloc->memfree( alloc->userData, dict );
+}
+
+/* really tessDictListInsertBefore */
+DictNode *dictInsertBefore( Dict *dict, DictNode *node, DictKey key )
+{
+ DictNode *newNode;
+
+ do {
+ node = node->prev;
+ } while( node->key != NULL && ! (*dict->leq)(dict->frame, node->key, key));
+
+ newNode = (DictNode *)bucketAlloc( dict->nodePool );
+ if (newNode == NULL) return NULL;
+
+ newNode->key = key;
+ newNode->next = node->next;
+ node->next->prev = newNode;
+ newNode->prev = node;
+ node->next = newNode;
+
+ return newNode;
+}
+
+/* really tessDictListDelete */
+void dictDelete( Dict *dict, DictNode *node ) /*ARGSUSED*/
+{
+ node->next->prev = node->prev;
+ node->prev->next = node->next;
+ bucketFree( dict->nodePool, node );
+}
+
+/* really tessDictListSearch */
+DictNode *dictSearch( Dict *dict, DictKey key )
+{
+ DictNode *node = &dict->head;
+
+ do {
+ node = node->next;
+ } while( node->key != NULL && ! (*dict->leq)(dict->frame, key, node->key));
+
+ return node;
+}
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/dict.h b/submodules/LottieMeshSwift/libtess2/Sources/dict.h
new file mode 100755
index 0000000000..4cf322657b
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/dict.h
@@ -0,0 +1,74 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#ifndef DICT_LIST_H
+#define DICT_LIST_H
+
+typedef void *DictKey;
+typedef struct Dict Dict;
+typedef struct DictNode DictNode;
+
+Dict *dictNewDict( TESSalloc* alloc, void *frame, int (*leq)(void *frame, DictKey key1, DictKey key2) );
+
+void dictDeleteDict( TESSalloc* alloc, Dict *dict );
+
+/* Search returns the node with the smallest key greater than or equal
+* to the given key. If there is no such key, returns a node whose
+* key is NULL. Similarly, Succ(Max(d)) has a NULL key, etc.
+*/
+DictNode *dictSearch( Dict *dict, DictKey key );
+DictNode *dictInsertBefore( Dict *dict, DictNode *node, DictKey key );
+void dictDelete( Dict *dict, DictNode *node );
+
+#define dictKey(n) ((n)->key)
+#define dictSucc(n) ((n)->next)
+#define dictPred(n) ((n)->prev)
+#define dictMin(d) ((d)->head.next)
+#define dictMax(d) ((d)->head.prev)
+#define dictInsert(d,k) (dictInsertBefore((d),&(d)->head,(k)))
+
+
+/*** Private data structures ***/
+
+struct DictNode {
+ DictKey key;
+ DictNode *next;
+ DictNode *prev;
+};
+
+struct Dict {
+ DictNode head;
+ void *frame;
+ struct BucketAlloc *nodePool;
+ int (*leq)(void *frame, DictKey key1, DictKey key2);
+};
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/geom.c b/submodules/LottieMeshSwift/libtess2/Sources/geom.c
new file mode 100755
index 0000000000..66005540d4
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/geom.c
@@ -0,0 +1,293 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+//#include "tesos.h"
+#include
+#include "mesh.h"
+#include "geom.h"
+#include
+
+int tesvertLeq( TESSvertex *u, TESSvertex *v )
+{
+ /* Returns TRUE if u is lexicographically <= v. */
+
+ return VertLeq( u, v );
+}
+
+TESSreal tesedgeEval( TESSvertex *u, TESSvertex *v, TESSvertex *w )
+{
+ /* Given three vertices u,v,w such that VertLeq(u,v) && VertLeq(v,w),
+ * evaluates the t-coord of the edge uw at the s-coord of the vertex v.
+ * Returns v->t - (uw)(v->s), ie. the signed distance from uw to v.
+ * If uw is vertical (and thus passes thru v), the result is zero.
+ *
+ * The calculation is extremely accurate and stable, even when v
+ * is very close to u or w. In particular if we set v->t = 0 and
+ * let r be the negated result (this evaluates (uw)(v->s)), then
+ * r is guaranteed to satisfy MIN(u->t,w->t) <= r <= MAX(u->t,w->t).
+ */
+ TESSreal gapL, gapR;
+
+ assert( VertLeq( u, v ) && VertLeq( v, w ));
+
+ gapL = v->s - u->s;
+ gapR = w->s - v->s;
+
+ if( gapL + gapR > 0 ) {
+ if( gapL < gapR ) {
+ return (v->t - u->t) + (u->t - w->t) * (gapL / (gapL + gapR));
+ } else {
+ return (v->t - w->t) + (w->t - u->t) * (gapR / (gapL + gapR));
+ }
+ }
+ /* vertical line */
+ return 0;
+}
+
+TESSreal tesedgeSign( TESSvertex *u, TESSvertex *v, TESSvertex *w )
+{
+ /* Returns a number whose sign matches EdgeEval(u,v,w) but which
+ * is cheaper to evaluate. Returns > 0, == 0 , or < 0
+ * as v is above, on, or below the edge uw.
+ */
+ TESSreal gapL, gapR;
+
+ assert( VertLeq( u, v ) && VertLeq( v, w ));
+
+ gapL = v->s - u->s;
+ gapR = w->s - v->s;
+
+ if( gapL + gapR > 0 ) {
+ return (v->t - w->t) * gapL + (v->t - u->t) * gapR;
+ }
+ /* vertical line */
+ return 0;
+}
+
+
+/***********************************************************************
+* Define versions of EdgeSign, EdgeEval with s and t transposed.
+*/
+
+TESSreal testransEval( TESSvertex *u, TESSvertex *v, TESSvertex *w )
+{
+ /* Given three vertices u,v,w such that TransLeq(u,v) && TransLeq(v,w),
+ * evaluates the t-coord of the edge uw at the s-coord of the vertex v.
+ * Returns v->s - (uw)(v->t), ie. the signed distance from uw to v.
+ * If uw is vertical (and thus passes thru v), the result is zero.
+ *
+ * The calculation is extremely accurate and stable, even when v
+ * is very close to u or w. In particular if we set v->s = 0 and
+ * let r be the negated result (this evaluates (uw)(v->t)), then
+ * r is guaranteed to satisfy MIN(u->s,w->s) <= r <= MAX(u->s,w->s).
+ */
+ TESSreal gapL, gapR;
+
+ assert( TransLeq( u, v ) && TransLeq( v, w ));
+
+ gapL = v->t - u->t;
+ gapR = w->t - v->t;
+
+ if( gapL + gapR > 0 ) {
+ if( gapL < gapR ) {
+ return (v->s - u->s) + (u->s - w->s) * (gapL / (gapL + gapR));
+ } else {
+ return (v->s - w->s) + (w->s - u->s) * (gapR / (gapL + gapR));
+ }
+ }
+ /* vertical line */
+ return 0;
+}
+
+TESSreal testransSign( TESSvertex *u, TESSvertex *v, TESSvertex *w )
+{
+ /* Returns a number whose sign matches TransEval(u,v,w) but which
+ * is cheaper to evaluate. Returns > 0, == 0 , or < 0
+ * as v is above, on, or below the edge uw.
+ */
+ TESSreal gapL, gapR;
+
+ assert( TransLeq( u, v ) && TransLeq( v, w ));
+
+ gapL = v->t - u->t;
+ gapR = w->t - v->t;
+
+ if( gapL + gapR > 0 ) {
+ return (v->s - w->s) * gapL + (v->s - u->s) * gapR;
+ }
+ /* vertical line */
+ return 0;
+}
+
+
+int tesvertCCW( TESSvertex *u, TESSvertex *v, TESSvertex *w )
+{
+ /* For almost-degenerate situations, the results are not reliable.
+ * Unless the floating-point arithmetic can be performed without
+ * rounding errors, *any* implementation will give incorrect results
+ * on some degenerate inputs, so the client must have some way to
+ * handle this situation.
+ */
+ return (u->s*(v->t - w->t) + v->s*(w->t - u->t) + w->s*(u->t - v->t)) >= 0;
+}
+
+/* Given parameters a,x,b,y returns the value (b*x+a*y)/(a+b),
+* or (x+y)/2 if a==b==0. It requires that a,b >= 0, and enforces
+* this in the rare case that one argument is slightly negative.
+* The implementation is extremely stable numerically.
+* In particular it guarantees that the result r satisfies
+* MIN(x,y) <= r <= MAX(x,y), and the results are very accurate
+* even when a and b differ greatly in magnitude.
+*/
+#define RealInterpolate(a,x,b,y) \
+ (a = (a < 0) ? 0 : a, b = (b < 0) ? 0 : b, \
+ ((a <= b) ? ((b == 0) ? ((x+y) / 2) \
+ : (x + (y-x) * (a/(a+b)))) \
+ : (y + (x-y) * (b/(a+b)))))
+
+#ifndef FOR_TRITE_TEST_PROGRAM
+#define Interpolate(a,x,b,y) RealInterpolate(a,x,b,y)
+#else
+
+/* Claim: the ONLY property the sweep algorithm relies on is that
+* MIN(x,y) <= r <= MAX(x,y). This is a nasty way to test that.
+*/
+#include
+extern int RandomInterpolate;
+
+double Interpolate( double a, double x, double b, double y)
+{
+ printf("*********************%d\n",RandomInterpolate);
+ if( RandomInterpolate ) {
+ a = 1.2 * drand48() - 0.1;
+ a = (a < 0) ? 0 : ((a > 1) ? 1 : a);
+ b = 1.0 - a;
+ }
+ return RealInterpolate(a,x,b,y);
+}
+
+#endif
+
+#define Swap(a,b) if (1) { TESSvertex *t = a; a = b; b = t; } else
+
+void tesedgeIntersect( TESSvertex *o1, TESSvertex *d1,
+ TESSvertex *o2, TESSvertex *d2,
+ TESSvertex *v )
+ /* Given edges (o1,d1) and (o2,d2), compute their point of intersection.
+ * The computed point is guaranteed to lie in the intersection of the
+ * bounding rectangles defined by each edge.
+ */
+{
+ TESSreal z1, z2;
+
+ /* This is certainly not the most efficient way to find the intersection
+ * of two line segments, but it is very numerically stable.
+ *
+ * Strategy: find the two middle vertices in the VertLeq ordering,
+ * and interpolate the intersection s-value from these. Then repeat
+ * using the TransLeq ordering to find the intersection t-value.
+ */
+
+ if( ! VertLeq( o1, d1 )) { Swap( o1, d1 ); }
+ if( ! VertLeq( o2, d2 )) { Swap( o2, d2 ); }
+ if( ! VertLeq( o1, o2 )) { Swap( o1, o2 ); Swap( d1, d2 ); }
+
+ if( ! VertLeq( o2, d1 )) {
+ /* Technically, no intersection -- do our best */
+ v->s = (o2->s + d1->s) / 2;
+ } else if( VertLeq( d1, d2 )) {
+ /* Interpolate between o2 and d1 */
+ z1 = EdgeEval( o1, o2, d1 );
+ z2 = EdgeEval( o2, d1, d2 );
+ if( z1+z2 < 0 ) { z1 = -z1; z2 = -z2; }
+ v->s = Interpolate( z1, o2->s, z2, d1->s );
+ } else {
+ /* Interpolate between o2 and d2 */
+ z1 = EdgeSign( o1, o2, d1 );
+ z2 = -EdgeSign( o1, d2, d1 );
+ if( z1+z2 < 0 ) { z1 = -z1; z2 = -z2; }
+ v->s = Interpolate( z1, o2->s, z2, d2->s );
+ }
+
+ /* Now repeat the process for t */
+
+ if( ! TransLeq( o1, d1 )) { Swap( o1, d1 ); }
+ if( ! TransLeq( o2, d2 )) { Swap( o2, d2 ); }
+ if( ! TransLeq( o1, o2 )) { Swap( o1, o2 ); Swap( d1, d2 ); }
+
+ if( ! TransLeq( o2, d1 )) {
+ /* Technically, no intersection -- do our best */
+ v->t = (o2->t + d1->t) / 2;
+ } else if( TransLeq( d1, d2 )) {
+ /* Interpolate between o2 and d1 */
+ z1 = TransEval( o1, o2, d1 );
+ z2 = TransEval( o2, d1, d2 );
+ if( z1+z2 < 0 ) { z1 = -z1; z2 = -z2; }
+ v->t = Interpolate( z1, o2->t, z2, d1->t );
+ } else {
+ /* Interpolate between o2 and d2 */
+ z1 = TransSign( o1, o2, d1 );
+ z2 = -TransSign( o1, d2, d1 );
+ if( z1+z2 < 0 ) { z1 = -z1; z2 = -z2; }
+ v->t = Interpolate( z1, o2->t, z2, d2->t );
+ }
+}
+
+TESSreal inCircle( TESSvertex *v, TESSvertex *v0, TESSvertex *v1, TESSvertex *v2 ) {
+ TESSreal adx, ady, bdx, bdy, cdx, cdy;
+ TESSreal abdet, bcdet, cadet;
+ TESSreal alift, blift, clift;
+
+ adx = v0->s - v->s;
+ ady = v0->t - v->t;
+ bdx = v1->s - v->s;
+ bdy = v1->t - v->t;
+ cdx = v2->s - v->s;
+ cdy = v2->t - v->t;
+
+ abdet = adx * bdy - bdx * ady;
+ bcdet = bdx * cdy - cdx * bdy;
+ cadet = cdx * ady - adx * cdy;
+
+ alift = adx * adx + ady * ady;
+ blift = bdx * bdx + bdy * bdy;
+ clift = cdx * cdx + cdy * cdy;
+
+ return alift * bcdet + blift * cadet + clift * abdet;
+}
+
+/*
+ Returns 1 is edge is locally delaunay
+ */
+int tesedgeIsLocallyDelaunay( TESShalfEdge *e )
+{
+ return inCircle(e->Sym->Lnext->Lnext->Org, e->Lnext->Org, e->Lnext->Lnext->Org, e->Org) < 0;
+}
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/geom.h b/submodules/LottieMeshSwift/libtess2/Sources/geom.h
new file mode 100755
index 0000000000..c29a932685
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/geom.h
@@ -0,0 +1,78 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#ifndef GEOM_H
+#define GEOM_H
+
+#include "mesh.h"
+
+#ifdef NO_BRANCH_CONDITIONS
+/* MIPS architecture has special instructions to evaluate boolean
+* conditions -- more efficient than branching, IF you can get the
+* compiler to generate the right instructions (SGI compiler doesn't)
+*/
+#define VertEq(u,v) (((u)->s == (v)->s) & ((u)->t == (v)->t))
+#define VertLeq(u,v) (((u)->s < (v)->s) | \
+ ((u)->s == (v)->s & (u)->t <= (v)->t))
+#else
+#define VertEq(u,v) ((u)->s == (v)->s && (u)->t == (v)->t)
+#define VertLeq(u,v) (((u)->s < (v)->s) || ((u)->s == (v)->s && (u)->t <= (v)->t))
+#endif
+
+#define EdgeEval(u,v,w) tesedgeEval(u,v,w)
+#define EdgeSign(u,v,w) tesedgeSign(u,v,w)
+
+/* Versions of VertLeq, EdgeSign, EdgeEval with s and t transposed. */
+
+#define TransLeq(u,v) (((u)->t < (v)->t) || ((u)->t == (v)->t && (u)->s <= (v)->s))
+#define TransEval(u,v,w) testransEval(u,v,w)
+#define TransSign(u,v,w) testransSign(u,v,w)
+
+
+#define EdgeGoesLeft(e) VertLeq( (e)->Dst, (e)->Org )
+#define EdgeGoesRight(e) VertLeq( (e)->Org, (e)->Dst )
+#define EdgeIsInternal(e) e->Rface && e->Rface->inside
+
+#define ABS(x) ((x) < 0 ? -(x) : (x))
+#define VertL1dist(u,v) (ABS(u->s - v->s) + ABS(u->t - v->t))
+
+#define VertCCW(u,v,w) tesvertCCW(u,v,w)
+
+int tesvertLeq( TESSvertex *u, TESSvertex *v );
+TESSreal tesedgeEval( TESSvertex *u, TESSvertex *v, TESSvertex *w );
+TESSreal tesedgeSign( TESSvertex *u, TESSvertex *v, TESSvertex *w );
+TESSreal testransEval( TESSvertex *u, TESSvertex *v, TESSvertex *w );
+TESSreal testransSign( TESSvertex *u, TESSvertex *v, TESSvertex *w );
+int tesvertCCW( TESSvertex *u, TESSvertex *v, TESSvertex *w );
+void tesedgeIntersect( TESSvertex *o1, TESSvertex *d1, TESSvertex *o2, TESSvertex *d2, TESSvertex *v );
+int tesedgeIsLocallyDelaunay( TESShalfEdge *e );
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/mesh.c b/submodules/LottieMeshSwift/libtess2/Sources/mesh.c
new file mode 100755
index 0000000000..a0fa08e577
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/mesh.c
@@ -0,0 +1,917 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+//#include "tesos.h"
+#include
+#include
+#include "mesh.h"
+#include "geom.h"
+#include "bucketalloc.h"
+
+#define TRUE 1
+#define FALSE 0
+
+/************************ Utility Routines ************************/
+
+/* Allocate and free half-edges in pairs for efficiency.
+* The *only* place that should use this fact is allocation/free.
+*/
+typedef struct { TESShalfEdge e, eSym; } EdgePair;
+
+/* MakeEdge creates a new pair of half-edges which form their own loop.
+* No vertex or face structures are allocated, but these must be assigned
+* before the current edge operation is completed.
+*/
+static TESShalfEdge *MakeEdge( TESSmesh* mesh, TESShalfEdge *eNext )
+{
+ TESShalfEdge *e;
+ TESShalfEdge *eSym;
+ TESShalfEdge *ePrev;
+ EdgePair *pair = (EdgePair *)bucketAlloc( mesh->edgeBucket );
+ if (pair == NULL) return NULL;
+
+ e = &pair->e;
+ eSym = &pair->eSym;
+
+ /* Make sure eNext points to the first edge of the edge pair */
+ if( eNext->Sym < eNext ) { eNext = eNext->Sym; }
+
+ /* Insert in circular doubly-linked list before eNext.
+ * Note that the prev pointer is stored in Sym->next.
+ */
+ ePrev = eNext->Sym->next;
+ eSym->next = ePrev;
+ ePrev->Sym->next = e;
+ e->next = eNext;
+ eNext->Sym->next = eSym;
+
+ e->Sym = eSym;
+ e->Onext = e;
+ e->Lnext = eSym;
+ e->Org = NULL;
+ e->Lface = NULL;
+ e->winding = 0;
+ e->activeRegion = NULL;
+ e->mark = 0;
+
+ eSym->Sym = e;
+ eSym->Onext = eSym;
+ eSym->Lnext = e;
+ eSym->Org = NULL;
+ eSym->Lface = NULL;
+ eSym->winding = 0;
+ eSym->activeRegion = NULL;
+ eSym->mark = 0;
+
+ return e;
+}
+
+/* Splice( a, b ) is best described by the Guibas/Stolfi paper or the
+* CS348a notes (see mesh.h). Basically it modifies the mesh so that
+* a->Onext and b->Onext are exchanged. This can have various effects
+* depending on whether a and b belong to different face or vertex rings.
+* For more explanation see tessMeshSplice() below.
+*/
+static void Splice( TESShalfEdge *a, TESShalfEdge *b )
+{
+ TESShalfEdge *aOnext = a->Onext;
+ TESShalfEdge *bOnext = b->Onext;
+
+ aOnext->Sym->Lnext = b;
+ bOnext->Sym->Lnext = a;
+ a->Onext = bOnext;
+ b->Onext = aOnext;
+}
+
+/* MakeVertex( newVertex, eOrig, vNext ) attaches a new vertex and makes it the
+* origin of all edges in the vertex loop to which eOrig belongs. "vNext" gives
+* a place to insert the new vertex in the global vertex list. We insert
+* the new vertex *before* vNext so that algorithms which walk the vertex
+* list will not see the newly created vertices.
+*/
+static void MakeVertex( TESSvertex *newVertex,
+ TESShalfEdge *eOrig, TESSvertex *vNext )
+{
+ TESShalfEdge *e;
+ TESSvertex *vPrev;
+ TESSvertex *vNew = newVertex;
+
+ assert(vNew != NULL);
+
+ /* insert in circular doubly-linked list before vNext */
+ vPrev = vNext->prev;
+ vNew->prev = vPrev;
+ vPrev->next = vNew;
+ vNew->next = vNext;
+ vNext->prev = vNew;
+
+ vNew->anEdge = eOrig;
+ /* leave coords, s, t undefined */
+
+ /* fix other edges on this vertex loop */
+ e = eOrig;
+ do {
+ e->Org = vNew;
+ e = e->Onext;
+ } while( e != eOrig );
+}
+
+/* MakeFace( newFace, eOrig, fNext ) attaches a new face and makes it the left
+* face of all edges in the face loop to which eOrig belongs. "fNext" gives
+* a place to insert the new face in the global face list. We insert
+* the new face *before* fNext so that algorithms which walk the face
+* list will not see the newly created faces.
+*/
+static void MakeFace( TESSface *newFace, TESShalfEdge *eOrig, TESSface *fNext )
+{
+ TESShalfEdge *e;
+ TESSface *fPrev;
+ TESSface *fNew = newFace;
+
+ assert(fNew != NULL);
+
+ /* insert in circular doubly-linked list before fNext */
+ fPrev = fNext->prev;
+ fNew->prev = fPrev;
+ fPrev->next = fNew;
+ fNew->next = fNext;
+ fNext->prev = fNew;
+
+ fNew->anEdge = eOrig;
+ fNew->trail = NULL;
+ fNew->marked = FALSE;
+
+ /* The new face is marked "inside" if the old one was. This is a
+ * convenience for the common case where a face has been split in two.
+ */
+ fNew->inside = fNext->inside;
+
+ /* fix other edges on this face loop */
+ e = eOrig;
+ do {
+ e->Lface = fNew;
+ e = e->Lnext;
+ } while( e != eOrig );
+}
+
+/* KillEdge( eDel ) destroys an edge (the half-edges eDel and eDel->Sym),
+* and removes from the global edge list.
+*/
+static void KillEdge( TESSmesh *mesh, TESShalfEdge *eDel )
+{
+ TESShalfEdge *ePrev, *eNext;
+
+ /* Half-edges are allocated in pairs, see EdgePair above */
+ if( eDel->Sym < eDel ) { eDel = eDel->Sym; }
+
+ /* delete from circular doubly-linked list */
+ eNext = eDel->next;
+ ePrev = eDel->Sym->next;
+ eNext->Sym->next = ePrev;
+ ePrev->Sym->next = eNext;
+
+ bucketFree( mesh->edgeBucket, eDel );
+}
+
+
+/* KillVertex( vDel ) destroys a vertex and removes it from the global
+* vertex list. It updates the vertex loop to point to a given new vertex.
+*/
+static void KillVertex( TESSmesh *mesh, TESSvertex *vDel, TESSvertex *newOrg )
+{
+ TESShalfEdge *e, *eStart = vDel->anEdge;
+ TESSvertex *vPrev, *vNext;
+
+ /* change the origin of all affected edges */
+ e = eStart;
+ do {
+ e->Org = newOrg;
+ e = e->Onext;
+ } while( e != eStart );
+
+ /* delete from circular doubly-linked list */
+ vPrev = vDel->prev;
+ vNext = vDel->next;
+ vNext->prev = vPrev;
+ vPrev->next = vNext;
+
+ bucketFree( mesh->vertexBucket, vDel );
+}
+
+/* KillFace( fDel ) destroys a face and removes it from the global face
+* list. It updates the face loop to point to a given new face.
+*/
+static void KillFace( TESSmesh *mesh, TESSface *fDel, TESSface *newLface )
+{
+ TESShalfEdge *e, *eStart = fDel->anEdge;
+ TESSface *fPrev, *fNext;
+
+ /* change the left face of all affected edges */
+ e = eStart;
+ do {
+ e->Lface = newLface;
+ e = e->Lnext;
+ } while( e != eStart );
+
+ /* delete from circular doubly-linked list */
+ fPrev = fDel->prev;
+ fNext = fDel->next;
+ fNext->prev = fPrev;
+ fPrev->next = fNext;
+
+ bucketFree( mesh->faceBucket, fDel );
+}
+
+
+/****************** Basic Edge Operations **********************/
+
+/* tessMeshMakeEdge creates one edge, two vertices, and a loop (face).
+* The loop consists of the two new half-edges.
+*/
+TESShalfEdge *tessMeshMakeEdge( TESSmesh *mesh )
+{
+ TESSvertex *newVertex1 = (TESSvertex*)bucketAlloc(mesh->vertexBucket);
+ TESSvertex *newVertex2 = (TESSvertex*)bucketAlloc(mesh->vertexBucket);
+ TESSface *newFace = (TESSface*)bucketAlloc(mesh->faceBucket);
+ TESShalfEdge *e;
+
+ /* if any one is null then all get freed */
+ if (newVertex1 == NULL || newVertex2 == NULL || newFace == NULL) {
+ if (newVertex1 != NULL) bucketFree( mesh->vertexBucket, newVertex1 );
+ if (newVertex2 != NULL) bucketFree( mesh->vertexBucket, newVertex2 );
+ if (newFace != NULL) bucketFree( mesh->faceBucket, newFace );
+ return NULL;
+ }
+
+ e = MakeEdge( mesh, &mesh->eHead );
+ if (e == NULL) return NULL;
+
+ MakeVertex( newVertex1, e, &mesh->vHead );
+ MakeVertex( newVertex2, e->Sym, &mesh->vHead );
+ MakeFace( newFace, e, &mesh->fHead );
+ return e;
+}
+
+
+/* tessMeshSplice( eOrg, eDst ) is the basic operation for changing the
+* mesh connectivity and topology. It changes the mesh so that
+* eOrg->Onext <- OLD( eDst->Onext )
+* eDst->Onext <- OLD( eOrg->Onext )
+* where OLD(...) means the value before the meshSplice operation.
+*
+* This can have two effects on the vertex structure:
+* - if eOrg->Org != eDst->Org, the two vertices are merged together
+* - if eOrg->Org == eDst->Org, the origin is split into two vertices
+* In both cases, eDst->Org is changed and eOrg->Org is untouched.
+*
+* Similarly (and independently) for the face structure,
+* - if eOrg->Lface == eDst->Lface, one loop is split into two
+* - if eOrg->Lface != eDst->Lface, two distinct loops are joined into one
+* In both cases, eDst->Lface is changed and eOrg->Lface is unaffected.
+*
+* Some special cases:
+* If eDst == eOrg, the operation has no effect.
+* If eDst == eOrg->Lnext, the new face will have a single edge.
+* If eDst == eOrg->Lprev, the old face will have a single edge.
+* If eDst == eOrg->Onext, the new vertex will have a single edge.
+* If eDst == eOrg->Oprev, the old vertex will have a single edge.
+*/
+int tessMeshSplice( TESSmesh* mesh, TESShalfEdge *eOrg, TESShalfEdge *eDst )
+{
+ int joiningLoops = FALSE;
+ int joiningVertices = FALSE;
+
+ if( eOrg == eDst ) return 1;
+
+ if( eDst->Org != eOrg->Org ) {
+ /* We are merging two disjoint vertices -- destroy eDst->Org */
+ joiningVertices = TRUE;
+ KillVertex( mesh, eDst->Org, eOrg->Org );
+ }
+ if( eDst->Lface != eOrg->Lface ) {
+ /* We are connecting two disjoint loops -- destroy eDst->Lface */
+ joiningLoops = TRUE;
+ KillFace( mesh, eDst->Lface, eOrg->Lface );
+ }
+
+ /* Change the edge structure */
+ Splice( eDst, eOrg );
+
+ if( ! joiningVertices ) {
+ TESSvertex *newVertex = (TESSvertex*)bucketAlloc( mesh->vertexBucket );
+ if (newVertex == NULL) return 0;
+
+ /* We split one vertex into two -- the new vertex is eDst->Org.
+ * Make sure the old vertex points to a valid half-edge.
+ */
+ MakeVertex( newVertex, eDst, eOrg->Org );
+ eOrg->Org->anEdge = eOrg;
+ }
+ if( ! joiningLoops ) {
+ TESSface *newFace = (TESSface*)bucketAlloc( mesh->faceBucket );
+ if (newFace == NULL) return 0;
+
+ /* We split one loop into two -- the new loop is eDst->Lface.
+ * Make sure the old face points to a valid half-edge.
+ */
+ MakeFace( newFace, eDst, eOrg->Lface );
+ eOrg->Lface->anEdge = eOrg;
+ }
+
+ return 1;
+}
+
+
+/* tessMeshDelete( eDel ) removes the edge eDel. There are several cases:
+* if (eDel->Lface != eDel->Rface), we join two loops into one; the loop
+* eDel->Lface is deleted. Otherwise, we are splitting one loop into two;
+* the newly created loop will contain eDel->Dst. If the deletion of eDel
+* would create isolated vertices, those are deleted as well.
+*
+* This function could be implemented as two calls to tessMeshSplice
+* plus a few calls to memFree, but this would allocate and delete
+* unnecessary vertices and faces.
+*/
+int tessMeshDelete( TESSmesh *mesh, TESShalfEdge *eDel )
+{
+ TESShalfEdge *eDelSym = eDel->Sym;
+ int joiningLoops = FALSE;
+
+ /* First step: disconnect the origin vertex eDel->Org. We make all
+ * changes to get a consistent mesh in this "intermediate" state.
+ */
+ if( eDel->Lface != eDel->Rface ) {
+ /* We are joining two loops into one -- remove the left face */
+ joiningLoops = TRUE;
+ KillFace( mesh, eDel->Lface, eDel->Rface );
+ }
+
+ if( eDel->Onext == eDel ) {
+ KillVertex( mesh, eDel->Org, NULL );
+ } else {
+ /* Make sure that eDel->Org and eDel->Rface point to valid half-edges */
+ eDel->Rface->anEdge = eDel->Oprev;
+ eDel->Org->anEdge = eDel->Onext;
+
+ Splice( eDel, eDel->Oprev );
+ if( ! joiningLoops ) {
+ TESSface *newFace= (TESSface*)bucketAlloc( mesh->faceBucket );
+ if (newFace == NULL) return 0;
+
+ /* We are splitting one loop into two -- create a new loop for eDel. */
+ MakeFace( newFace, eDel, eDel->Lface );
+ }
+ }
+
+ /* Claim: the mesh is now in a consistent state, except that eDel->Org
+ * may have been deleted. Now we disconnect eDel->Dst.
+ */
+ if( eDelSym->Onext == eDelSym ) {
+ KillVertex( mesh, eDelSym->Org, NULL );
+ KillFace( mesh, eDelSym->Lface, NULL );
+ } else {
+ /* Make sure that eDel->Dst and eDel->Lface point to valid half-edges */
+ eDel->Lface->anEdge = eDelSym->Oprev;
+ eDelSym->Org->anEdge = eDelSym->Onext;
+ Splice( eDelSym, eDelSym->Oprev );
+ }
+
+ /* Any isolated vertices or faces have already been freed. */
+ KillEdge( mesh, eDel );
+
+ return 1;
+}
+
+
+/******************** Other Edge Operations **********************/
+
+/* All these routines can be implemented with the basic edge
+* operations above. They are provided for convenience and efficiency.
+*/
+
+
+/* tessMeshAddEdgeVertex( eOrg ) creates a new edge eNew such that
+* eNew == eOrg->Lnext, and eNew->Dst is a newly created vertex.
+* eOrg and eNew will have the same left face.
+*/
+TESShalfEdge *tessMeshAddEdgeVertex( TESSmesh *mesh, TESShalfEdge *eOrg )
+{
+ TESShalfEdge *eNewSym;
+ TESShalfEdge *eNew = MakeEdge( mesh, eOrg );
+ if (eNew == NULL) return NULL;
+
+ eNewSym = eNew->Sym;
+
+ /* Connect the new edge appropriately */
+ Splice( eNew, eOrg->Lnext );
+
+ /* Set the vertex and face information */
+ eNew->Org = eOrg->Dst;
+ {
+ TESSvertex *newVertex= (TESSvertex*)bucketAlloc( mesh->vertexBucket );
+ if (newVertex == NULL) return NULL;
+
+ MakeVertex( newVertex, eNewSym, eNew->Org );
+ }
+ eNew->Lface = eNewSym->Lface = eOrg->Lface;
+
+ return eNew;
+}
+
+
+/* tessMeshSplitEdge( eOrg ) splits eOrg into two edges eOrg and eNew,
+* such that eNew == eOrg->Lnext. The new vertex is eOrg->Dst == eNew->Org.
+* eOrg and eNew will have the same left face.
+*/
+TESShalfEdge *tessMeshSplitEdge( TESSmesh *mesh, TESShalfEdge *eOrg )
+{
+ TESShalfEdge *eNew;
+ TESShalfEdge *tempHalfEdge= tessMeshAddEdgeVertex( mesh, eOrg );
+ if (tempHalfEdge == NULL) return NULL;
+
+ eNew = tempHalfEdge->Sym;
+
+ /* Disconnect eOrg from eOrg->Dst and connect it to eNew->Org */
+ Splice( eOrg->Sym, eOrg->Sym->Oprev );
+ Splice( eOrg->Sym, eNew );
+
+ /* Set the vertex and face information */
+ eOrg->Dst = eNew->Org;
+ eNew->Dst->anEdge = eNew->Sym; /* may have pointed to eOrg->Sym */
+ eNew->Rface = eOrg->Rface;
+ eNew->winding = eOrg->winding; /* copy old winding information */
+ eNew->Sym->winding = eOrg->Sym->winding;
+
+ return eNew;
+}
+
+
+/* tessMeshConnect( eOrg, eDst ) creates a new edge from eOrg->Dst
+* to eDst->Org, and returns the corresponding half-edge eNew.
+* If eOrg->Lface == eDst->Lface, this splits one loop into two,
+* and the newly created loop is eNew->Lface. Otherwise, two disjoint
+* loops are merged into one, and the loop eDst->Lface is destroyed.
+*
+* If (eOrg == eDst), the new face will have only two edges.
+* If (eOrg->Lnext == eDst), the old face is reduced to a single edge.
+* If (eOrg->Lnext->Lnext == eDst), the old face is reduced to two edges.
+*/
+TESShalfEdge *tessMeshConnect( TESSmesh *mesh, TESShalfEdge *eOrg, TESShalfEdge *eDst )
+{
+ TESShalfEdge *eNewSym;
+ int joiningLoops = FALSE;
+ TESShalfEdge *eNew = MakeEdge( mesh, eOrg );
+ if (eNew == NULL) return NULL;
+
+ eNewSym = eNew->Sym;
+
+ if( eDst->Lface != eOrg->Lface ) {
+ /* We are connecting two disjoint loops -- destroy eDst->Lface */
+ joiningLoops = TRUE;
+ KillFace( mesh, eDst->Lface, eOrg->Lface );
+ }
+
+ /* Connect the new edge appropriately */
+ Splice( eNew, eOrg->Lnext );
+ Splice( eNewSym, eDst );
+
+ /* Set the vertex and face information */
+ eNew->Org = eOrg->Dst;
+ eNewSym->Org = eDst->Org;
+ eNew->Lface = eNewSym->Lface = eOrg->Lface;
+
+ /* Make sure the old face points to a valid half-edge */
+ eOrg->Lface->anEdge = eNewSym;
+
+ if( ! joiningLoops ) {
+ TESSface *newFace= (TESSface*)bucketAlloc( mesh->faceBucket );
+ if (newFace == NULL) return NULL;
+
+ /* We split one loop into two -- the new loop is eNew->Lface */
+ MakeFace( newFace, eNew, eOrg->Lface );
+ }
+ return eNew;
+}
+
+
+/******************** Other Operations **********************/
+
+/* tessMeshZapFace( fZap ) destroys a face and removes it from the
+* global face list. All edges of fZap will have a NULL pointer as their
+* left face. Any edges which also have a NULL pointer as their right face
+* are deleted entirely (along with any isolated vertices this produces).
+* An entire mesh can be deleted by zapping its faces, one at a time,
+* in any order. Zapped faces cannot be used in further mesh operations!
+*/
+void tessMeshZapFace( TESSmesh *mesh, TESSface *fZap )
+{
+ TESShalfEdge *eStart = fZap->anEdge;
+ TESShalfEdge *e, *eNext, *eSym;
+ TESSface *fPrev, *fNext;
+
+ /* walk around face, deleting edges whose right face is also NULL */
+ eNext = eStart->Lnext;
+ do {
+ e = eNext;
+ eNext = e->Lnext;
+
+ e->Lface = NULL;
+ if( e->Rface == NULL ) {
+ /* delete the edge -- see TESSmeshDelete above */
+
+ if( e->Onext == e ) {
+ KillVertex( mesh, e->Org, NULL );
+ } else {
+ /* Make sure that e->Org points to a valid half-edge */
+ e->Org->anEdge = e->Onext;
+ Splice( e, e->Oprev );
+ }
+ eSym = e->Sym;
+ if( eSym->Onext == eSym ) {
+ KillVertex( mesh, eSym->Org, NULL );
+ } else {
+ /* Make sure that eSym->Org points to a valid half-edge */
+ eSym->Org->anEdge = eSym->Onext;
+ Splice( eSym, eSym->Oprev );
+ }
+ KillEdge( mesh, e );
+ }
+ } while( e != eStart );
+
+ /* delete from circular doubly-linked list */
+ fPrev = fZap->prev;
+ fNext = fZap->next;
+ fNext->prev = fPrev;
+ fPrev->next = fNext;
+
+ bucketFree( mesh->faceBucket, fZap );
+}
+
+
+/* tessMeshNewMesh() creates a new mesh with no edges, no vertices,
+* and no loops (what we usually call a "face").
+*/
+TESSmesh *tessMeshNewMesh( TESSalloc* alloc )
+{
+ TESSvertex *v;
+ TESSface *f;
+ TESShalfEdge *e;
+ TESShalfEdge *eSym;
+ TESSmesh *mesh = (TESSmesh *)alloc->memalloc( alloc->userData, sizeof( TESSmesh ));
+ if (mesh == NULL) {
+ return NULL;
+ }
+
+ if (alloc->meshEdgeBucketSize < 16)
+ alloc->meshEdgeBucketSize = 16;
+ if (alloc->meshEdgeBucketSize > 4096)
+ alloc->meshEdgeBucketSize = 4096;
+
+ if (alloc->meshVertexBucketSize < 16)
+ alloc->meshVertexBucketSize = 16;
+ if (alloc->meshVertexBucketSize > 4096)
+ alloc->meshVertexBucketSize = 4096;
+
+ if (alloc->meshFaceBucketSize < 16)
+ alloc->meshFaceBucketSize = 16;
+ if (alloc->meshFaceBucketSize > 4096)
+ alloc->meshFaceBucketSize = 4096;
+
+ mesh->edgeBucket = createBucketAlloc( alloc, "Mesh Edges", sizeof(EdgePair), alloc->meshEdgeBucketSize );
+ mesh->vertexBucket = createBucketAlloc( alloc, "Mesh Vertices", sizeof(TESSvertex), alloc->meshVertexBucketSize );
+ mesh->faceBucket = createBucketAlloc( alloc, "Mesh Faces", sizeof(TESSface), alloc->meshFaceBucketSize );
+
+ v = &mesh->vHead;
+ f = &mesh->fHead;
+ e = &mesh->eHead;
+ eSym = &mesh->eHeadSym;
+
+ v->next = v->prev = v;
+ v->anEdge = NULL;
+
+ f->next = f->prev = f;
+ f->anEdge = NULL;
+ f->trail = NULL;
+ f->marked = FALSE;
+ f->inside = FALSE;
+
+ e->next = e;
+ e->Sym = eSym;
+ e->Onext = NULL;
+ e->Lnext = NULL;
+ e->Org = NULL;
+ e->Lface = NULL;
+ e->winding = 0;
+ e->activeRegion = NULL;
+
+ eSym->next = eSym;
+ eSym->Sym = e;
+ eSym->Onext = NULL;
+ eSym->Lnext = NULL;
+ eSym->Org = NULL;
+ eSym->Lface = NULL;
+ eSym->winding = 0;
+ eSym->activeRegion = NULL;
+
+ return mesh;
+}
+
+
+/* tessMeshUnion( mesh1, mesh2 ) forms the union of all structures in
+* both meshes, and returns the new mesh (the old meshes are destroyed).
+*/
+TESSmesh *tessMeshUnion( TESSalloc* alloc, TESSmesh *mesh1, TESSmesh *mesh2 )
+{
+ TESSface *f1 = &mesh1->fHead;
+ TESSvertex *v1 = &mesh1->vHead;
+ TESShalfEdge *e1 = &mesh1->eHead;
+ TESSface *f2 = &mesh2->fHead;
+ TESSvertex *v2 = &mesh2->vHead;
+ TESShalfEdge *e2 = &mesh2->eHead;
+
+ /* Add the faces, vertices, and edges of mesh2 to those of mesh1 */
+ if( f2->next != f2 ) {
+ f1->prev->next = f2->next;
+ f2->next->prev = f1->prev;
+ f2->prev->next = f1;
+ f1->prev = f2->prev;
+ }
+
+ if( v2->next != v2 ) {
+ v1->prev->next = v2->next;
+ v2->next->prev = v1->prev;
+ v2->prev->next = v1;
+ v1->prev = v2->prev;
+ }
+
+ if( e2->next != e2 ) {
+ e1->Sym->next->Sym->next = e2->next;
+ e2->next->Sym->next = e1->Sym->next;
+ e2->Sym->next->Sym->next = e1;
+ e1->Sym->next = e2->Sym->next;
+ }
+
+ alloc->memfree( alloc->userData, mesh2 );
+ return mesh1;
+}
+
+
+static int CountFaceVerts( TESSface *f )
+{
+ TESShalfEdge *eCur = f->anEdge;
+ int n = 0;
+ do
+ {
+ n++;
+ eCur = eCur->Lnext;
+ }
+ while (eCur != f->anEdge);
+ return n;
+}
+
+int tessMeshMergeConvexFaces( TESSmesh *mesh, int maxVertsPerFace )
+{
+ TESShalfEdge *e, *eNext, *eSym;
+ TESShalfEdge *eHead = &mesh->eHead;
+ TESSvertex *va, *vb, *vc, *vd, *ve, *vf;
+ int leftNv, rightNv;
+
+ for( e = eHead->next; e != eHead; e = eNext )
+ {
+ eNext = e->next;
+ eSym = e->Sym;
+ if( !eSym )
+ continue;
+
+ // Both faces must be inside
+ if( !e->Lface || !e->Lface->inside )
+ continue;
+ if( !eSym->Lface || !eSym->Lface->inside )
+ continue;
+
+ leftNv = CountFaceVerts( e->Lface );
+ rightNv = CountFaceVerts( eSym->Lface );
+ if( (leftNv+rightNv-2) > maxVertsPerFace )
+ continue;
+
+ // Merge if the resulting poly is convex.
+ //
+ // vf--ve--vd
+ // ^|
+ // left e || right
+ // |v
+ // va--vb--vc
+
+ va = e->Lprev->Org;
+ vb = e->Org;
+ vc = e->Sym->Lnext->Dst;
+
+ vd = e->Sym->Lprev->Org;
+ ve = e->Sym->Org;
+ vf = e->Lnext->Dst;
+
+ if( VertCCW( va, vb, vc ) && VertCCW( vd, ve, vf ) ) {
+ if( e == eNext || e == eNext->Sym ) { eNext = eNext->next; }
+ if( !tessMeshDelete( mesh, e ) )
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+void tessMeshFlipEdge( TESSmesh *mesh, TESShalfEdge *edge )
+{
+ TESShalfEdge *a0 = edge;
+ TESShalfEdge *a1 = a0->Lnext;
+ TESShalfEdge *a2 = a1->Lnext;
+ TESShalfEdge *b0 = edge->Sym;
+ TESShalfEdge *b1 = b0->Lnext;
+ TESShalfEdge *b2 = b1->Lnext;
+
+ TESSvertex *aOrg = a0->Org;
+ TESSvertex *aOpp = a2->Org;
+ TESSvertex *bOrg = b0->Org;
+ TESSvertex *bOpp = b2->Org;
+
+ TESSface *fa = a0->Lface;
+ TESSface *fb = b0->Lface;
+
+ assert(EdgeIsInternal(edge));
+ assert(a2->Lnext == a0);
+ assert(b2->Lnext == b0);
+
+ a0->Org = bOpp;
+ a0->Onext = b1->Sym;
+ b0->Org = aOpp;
+ b0->Onext = a1->Sym;
+ a2->Onext = b0;
+ b2->Onext = a0;
+ b1->Onext = a2->Sym;
+ a1->Onext = b2->Sym;
+
+ a0->Lnext = a2;
+ a2->Lnext = b1;
+ b1->Lnext = a0;
+
+ b0->Lnext = b2;
+ b2->Lnext = a1;
+ a1->Lnext = b0;
+
+ a1->Lface = fb;
+ b1->Lface = fa;
+
+ fa->anEdge = a0;
+ fb->anEdge = b0;
+
+ if (aOrg->anEdge == a0) aOrg->anEdge = b1;
+ if (bOrg->anEdge == b0) bOrg->anEdge = a1;
+
+ assert( a0->Lnext->Onext->Sym == a0 );
+ assert( a0->Onext->Sym->Lnext == a0 );
+ assert( a0->Org->anEdge->Org == a0->Org );
+
+
+ assert( a1->Lnext->Onext->Sym == a1 );
+ assert( a1->Onext->Sym->Lnext == a1 );
+ assert( a1->Org->anEdge->Org == a1->Org );
+
+ assert( a2->Lnext->Onext->Sym == a2 );
+ assert( a2->Onext->Sym->Lnext == a2 );
+ assert( a2->Org->anEdge->Org == a2->Org );
+
+ assert( b0->Lnext->Onext->Sym == b0 );
+ assert( b0->Onext->Sym->Lnext == b0 );
+ assert( b0->Org->anEdge->Org == b0->Org );
+
+ assert( b1->Lnext->Onext->Sym == b1 );
+ assert( b1->Onext->Sym->Lnext == b1 );
+ assert( b1->Org->anEdge->Org == b1->Org );
+
+ assert( b2->Lnext->Onext->Sym == b2 );
+ assert( b2->Onext->Sym->Lnext == b2 );
+ assert( b2->Org->anEdge->Org == b2->Org );
+
+ assert(aOrg->anEdge->Org == aOrg);
+ assert(bOrg->anEdge->Org == bOrg);
+
+ assert(a0->Oprev->Onext->Org == a0->Org);
+}
+
+#ifdef DELETE_BY_ZAPPING
+
+/* tessMeshDeleteMesh( mesh ) will free all storage for any valid mesh.
+*/
+void tessMeshDeleteMesh( TESSalloc* alloc, TESSmesh *mesh )
+{
+ TESSface *fHead = &mesh->fHead;
+
+ while( fHead->next != fHead ) {
+ tessMeshZapFace( fHead->next );
+ }
+ assert( mesh->vHead.next == &mesh->vHead );
+
+ alloc->memfree( alloc->userData, mesh );
+}
+
+#else
+
+/* tessMeshDeleteMesh( mesh ) will free all storage for any valid mesh.
+*/
+void tessMeshDeleteMesh( TESSalloc* alloc, TESSmesh *mesh )
+{
+ deleteBucketAlloc(mesh->edgeBucket);
+ deleteBucketAlloc(mesh->vertexBucket);
+ deleteBucketAlloc(mesh->faceBucket);
+
+ alloc->memfree( alloc->userData, mesh );
+}
+
+#endif
+
+#ifndef NDEBUG
+
+/* tessMeshCheckMesh( mesh ) checks a mesh for self-consistency.
+*/
+void tessMeshCheckMesh( TESSmesh *mesh )
+{
+ TESSface *fHead = &mesh->fHead;
+ TESSvertex *vHead = &mesh->vHead;
+ TESShalfEdge *eHead = &mesh->eHead;
+ TESSface *f, *fPrev;
+ TESSvertex *v, *vPrev;
+ TESShalfEdge *e, *ePrev;
+
+ for( fPrev = fHead ; (f = fPrev->next) != fHead; fPrev = f) {
+ assert( f->prev == fPrev );
+ e = f->anEdge;
+ do {
+ assert( e->Sym != e );
+ assert( e->Sym->Sym == e );
+ assert( e->Lnext->Onext->Sym == e );
+ assert( e->Onext->Sym->Lnext == e );
+ assert( e->Lface == f );
+ e = e->Lnext;
+ } while( e != f->anEdge );
+ }
+ assert( f->prev == fPrev && f->anEdge == NULL );
+
+ for( vPrev = vHead ; (v = vPrev->next) != vHead; vPrev = v) {
+ assert( v->prev == vPrev );
+ e = v->anEdge;
+ do {
+ assert( e->Sym != e );
+ assert( e->Sym->Sym == e );
+ assert( e->Lnext->Onext->Sym == e );
+ assert( e->Onext->Sym->Lnext == e );
+ assert( e->Org == v );
+ e = e->Onext;
+ } while( e != v->anEdge );
+ }
+ assert( v->prev == vPrev && v->anEdge == NULL );
+
+ for( ePrev = eHead ; (e = ePrev->next) != eHead; ePrev = e) {
+ assert( e->Sym->next == ePrev->Sym );
+ assert( e->Sym != e );
+ assert( e->Sym->Sym == e );
+ assert( e->Org != NULL );
+ assert( e->Dst != NULL );
+ assert( e->Lnext->Onext->Sym == e );
+ assert( e->Onext->Sym->Lnext == e );
+ }
+ assert( e->Sym->next == ePrev->Sym
+ && e->Sym == &mesh->eHeadSym
+ && e->Sym->Sym == e
+ && e->Org == NULL && e->Dst == NULL
+ && e->Lface == NULL && e->Rface == NULL );
+}
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/mesh.h b/submodules/LottieMeshSwift/libtess2/Sources/mesh.h
new file mode 100755
index 0000000000..479c66f369
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/mesh.h
@@ -0,0 +1,269 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#ifndef MESH_H
+#define MESH_H
+
+#include "../Include/tesselator.h"
+
+typedef struct TESSmesh TESSmesh;
+typedef struct TESSvertex TESSvertex;
+typedef struct TESSface TESSface;
+typedef struct TESShalfEdge TESShalfEdge;
+typedef struct ActiveRegion ActiveRegion;
+
+/* The mesh structure is similar in spirit, notation, and operations
+* to the "quad-edge" structure (see L. Guibas and J. Stolfi, Primitives
+* for the manipulation of general subdivisions and the computation of
+* Voronoi diagrams, ACM Transactions on Graphics, 4(2):74-123, April 1985).
+* For a simplified description, see the course notes for CS348a,
+* "Mathematical Foundations of Computer Graphics", available at the
+* Stanford bookstore (and taught during the fall quarter).
+* The implementation also borrows a tiny subset of the graph-based approach
+* use in Mantyla's Geometric Work Bench (see M. Mantyla, An Introduction
+* to Sold Modeling, Computer Science Press, Rockville, Maryland, 1988).
+*
+* The fundamental data structure is the "half-edge". Two half-edges
+* go together to make an edge, but they point in opposite directions.
+* Each half-edge has a pointer to its mate (the "symmetric" half-edge Sym),
+* its origin vertex (Org), the face on its left side (Lface), and the
+* adjacent half-edges in the CCW direction around the origin vertex
+* (Onext) and around the left face (Lnext). There is also a "next"
+* pointer for the global edge list (see below).
+*
+* The notation used for mesh navigation:
+* Sym = the mate of a half-edge (same edge, but opposite direction)
+* Onext = edge CCW around origin vertex (keep same origin)
+* Dnext = edge CCW around destination vertex (keep same dest)
+* Lnext = edge CCW around left face (dest becomes new origin)
+* Rnext = edge CCW around right face (origin becomes new dest)
+*
+* "prev" means to substitute CW for CCW in the definitions above.
+*
+* The mesh keeps global lists of all vertices, faces, and edges,
+* stored as doubly-linked circular lists with a dummy header node.
+* The mesh stores pointers to these dummy headers (vHead, fHead, eHead).
+*
+* The circular edge list is special; since half-edges always occur
+* in pairs (e and e->Sym), each half-edge stores a pointer in only
+* one direction. Starting at eHead and following the e->next pointers
+* will visit each *edge* once (ie. e or e->Sym, but not both).
+* e->Sym stores a pointer in the opposite direction, thus it is
+* always true that e->Sym->next->Sym->next == e.
+*
+* Each vertex has a pointer to next and previous vertices in the
+* circular list, and a pointer to a half-edge with this vertex as
+* the origin (NULL if this is the dummy header). There is also a
+* field "data" for client data.
+*
+* Each face has a pointer to the next and previous faces in the
+* circular list, and a pointer to a half-edge with this face as
+* the left face (NULL if this is the dummy header). There is also
+* a field "data" for client data.
+*
+* Note that what we call a "face" is really a loop; faces may consist
+* of more than one loop (ie. not simply connected), but there is no
+* record of this in the data structure. The mesh may consist of
+* several disconnected regions, so it may not be possible to visit
+* the entire mesh by starting at a half-edge and traversing the edge
+* structure.
+*
+* The mesh does NOT support isolated vertices; a vertex is deleted along
+* with its last edge. Similarly when two faces are merged, one of the
+* faces is deleted (see tessMeshDelete below). For mesh operations,
+* all face (loop) and vertex pointers must not be NULL. However, once
+* mesh manipulation is finished, TESSmeshZapFace can be used to delete
+* faces of the mesh, one at a time. All external faces can be "zapped"
+* before the mesh is returned to the client; then a NULL face indicates
+* a region which is not part of the output polygon.
+*/
+
+struct TESSvertex {
+ TESSvertex *next; /* next vertex (never NULL) */
+ TESSvertex *prev; /* previous vertex (never NULL) */
+ TESShalfEdge *anEdge; /* a half-edge with this origin */
+
+ /* Internal data (keep hidden) */
+ TESSreal coords[3]; /* vertex location in 3D */
+ TESSreal s, t; /* projection onto the sweep plane */
+ int pqHandle; /* to allow deletion from priority queue */
+ TESSindex n; /* to allow identify unique vertices */
+ TESSindex idx; /* to allow map result to original verts */
+};
+
+struct TESSface {
+ TESSface *next; /* next face (never NULL) */
+ TESSface *prev; /* previous face (never NULL) */
+ TESShalfEdge *anEdge; /* a half edge with this left face */
+
+ /* Internal data (keep hidden) */
+ TESSface *trail; /* "stack" for conversion to strips */
+ TESSindex n; /* to allow identiy unique faces */
+ char marked; /* flag for conversion to strips */
+ char inside; /* this face is in the polygon interior */
+};
+
+struct TESShalfEdge {
+ TESShalfEdge *next; /* doubly-linked list (prev==Sym->next) */
+ TESShalfEdge *Sym; /* same edge, opposite direction */
+ TESShalfEdge *Onext; /* next edge CCW around origin */
+ TESShalfEdge *Lnext; /* next edge CCW around left face */
+ TESSvertex *Org; /* origin vertex (Overtex too long) */
+ TESSface *Lface; /* left face */
+
+ /* Internal data (keep hidden) */
+ ActiveRegion *activeRegion; /* a region with this upper edge (sweep.c) */
+ int winding; /* change in winding number when crossing
+ from the right face to the left face */
+ int mark; /* Used by the Edge Flip algorithm */
+};
+
+#define Rface Sym->Lface
+#define Dst Sym->Org
+
+#define Oprev Sym->Lnext
+#define Lprev Onext->Sym
+#define Dprev Lnext->Sym
+#define Rprev Sym->Onext
+#define Dnext Rprev->Sym /* 3 pointers */
+#define Rnext Oprev->Sym /* 3 pointers */
+
+struct TESSmesh {
+ TESSvertex vHead; /* dummy header for vertex list */
+ TESSface fHead; /* dummy header for face list */
+ TESShalfEdge eHead; /* dummy header for edge list */
+ TESShalfEdge eHeadSym; /* and its symmetric counterpart */
+
+ struct BucketAlloc* edgeBucket;
+ struct BucketAlloc* vertexBucket;
+ struct BucketAlloc* faceBucket;
+};
+
+/* The mesh operations below have three motivations: completeness,
+* convenience, and efficiency. The basic mesh operations are MakeEdge,
+* Splice, and Delete. All the other edge operations can be implemented
+* in terms of these. The other operations are provided for convenience
+* and/or efficiency.
+*
+* When a face is split or a vertex is added, they are inserted into the
+* global list *before* the existing vertex or face (ie. e->Org or e->Lface).
+* This makes it easier to process all vertices or faces in the global lists
+* without worrying about processing the same data twice. As a convenience,
+* when a face is split, the "inside" flag is copied from the old face.
+* Other internal data (v->data, v->activeRegion, f->data, f->marked,
+* f->trail, e->winding) is set to zero.
+*
+* ********************** Basic Edge Operations **************************
+*
+* tessMeshMakeEdge( mesh ) creates one edge, two vertices, and a loop.
+* The loop (face) consists of the two new half-edges.
+*
+* tessMeshSplice( eOrg, eDst ) is the basic operation for changing the
+* mesh connectivity and topology. It changes the mesh so that
+* eOrg->Onext <- OLD( eDst->Onext )
+* eDst->Onext <- OLD( eOrg->Onext )
+* where OLD(...) means the value before the meshSplice operation.
+*
+* This can have two effects on the vertex structure:
+* - if eOrg->Org != eDst->Org, the two vertices are merged together
+* - if eOrg->Org == eDst->Org, the origin is split into two vertices
+* In both cases, eDst->Org is changed and eOrg->Org is untouched.
+*
+* Similarly (and independently) for the face structure,
+* - if eOrg->Lface == eDst->Lface, one loop is split into two
+* - if eOrg->Lface != eDst->Lface, two distinct loops are joined into one
+* In both cases, eDst->Lface is changed and eOrg->Lface is unaffected.
+*
+* tessMeshDelete( eDel ) removes the edge eDel. There are several cases:
+* if (eDel->Lface != eDel->Rface), we join two loops into one; the loop
+* eDel->Lface is deleted. Otherwise, we are splitting one loop into two;
+* the newly created loop will contain eDel->Dst. If the deletion of eDel
+* would create isolated vertices, those are deleted as well.
+*
+* ********************** Other Edge Operations **************************
+*
+* tessMeshAddEdgeVertex( eOrg ) creates a new edge eNew such that
+* eNew == eOrg->Lnext, and eNew->Dst is a newly created vertex.
+* eOrg and eNew will have the same left face.
+*
+* tessMeshSplitEdge( eOrg ) splits eOrg into two edges eOrg and eNew,
+* such that eNew == eOrg->Lnext. The new vertex is eOrg->Dst == eNew->Org.
+* eOrg and eNew will have the same left face.
+*
+* tessMeshConnect( eOrg, eDst ) creates a new edge from eOrg->Dst
+* to eDst->Org, and returns the corresponding half-edge eNew.
+* If eOrg->Lface == eDst->Lface, this splits one loop into two,
+* and the newly created loop is eNew->Lface. Otherwise, two disjoint
+* loops are merged into one, and the loop eDst->Lface is destroyed.
+*
+* ************************ Other Operations *****************************
+*
+* tessMeshNewMesh() creates a new mesh with no edges, no vertices,
+* and no loops (what we usually call a "face").
+*
+* tessMeshUnion( mesh1, mesh2 ) forms the union of all structures in
+* both meshes, and returns the new mesh (the old meshes are destroyed).
+*
+* tessMeshDeleteMesh( mesh ) will free all storage for any valid mesh.
+*
+* tessMeshZapFace( fZap ) destroys a face and removes it from the
+* global face list. All edges of fZap will have a NULL pointer as their
+* left face. Any edges which also have a NULL pointer as their right face
+* are deleted entirely (along with any isolated vertices this produces).
+* An entire mesh can be deleted by zapping its faces, one at a time,
+* in any order. Zapped faces cannot be used in further mesh operations!
+*
+* tessMeshCheckMesh( mesh ) checks a mesh for self-consistency.
+*/
+
+TESShalfEdge *tessMeshMakeEdge( TESSmesh *mesh );
+int tessMeshSplice( TESSmesh *mesh, TESShalfEdge *eOrg, TESShalfEdge *eDst );
+int tessMeshDelete( TESSmesh *mesh, TESShalfEdge *eDel );
+
+TESShalfEdge *tessMeshAddEdgeVertex( TESSmesh *mesh, TESShalfEdge *eOrg );
+TESShalfEdge *tessMeshSplitEdge( TESSmesh *mesh, TESShalfEdge *eOrg );
+TESShalfEdge *tessMeshConnect( TESSmesh *mesh, TESShalfEdge *eOrg, TESShalfEdge *eDst );
+
+TESSmesh *tessMeshNewMesh( TESSalloc* alloc );
+TESSmesh *tessMeshUnion( TESSalloc* alloc, TESSmesh *mesh1, TESSmesh *mesh2 );
+int tessMeshMergeConvexFaces( TESSmesh *mesh, int maxVertsPerFace );
+void tessMeshDeleteMesh( TESSalloc* alloc, TESSmesh *mesh );
+void tessMeshZapFace( TESSmesh *mesh, TESSface *fZap );
+
+void tessMeshFlipEdge( TESSmesh *mesh, TESShalfEdge *edge );
+
+#ifdef NDEBUG
+#define tessMeshCheckMesh( mesh )
+#else
+void tessMeshCheckMesh( TESSmesh *mesh );
+#endif
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/priorityq.c b/submodules/LottieMeshSwift/libtess2/Sources/priorityq.c
new file mode 100755
index 0000000000..62a6654535
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/priorityq.c
@@ -0,0 +1,514 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+//#include "tesos.h"
+#include
+#include
+#include "../Include/tesselator.h"
+#include "priorityq.h"
+
+
+#define INIT_SIZE 32
+
+#define TRUE 1
+#define FALSE 0
+
+#ifdef FOR_TRITE_TEST_PROGRAM
+#define LEQ(x,y) (*pq->leq)(x,y)
+#else
+/* Violates modularity, but a little faster */
+#include "geom.h"
+#define LEQ(x,y) VertLeq((TESSvertex *)x, (TESSvertex *)y)
+#endif
+
+
+/* Include all the code for the regular heap-based queue here. */
+
+/* The basic operations are insertion of a new key (pqInsert),
+* and examination/extraction of a key whose value is minimum
+* (pqMinimum/pqExtractMin). Deletion is also allowed (pqDelete);
+* for this purpose pqInsert returns a "handle" which is supplied
+* as the argument.
+*
+* An initial heap may be created efficiently by calling pqInsert
+* repeatedly, then calling pqInit. In any case pqInit must be called
+* before any operations other than pqInsert are used.
+*
+* If the heap is empty, pqMinimum/pqExtractMin will return a NULL key.
+* This may also be tested with pqIsEmpty.
+*/
+
+
+/* Since we support deletion the data structure is a little more
+* complicated than an ordinary heap. "nodes" is the heap itself;
+* active nodes are stored in the range 1..pq->size. When the
+* heap exceeds its allocated size (pq->max), its size doubles.
+* The children of node i are nodes 2i and 2i+1.
+*
+* Each node stores an index into an array "handles". Each handle
+* stores a key, plus a pointer back to the node which currently
+* represents that key (ie. nodes[handles[i].node].handle == i).
+*/
+
+
+#define pqHeapMinimum(pq) ((pq)->handles[(pq)->nodes[1].handle].key)
+#define pqHeapIsEmpty(pq) ((pq)->size == 0)
+
+
+
+/* really pqHeapNewPriorityQHeap */
+PriorityQHeap *pqHeapNewPriorityQ( TESSalloc* alloc, int size, int (*leq)(PQkey key1, PQkey key2) )
+{
+ PriorityQHeap *pq = (PriorityQHeap *)alloc->memalloc( alloc->userData, sizeof( PriorityQHeap ));
+ if (pq == NULL) return NULL;
+
+ pq->size = 0;
+ pq->max = size;
+ pq->nodes = (PQnode *)alloc->memalloc( alloc->userData, (size + 1) * sizeof(pq->nodes[0]) );
+ if (pq->nodes == NULL) {
+ alloc->memfree( alloc->userData, pq );
+ return NULL;
+ }
+
+ pq->handles = (PQhandleElem *)alloc->memalloc( alloc->userData, (size + 1) * sizeof(pq->handles[0]) );
+ if (pq->handles == NULL) {
+ alloc->memfree( alloc->userData, pq->nodes );
+ alloc->memfree( alloc->userData, pq );
+ return NULL;
+ }
+
+ pq->initialized = FALSE;
+ pq->freeList = 0;
+ pq->leq = leq;
+
+ pq->nodes[1].handle = 1; /* so that Minimum() returns NULL */
+ pq->handles[1].key = NULL;
+ return pq;
+}
+
+/* really pqHeapDeletePriorityQHeap */
+void pqHeapDeletePriorityQ( TESSalloc* alloc, PriorityQHeap *pq )
+{
+ alloc->memfree( alloc->userData, pq->handles );
+ alloc->memfree( alloc->userData, pq->nodes );
+ alloc->memfree( alloc->userData, pq );
+}
+
+
+static void FloatDown( PriorityQHeap *pq, int curr )
+{
+ PQnode *n = pq->nodes;
+ PQhandleElem *h = pq->handles;
+ PQhandle hCurr, hChild;
+ int child;
+
+ hCurr = n[curr].handle;
+ for( ;; ) {
+ child = curr << 1;
+ if( child < pq->size && LEQ( h[n[child+1].handle].key,
+ h[n[child].handle].key )) {
+ ++child;
+ }
+
+ assert(child <= pq->max);
+
+ hChild = n[child].handle;
+ if( child > pq->size || LEQ( h[hCurr].key, h[hChild].key )) {
+ n[curr].handle = hCurr;
+ h[hCurr].node = curr;
+ break;
+ }
+ n[curr].handle = hChild;
+ h[hChild].node = curr;
+ curr = child;
+ }
+}
+
+
+static void FloatUp( PriorityQHeap *pq, int curr )
+{
+ PQnode *n = pq->nodes;
+ PQhandleElem *h = pq->handles;
+ PQhandle hCurr, hParent;
+ int parent;
+
+ hCurr = n[curr].handle;
+ for( ;; ) {
+ parent = curr >> 1;
+ hParent = n[parent].handle;
+ if( parent == 0 || LEQ( h[hParent].key, h[hCurr].key )) {
+ n[curr].handle = hCurr;
+ h[hCurr].node = curr;
+ break;
+ }
+ n[curr].handle = hParent;
+ h[hParent].node = curr;
+ curr = parent;
+ }
+}
+
+/* really pqHeapInit */
+void pqHeapInit( PriorityQHeap *pq )
+{
+ int i;
+
+ /* This method of building a heap is O(n), rather than O(n lg n). */
+
+ for( i = pq->size; i >= 1; --i ) {
+ FloatDown( pq, i );
+ }
+ pq->initialized = TRUE;
+}
+
+/* really pqHeapInsert */
+/* returns INV_HANDLE iff out of memory */
+PQhandle pqHeapInsert( TESSalloc* alloc, PriorityQHeap *pq, PQkey keyNew )
+{
+ int curr;
+ PQhandle free;
+
+ curr = ++ pq->size;
+ if( (curr*2) > pq->max ) {
+ if (!alloc->memrealloc)
+ {
+ return INV_HANDLE;
+ }
+ else
+ {
+ PQnode *saveNodes= pq->nodes;
+ PQhandleElem *saveHandles= pq->handles;
+
+ // If the heap overflows, double its size.
+ pq->max <<= 1;
+ pq->nodes = (PQnode *)alloc->memrealloc( alloc->userData, pq->nodes,
+ (size_t)((pq->max + 1) * sizeof( pq->nodes[0] )));
+ if (pq->nodes == NULL) {
+ pq->nodes = saveNodes; // restore ptr to free upon return
+ return INV_HANDLE;
+ }
+ pq->handles = (PQhandleElem *)alloc->memrealloc( alloc->userData, pq->handles,
+ (size_t) ((pq->max + 1) * sizeof( pq->handles[0] )));
+ if (pq->handles == NULL) {
+ pq->handles = saveHandles; // restore ptr to free upon return
+ return INV_HANDLE;
+ }
+ }
+ }
+
+ if( pq->freeList == 0 ) {
+ free = curr;
+ } else {
+ free = pq->freeList;
+ pq->freeList = pq->handles[free].node;
+ }
+
+ pq->nodes[curr].handle = free;
+ pq->handles[free].node = curr;
+ pq->handles[free].key = keyNew;
+
+ if( pq->initialized ) {
+ FloatUp( pq, curr );
+ }
+ assert(free != INV_HANDLE);
+ return free;
+}
+
+/* really pqHeapExtractMin */
+PQkey pqHeapExtractMin( PriorityQHeap *pq )
+{
+ PQnode *n = pq->nodes;
+ PQhandleElem *h = pq->handles;
+ PQhandle hMin = n[1].handle;
+ PQkey min = h[hMin].key;
+
+ if( pq->size > 0 ) {
+ n[1].handle = n[pq->size].handle;
+ h[n[1].handle].node = 1;
+
+ h[hMin].key = NULL;
+ h[hMin].node = pq->freeList;
+ pq->freeList = hMin;
+
+ if( -- pq->size > 0 ) {
+ FloatDown( pq, 1 );
+ }
+ }
+ return min;
+}
+
+/* really pqHeapDelete */
+void pqHeapDelete( PriorityQHeap *pq, PQhandle hCurr )
+{
+ PQnode *n = pq->nodes;
+ PQhandleElem *h = pq->handles;
+ int curr;
+
+ assert( hCurr >= 1 && hCurr <= pq->max && h[hCurr].key != NULL );
+
+ curr = h[hCurr].node;
+ n[curr].handle = n[pq->size].handle;
+ h[n[curr].handle].node = curr;
+
+ if( curr <= -- pq->size ) {
+ if( curr <= 1 || LEQ( h[n[curr>>1].handle].key, h[n[curr].handle].key )) {
+ FloatDown( pq, curr );
+ } else {
+ FloatUp( pq, curr );
+ }
+ }
+ h[hCurr].key = NULL;
+ h[hCurr].node = pq->freeList;
+ pq->freeList = hCurr;
+}
+
+
+
+/* Now redefine all the function names to map to their "Sort" versions. */
+
+/* really tessPqSortNewPriorityQ */
+PriorityQ *pqNewPriorityQ( TESSalloc* alloc, int size, int (*leq)(PQkey key1, PQkey key2) )
+{
+ PriorityQ *pq = (PriorityQ *)alloc->memalloc( alloc->userData, sizeof( PriorityQ ));
+ if (pq == NULL) return NULL;
+
+ pq->heap = pqHeapNewPriorityQ( alloc, size, leq );
+ if (pq->heap == NULL) {
+ alloc->memfree( alloc->userData, pq );
+ return NULL;
+ }
+
+// pq->keys = (PQkey *)memAlloc( INIT_SIZE * sizeof(pq->keys[0]) );
+ pq->keys = (PQkey *)alloc->memalloc( alloc->userData, size * sizeof(pq->keys[0]) );
+ if (pq->keys == NULL) {
+ pqHeapDeletePriorityQ( alloc, pq->heap );
+ alloc->memfree( alloc->userData, pq );
+ return NULL;
+ }
+
+ pq->size = 0;
+ pq->max = size; //INIT_SIZE;
+ pq->initialized = FALSE;
+ pq->leq = leq;
+
+ return pq;
+}
+
+/* really tessPqSortDeletePriorityQ */
+void pqDeletePriorityQ( TESSalloc* alloc, PriorityQ *pq )
+{
+ assert(pq != NULL);
+ if (pq->heap != NULL) pqHeapDeletePriorityQ( alloc, pq->heap );
+ if (pq->order != NULL) alloc->memfree( alloc->userData, pq->order );
+ if (pq->keys != NULL) alloc->memfree( alloc->userData, pq->keys );
+ alloc->memfree( alloc->userData, pq );
+}
+
+
+#define LT(x,y) (! LEQ(y,x))
+#define GT(x,y) (! LEQ(x,y))
+#define Swap(a,b) if(1){PQkey *tmp = *a; *a = *b; *b = tmp;}else
+
+/* really tessPqSortInit */
+int pqInit( TESSalloc* alloc, PriorityQ *pq )
+{
+ PQkey **p, **r, **i, **j, *piv;
+ struct { PQkey **p, **r; } Stack[50], *top = Stack;
+ unsigned int seed = 2016473283;
+
+ /* Create an array of indirect pointers to the keys, so that we
+ * the handles we have returned are still valid.
+ */
+ /*
+ pq->order = (PQkey **)memAlloc( (size_t)
+ (pq->size * sizeof(pq->order[0])) );
+ */
+ pq->order = (PQkey **)alloc->memalloc( alloc->userData,
+ (size_t)((pq->size+1) * sizeof(pq->order[0])) );
+ /* the previous line is a patch to compensate for the fact that IBM */
+ /* machines return a null on a malloc of zero bytes (unlike SGI), */
+ /* so we have to put in this defense to guard against a memory */
+ /* fault four lines down. from fossum@austin.ibm.com. */
+ if (pq->order == NULL) return 0;
+
+ p = pq->order;
+ r = p + pq->size - 1;
+ for( piv = pq->keys, i = p; i <= r; ++piv, ++i ) {
+ *i = piv;
+ }
+
+ /* Sort the indirect pointers in descending order,
+ * using randomized Quicksort
+ */
+ top->p = p; top->r = r; ++top;
+ while( --top >= Stack ) {
+ p = top->p;
+ r = top->r;
+ while( r > p + 10 ) {
+ seed = seed * 1539415821 + 1;
+ i = p + seed % (r - p + 1);
+ piv = *i;
+ *i = *p;
+ *p = piv;
+ i = p - 1;
+ j = r + 1;
+ do {
+ do { ++i; } while( GT( **i, *piv ));
+ do { --j; } while( LT( **j, *piv ));
+ Swap( i, j );
+ } while( i < j );
+ Swap( i, j ); /* Undo last swap */
+ if( i - p < r - j ) {
+ top->p = j+1; top->r = r; ++top;
+ r = i-1;
+ } else {
+ top->p = p; top->r = i-1; ++top;
+ p = j+1;
+ }
+ }
+ /* Insertion sort small lists */
+ for( i = p+1; i <= r; ++i ) {
+ piv = *i;
+ for( j = i; j > p && LT( **(j-1), *piv ); --j ) {
+ *j = *(j-1);
+ }
+ *j = piv;
+ }
+ }
+ pq->max = pq->size;
+ pq->initialized = TRUE;
+ pqHeapInit( pq->heap ); /* always succeeds */
+
+#ifndef NDEBUG
+ p = pq->order;
+ r = p + pq->size - 1;
+ for( i = p; i < r; ++i ) {
+ assert( LEQ( **(i+1), **i ));
+ }
+#endif
+
+ return 1;
+}
+
+/* really tessPqSortInsert */
+/* returns INV_HANDLE iff out of memory */
+PQhandle pqInsert( TESSalloc* alloc, PriorityQ *pq, PQkey keyNew )
+{
+ int curr;
+
+ if( pq->initialized ) {
+ return pqHeapInsert( alloc, pq->heap, keyNew );
+ }
+ curr = pq->size;
+ if( ++ pq->size >= pq->max ) {
+ if (!alloc->memrealloc)
+ {
+ return INV_HANDLE;
+ }
+ else
+ {
+ PQkey *saveKey= pq->keys;
+ // If the heap overflows, double its size.
+ pq->max <<= 1;
+ pq->keys = (PQkey *)alloc->memrealloc( alloc->userData, pq->keys,
+ (size_t)(pq->max * sizeof( pq->keys[0] )));
+ if (pq->keys == NULL) {
+ pq->keys = saveKey; // restore ptr to free upon return
+ return INV_HANDLE;
+ }
+ }
+ }
+ assert(curr != INV_HANDLE);
+ pq->keys[curr] = keyNew;
+
+ /* Negative handles index the sorted array. */
+ return -(curr+1);
+}
+
+/* really tessPqSortExtractMin */
+PQkey pqExtractMin( PriorityQ *pq )
+{
+ PQkey sortMin, heapMin;
+
+ if( pq->size == 0 ) {
+ return pqHeapExtractMin( pq->heap );
+ }
+ sortMin = *(pq->order[pq->size-1]);
+ if( ! pqHeapIsEmpty( pq->heap )) {
+ heapMin = pqHeapMinimum( pq->heap );
+ if( LEQ( heapMin, sortMin )) {
+ return pqHeapExtractMin( pq->heap );
+ }
+ }
+ do {
+ -- pq->size;
+ } while( pq->size > 0 && *(pq->order[pq->size-1]) == NULL );
+ return sortMin;
+}
+
+/* really tessPqSortMinimum */
+PQkey pqMinimum( PriorityQ *pq )
+{
+ PQkey sortMin, heapMin;
+
+ if( pq->size == 0 ) {
+ return pqHeapMinimum( pq->heap );
+ }
+ sortMin = *(pq->order[pq->size-1]);
+ if( ! pqHeapIsEmpty( pq->heap )) {
+ heapMin = pqHeapMinimum( pq->heap );
+ if( LEQ( heapMin, sortMin )) {
+ return heapMin;
+ }
+ }
+ return sortMin;
+}
+
+/* really tessPqSortIsEmpty */
+int pqIsEmpty( PriorityQ *pq )
+{
+ return (pq->size == 0) && pqHeapIsEmpty( pq->heap );
+}
+
+/* really tessPqSortDelete */
+void pqDelete( PriorityQ *pq, PQhandle curr )
+{
+ if( curr >= 0 ) {
+ pqHeapDelete( pq->heap, curr );
+ return;
+ }
+ curr = -(curr+1);
+ assert( curr < pq->max && pq->keys[curr] != NULL );
+
+ pq->keys[curr] = NULL;
+ while( pq->size > 0 && *(pq->order[pq->size-1]) == NULL ) {
+ -- pq->size;
+ }
+}
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/priorityq.h b/submodules/LottieMeshSwift/libtess2/Sources/priorityq.h
new file mode 100755
index 0000000000..6ef1c05f56
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/priorityq.h
@@ -0,0 +1,104 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#ifndef PRIORITYQ_H
+#define PRIORITYQ_H
+
+/* The basic operations are insertion of a new key (pqInsert),
+* and examination/extraction of a key whose value is minimum
+* (pqMinimum/pqExtractMin). Deletion is also allowed (pqDelete);
+* for this purpose pqInsert returns a "handle" which is supplied
+* as the argument.
+*
+* An initial heap may be created efficiently by calling pqInsert
+* repeatedly, then calling pqInit. In any case pqInit must be called
+* before any operations other than pqInsert are used.
+*
+* If the heap is empty, pqMinimum/pqExtractMin will return a NULL key.
+* This may also be tested with pqIsEmpty.
+*/
+
+/* Since we support deletion the data structure is a little more
+* complicated than an ordinary heap. "nodes" is the heap itself;
+* active nodes are stored in the range 1..pq->size. When the
+* heap exceeds its allocated size (pq->max), its size doubles.
+* The children of node i are nodes 2i and 2i+1.
+*
+* Each node stores an index into an array "handles". Each handle
+* stores a key, plus a pointer back to the node which currently
+* represents that key (ie. nodes[handles[i].node].handle == i).
+*/
+
+typedef void *PQkey;
+typedef int PQhandle;
+typedef struct PriorityQHeap PriorityQHeap;
+
+#define INV_HANDLE 0x0fffffff
+
+typedef struct { PQhandle handle; } PQnode;
+typedef struct { PQkey key; PQhandle node; } PQhandleElem;
+
+struct PriorityQHeap {
+
+ PQnode *nodes;
+ PQhandleElem *handles;
+ int size, max;
+ PQhandle freeList;
+ int initialized;
+
+ int (*leq)(PQkey key1, PQkey key2);
+};
+
+typedef struct PriorityQ PriorityQ;
+
+struct PriorityQ {
+ PriorityQHeap *heap;
+
+ PQkey *keys;
+ PQkey **order;
+ PQhandle size, max;
+ int initialized;
+
+ int (*leq)(PQkey key1, PQkey key2);
+};
+
+PriorityQ *pqNewPriorityQ( TESSalloc* alloc, int size, int (*leq)(PQkey key1, PQkey key2) );
+void pqDeletePriorityQ( TESSalloc* alloc, PriorityQ *pq );
+
+int pqInit( TESSalloc* alloc, PriorityQ *pq );
+PQhandle pqInsert( TESSalloc* alloc, PriorityQ *pq, PQkey key );
+PQkey pqExtractMin( PriorityQ *pq );
+void pqDelete( PriorityQ *pq, PQhandle handle );
+
+PQkey pqMinimum( PriorityQ *pq );
+int pqIsEmpty( PriorityQ *pq );
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/sweep.c b/submodules/LottieMeshSwift/libtess2/Sources/sweep.c
new file mode 100755
index 0000000000..32a56bf406
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/sweep.c
@@ -0,0 +1,1324 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#include
+#include
+#include /* longjmp */
+
+#include "mesh.h"
+#include "geom.h"
+#include "tess.h"
+#include "dict.h"
+#include "priorityq.h"
+#include "bucketalloc.h"
+#include "sweep.h"
+
+#define TRUE 1
+#define FALSE 0
+
+#ifdef FOR_TRITE_TEST_PROGRAM
+extern void DebugEvent( TESStesselator *tess );
+#else
+#define DebugEvent( tess )
+#endif
+
+/*
+* Invariants for the Edge Dictionary.
+* - each pair of adjacent edges e2=Succ(e1) satisfies EdgeLeq(e1,e2)
+* at any valid location of the sweep event
+* - if EdgeLeq(e2,e1) as well (at any valid sweep event), then e1 and e2
+* share a common endpoint
+* - for each e, e->Dst has been processed, but not e->Org
+* - each edge e satisfies VertLeq(e->Dst,event) && VertLeq(event,e->Org)
+* where "event" is the current sweep line event.
+* - no edge e has zero length
+*
+* Invariants for the Mesh (the processed portion).
+* - the portion of the mesh left of the sweep line is a planar graph,
+* ie. there is *some* way to embed it in the plane
+* - no processed edge has zero length
+* - no two processed vertices have identical coordinates
+* - each "inside" region is monotone, ie. can be broken into two chains
+* of monotonically increasing vertices according to VertLeq(v1,v2)
+* - a non-invariant: these chains may intersect (very slightly)
+*
+* Invariants for the Sweep.
+* - if none of the edges incident to the event vertex have an activeRegion
+* (ie. none of these edges are in the edge dictionary), then the vertex
+* has only right-going edges.
+* - if an edge is marked "fixUpperEdge" (it is a temporary edge introduced
+* by ConnectRightVertex), then it is the only right-going edge from
+* its associated vertex. (This says that these edges exist only
+* when it is necessary.)
+*/
+
+#define MAX(x,y) ((x) >= (y) ? (x) : (y))
+#define MIN(x,y) ((x) <= (y) ? (x) : (y))
+
+/* When we merge two edges into one, we need to compute the combined
+* winding of the new edge.
+*/
+#define AddWinding(eDst,eSrc) (eDst->winding += eSrc->winding, \
+ eDst->Sym->winding += eSrc->Sym->winding)
+
+static void SweepEvent( TESStesselator *tess, TESSvertex *vEvent );
+static void WalkDirtyRegions( TESStesselator *tess, ActiveRegion *regUp );
+static int CheckForRightSplice( TESStesselator *tess, ActiveRegion *regUp );
+
+static int EdgeLeq( TESStesselator *tess, ActiveRegion *reg1, ActiveRegion *reg2 )
+/*
+* Both edges must be directed from right to left (this is the canonical
+* direction for the upper edge of each region).
+*
+* The strategy is to evaluate a "t" value for each edge at the
+* current sweep line position, given by tess->event. The calculations
+* are designed to be very stable, but of course they are not perfect.
+*
+* Special case: if both edge destinations are at the sweep event,
+* we sort the edges by slope (they would otherwise compare equally).
+*/
+{
+ TESSvertex *event = tess->event;
+ TESShalfEdge *e1, *e2;
+ TESSreal t1, t2;
+
+ e1 = reg1->eUp;
+ e2 = reg2->eUp;
+
+ if( e1->Dst == event ) {
+ if( e2->Dst == event ) {
+ /* Two edges right of the sweep line which meet at the sweep event.
+ * Sort them by slope.
+ */
+ if( VertLeq( e1->Org, e2->Org )) {
+ return EdgeSign( e2->Dst, e1->Org, e2->Org ) <= 0;
+ }
+ return EdgeSign( e1->Dst, e2->Org, e1->Org ) >= 0;
+ }
+ return EdgeSign( e2->Dst, event, e2->Org ) <= 0;
+ }
+ if( e2->Dst == event ) {
+ return EdgeSign( e1->Dst, event, e1->Org ) >= 0;
+ }
+
+ /* General case - compute signed distance *from* e1, e2 to event */
+ t1 = EdgeEval( e1->Dst, event, e1->Org );
+ t2 = EdgeEval( e2->Dst, event, e2->Org );
+ return (t1 >= t2);
+}
+
+
+static void DeleteRegion( TESStesselator *tess, ActiveRegion *reg )
+{
+ if( reg->fixUpperEdge ) {
+ /* It was created with zero winding number, so it better be
+ * deleted with zero winding number (ie. it better not get merged
+ * with a real edge).
+ */
+ assert( reg->eUp->winding == 0 );
+ }
+ reg->eUp->activeRegion = NULL;
+ dictDelete( tess->dict, reg->nodeUp );
+ bucketFree( tess->regionPool, reg );
+}
+
+
+static int FixUpperEdge( TESStesselator *tess, ActiveRegion *reg, TESShalfEdge *newEdge )
+/*
+* Replace an upper edge which needs fixing (see ConnectRightVertex).
+*/
+{
+ assert( reg->fixUpperEdge );
+ if ( !tessMeshDelete( tess->mesh, reg->eUp ) ) return 0;
+ reg->fixUpperEdge = FALSE;
+ reg->eUp = newEdge;
+ newEdge->activeRegion = reg;
+
+ return 1;
+}
+
+static ActiveRegion *TopLeftRegion( TESStesselator *tess, ActiveRegion *reg )
+{
+ TESSvertex *org = reg->eUp->Org;
+ TESShalfEdge *e;
+
+ /* Find the region above the uppermost edge with the same origin */
+ do {
+ reg = RegionAbove( reg );
+ } while( reg->eUp->Org == org );
+
+ /* If the edge above was a temporary edge introduced by ConnectRightVertex,
+ * now is the time to fix it.
+ */
+ if( reg->fixUpperEdge ) {
+ e = tessMeshConnect( tess->mesh, RegionBelow(reg)->eUp->Sym, reg->eUp->Lnext );
+ if (e == NULL) return NULL;
+ if ( !FixUpperEdge( tess, reg, e ) ) return NULL;
+ reg = RegionAbove( reg );
+ }
+ return reg;
+}
+
+static ActiveRegion *TopRightRegion( ActiveRegion *reg )
+{
+ TESSvertex *dst = reg->eUp->Dst;
+
+ /* Find the region above the uppermost edge with the same destination */
+ do {
+ reg = RegionAbove( reg );
+ } while( reg->eUp->Dst == dst );
+ return reg;
+}
+
+static ActiveRegion *AddRegionBelow( TESStesselator *tess,
+ ActiveRegion *regAbove,
+ TESShalfEdge *eNewUp )
+/*
+* Add a new active region to the sweep line, *somewhere* below "regAbove"
+* (according to where the new edge belongs in the sweep-line dictionary).
+* The upper edge of the new region will be "eNewUp".
+* Winding number and "inside" flag are not updated.
+*/
+{
+ ActiveRegion *regNew = (ActiveRegion *)bucketAlloc( tess->regionPool );
+ if (regNew == NULL) longjmp(tess->env,1);
+
+ regNew->eUp = eNewUp;
+ regNew->nodeUp = dictInsertBefore( tess->dict, regAbove->nodeUp, regNew );
+ if (regNew->nodeUp == NULL) longjmp(tess->env,1);
+ regNew->fixUpperEdge = FALSE;
+ regNew->sentinel = FALSE;
+ regNew->dirty = FALSE;
+
+ eNewUp->activeRegion = regNew;
+ return regNew;
+}
+
+static int IsWindingInside( TESStesselator *tess, int n )
+{
+ switch( tess->windingRule ) {
+ case TESS_WINDING_ODD:
+ return (n & 1);
+ case TESS_WINDING_NONZERO:
+ return (n != 0);
+ case TESS_WINDING_POSITIVE:
+ return (n > 0);
+ case TESS_WINDING_NEGATIVE:
+ return (n < 0);
+ case TESS_WINDING_ABS_GEQ_TWO:
+ return (n >= 2) || (n <= -2);
+ }
+ /*LINTED*/
+ assert( FALSE );
+ /*NOTREACHED*/
+
+ return( FALSE );
+}
+
+
+static void ComputeWinding( TESStesselator *tess, ActiveRegion *reg )
+{
+ reg->windingNumber = RegionAbove(reg)->windingNumber + reg->eUp->winding;
+ reg->inside = IsWindingInside( tess, reg->windingNumber );
+}
+
+
+static void FinishRegion( TESStesselator *tess, ActiveRegion *reg )
+/*
+* Delete a region from the sweep line. This happens when the upper
+* and lower chains of a region meet (at a vertex on the sweep line).
+* The "inside" flag is copied to the appropriate mesh face (we could
+* not do this before -- since the structure of the mesh is always
+* changing, this face may not have even existed until now).
+*/
+{
+ TESShalfEdge *e = reg->eUp;
+ TESSface *f = e->Lface;
+
+ f->inside = reg->inside;
+ f->anEdge = e; /* optimization for tessMeshTessellateMonoRegion() */
+ DeleteRegion( tess, reg );
+}
+
+
+static TESShalfEdge *FinishLeftRegions( TESStesselator *tess,
+ ActiveRegion *regFirst, ActiveRegion *regLast )
+/*
+* We are given a vertex with one or more left-going edges. All affected
+* edges should be in the edge dictionary. Starting at regFirst->eUp,
+* we walk down deleting all regions where both edges have the same
+* origin vOrg. At the same time we copy the "inside" flag from the
+* active region to the face, since at this point each face will belong
+* to at most one region (this was not necessarily true until this point
+* in the sweep). The walk stops at the region above regLast; if regLast
+* is NULL we walk as far as possible. At the same time we relink the
+* mesh if necessary, so that the ordering of edges around vOrg is the
+* same as in the dictionary.
+*/
+{
+ ActiveRegion *reg, *regPrev;
+ TESShalfEdge *e, *ePrev;
+
+ regPrev = regFirst;
+ ePrev = regFirst->eUp;
+ while( regPrev != regLast ) {
+ regPrev->fixUpperEdge = FALSE; /* placement was OK */
+ reg = RegionBelow( regPrev );
+ e = reg->eUp;
+ if( e->Org != ePrev->Org ) {
+ if( ! reg->fixUpperEdge ) {
+ /* Remove the last left-going edge. Even though there are no further
+ * edges in the dictionary with this origin, there may be further
+ * such edges in the mesh (if we are adding left edges to a vertex
+ * that has already been processed). Thus it is important to call
+ * FinishRegion rather than just DeleteRegion.
+ */
+ FinishRegion( tess, regPrev );
+ break;
+ }
+ /* If the edge below was a temporary edge introduced by
+ * ConnectRightVertex, now is the time to fix it.
+ */
+ e = tessMeshConnect( tess->mesh, ePrev->Lprev, e->Sym );
+ if (e == NULL) longjmp(tess->env,1);
+ if ( !FixUpperEdge( tess, reg, e ) ) longjmp(tess->env,1);
+ }
+
+ /* Relink edges so that ePrev->Onext == e */
+ if( ePrev->Onext != e ) {
+ if ( !tessMeshSplice( tess->mesh, e->Oprev, e ) ) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, ePrev, e ) ) longjmp(tess->env,1);
+ }
+ FinishRegion( tess, regPrev ); /* may change reg->eUp */
+ ePrev = reg->eUp;
+ regPrev = reg;
+ }
+ return ePrev;
+}
+
+
+static void AddRightEdges( TESStesselator *tess, ActiveRegion *regUp,
+ TESShalfEdge *eFirst, TESShalfEdge *eLast, TESShalfEdge *eTopLeft,
+ int cleanUp )
+/*
+* Purpose: insert right-going edges into the edge dictionary, and update
+* winding numbers and mesh connectivity appropriately. All right-going
+* edges share a common origin vOrg. Edges are inserted CCW starting at
+* eFirst; the last edge inserted is eLast->Oprev. If vOrg has any
+* left-going edges already processed, then eTopLeft must be the edge
+* such that an imaginary upward vertical segment from vOrg would be
+* contained between eTopLeft->Oprev and eTopLeft; otherwise eTopLeft
+* should be NULL.
+*/
+{
+ ActiveRegion *reg, *regPrev;
+ TESShalfEdge *e, *ePrev;
+ int firstTime = TRUE;
+
+ /* Insert the new right-going edges in the dictionary */
+ e = eFirst;
+ do {
+ assert( VertLeq( e->Org, e->Dst ));
+ AddRegionBelow( tess, regUp, e->Sym );
+ e = e->Onext;
+ } while ( e != eLast );
+
+ /* Walk *all* right-going edges from e->Org, in the dictionary order,
+ * updating the winding numbers of each region, and re-linking the mesh
+ * edges to match the dictionary ordering (if necessary).
+ */
+ if( eTopLeft == NULL ) {
+ eTopLeft = RegionBelow( regUp )->eUp->Rprev;
+ }
+ regPrev = regUp;
+ ePrev = eTopLeft;
+ for( ;; ) {
+ reg = RegionBelow( regPrev );
+ e = reg->eUp->Sym;
+ if( e->Org != ePrev->Org ) break;
+
+ if( e->Onext != ePrev ) {
+ /* Unlink e from its current position, and relink below ePrev */
+ if ( !tessMeshSplice( tess->mesh, e->Oprev, e ) ) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, ePrev->Oprev, e ) ) longjmp(tess->env,1);
+ }
+ /* Compute the winding number and "inside" flag for the new regions */
+ reg->windingNumber = regPrev->windingNumber - e->winding;
+ reg->inside = IsWindingInside( tess, reg->windingNumber );
+
+ /* Check for two outgoing edges with same slope -- process these
+ * before any intersection tests (see example in tessComputeInterior).
+ */
+ regPrev->dirty = TRUE;
+ if( ! firstTime && CheckForRightSplice( tess, regPrev )) {
+ AddWinding( e, ePrev );
+ DeleteRegion( tess, regPrev );
+ if ( !tessMeshDelete( tess->mesh, ePrev ) ) longjmp(tess->env,1);
+ }
+ firstTime = FALSE;
+ regPrev = reg;
+ ePrev = e;
+ }
+ regPrev->dirty = TRUE;
+ assert( regPrev->windingNumber - e->winding == reg->windingNumber );
+
+ if( cleanUp ) {
+ /* Check for intersections between newly adjacent edges. */
+ WalkDirtyRegions( tess, regPrev );
+ }
+}
+
+
+static void SpliceMergeVertices( TESStesselator *tess, TESShalfEdge *e1,
+ TESShalfEdge *e2 )
+/*
+* Two vertices with idential coordinates are combined into one.
+* e1->Org is kept, while e2->Org is discarded.
+*/
+{
+ if ( !tessMeshSplice( tess->mesh, e1, e2 ) ) longjmp(tess->env,1);
+}
+
+static void VertexWeights( TESSvertex *isect, TESSvertex *org, TESSvertex *dst,
+ TESSreal *weights )
+/*
+* Find some weights which describe how the intersection vertex is
+* a linear combination of "org" and "dest". Each of the two edges
+* which generated "isect" is allocated 50% of the weight; each edge
+* splits the weight between its org and dst according to the
+* relative distance to "isect".
+*/
+{
+ TESSreal t1 = VertL1dist( org, isect );
+ TESSreal t2 = VertL1dist( dst, isect );
+
+ weights[0] = (TESSreal)0.5 * t2 / (t1 + t2);
+ weights[1] = (TESSreal)0.5 * t1 / (t1 + t2);
+ isect->coords[0] += weights[0]*org->coords[0] + weights[1]*dst->coords[0];
+ isect->coords[1] += weights[0]*org->coords[1] + weights[1]*dst->coords[1];
+ isect->coords[2] += weights[0]*org->coords[2] + weights[1]*dst->coords[2];
+}
+
+
+static void GetIntersectData( TESStesselator *tess, TESSvertex *isect,
+ TESSvertex *orgUp, TESSvertex *dstUp,
+ TESSvertex *orgLo, TESSvertex *dstLo )
+ /*
+ * We've computed a new intersection point, now we need a "data" pointer
+ * from the user so that we can refer to this new vertex in the
+ * rendering callbacks.
+ */
+{
+ TESSreal weights[4];
+ TESS_NOTUSED( tess );
+
+ isect->coords[0] = isect->coords[1] = isect->coords[2] = 0;
+ isect->idx = TESS_UNDEF;
+ VertexWeights( isect, orgUp, dstUp, &weights[0] );
+ VertexWeights( isect, orgLo, dstLo, &weights[2] );
+}
+
+static int CheckForRightSplice( TESStesselator *tess, ActiveRegion *regUp )
+/*
+* Check the upper and lower edge of "regUp", to make sure that the
+* eUp->Org is above eLo, or eLo->Org is below eUp (depending on which
+* origin is leftmost).
+*
+* The main purpose is to splice right-going edges with the same
+* dest vertex and nearly identical slopes (ie. we can't distinguish
+* the slopes numerically). However the splicing can also help us
+* to recover from numerical errors. For example, suppose at one
+* point we checked eUp and eLo, and decided that eUp->Org is barely
+* above eLo. Then later, we split eLo into two edges (eg. from
+* a splice operation like this one). This can change the result of
+* our test so that now eUp->Org is incident to eLo, or barely below it.
+* We must correct this condition to maintain the dictionary invariants.
+*
+* One possibility is to check these edges for intersection again
+* (ie. CheckForIntersect). This is what we do if possible. However
+* CheckForIntersect requires that tess->event lies between eUp and eLo,
+* so that it has something to fall back on when the intersection
+* calculation gives us an unusable answer. So, for those cases where
+* we can't check for intersection, this routine fixes the problem
+* by just splicing the offending vertex into the other edge.
+* This is a guaranteed solution, no matter how degenerate things get.
+* Basically this is a combinatorial solution to a numerical problem.
+*/
+{
+ ActiveRegion *regLo = RegionBelow(regUp);
+ TESShalfEdge *eUp = regUp->eUp;
+ TESShalfEdge *eLo = regLo->eUp;
+
+ if( VertLeq( eUp->Org, eLo->Org )) {
+ if( EdgeSign( eLo->Dst, eUp->Org, eLo->Org ) > 0 ) return FALSE;
+
+ /* eUp->Org appears to be below eLo */
+ if( ! VertEq( eUp->Org, eLo->Org )) {
+ /* Splice eUp->Org into eLo */
+ if ( tessMeshSplitEdge( tess->mesh, eLo->Sym ) == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eUp, eLo->Oprev ) ) longjmp(tess->env,1);
+ regUp->dirty = regLo->dirty = TRUE;
+
+ } else if( eUp->Org != eLo->Org ) {
+ /* merge the two vertices, discarding eUp->Org */
+ pqDelete( tess->pq, eUp->Org->pqHandle );
+ SpliceMergeVertices( tess, eLo->Oprev, eUp );
+ }
+ } else {
+ if( EdgeSign( eUp->Dst, eLo->Org, eUp->Org ) <= 0 ) return FALSE;
+
+ /* eLo->Org appears to be above eUp, so splice eLo->Org into eUp */
+ RegionAbove(regUp)->dirty = regUp->dirty = TRUE;
+ if (tessMeshSplitEdge( tess->mesh, eUp->Sym ) == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eLo->Oprev, eUp ) ) longjmp(tess->env,1);
+ }
+ return TRUE;
+}
+
+static int CheckForLeftSplice( TESStesselator *tess, ActiveRegion *regUp )
+/*
+* Check the upper and lower edge of "regUp", to make sure that the
+* eUp->Dst is above eLo, or eLo->Dst is below eUp (depending on which
+* destination is rightmost).
+*
+* Theoretically, this should always be true. However, splitting an edge
+* into two pieces can change the results of previous tests. For example,
+* suppose at one point we checked eUp and eLo, and decided that eUp->Dst
+* is barely above eLo. Then later, we split eLo into two edges (eg. from
+* a splice operation like this one). This can change the result of
+* the test so that now eUp->Dst is incident to eLo, or barely below it.
+* We must correct this condition to maintain the dictionary invariants
+* (otherwise new edges might get inserted in the wrong place in the
+* dictionary, and bad stuff will happen).
+*
+* We fix the problem by just splicing the offending vertex into the
+* other edge.
+*/
+{
+ ActiveRegion *regLo = RegionBelow(regUp);
+ TESShalfEdge *eUp = regUp->eUp;
+ TESShalfEdge *eLo = regLo->eUp;
+ TESShalfEdge *e;
+
+ assert( ! VertEq( eUp->Dst, eLo->Dst ));
+
+ if( VertLeq( eUp->Dst, eLo->Dst )) {
+ if( EdgeSign( eUp->Dst, eLo->Dst, eUp->Org ) < 0 ) return FALSE;
+
+ /* eLo->Dst is above eUp, so splice eLo->Dst into eUp */
+ RegionAbove(regUp)->dirty = regUp->dirty = TRUE;
+ e = tessMeshSplitEdge( tess->mesh, eUp );
+ if (e == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eLo->Sym, e ) ) longjmp(tess->env,1);
+ e->Lface->inside = regUp->inside;
+ } else {
+ if( EdgeSign( eLo->Dst, eUp->Dst, eLo->Org ) > 0 ) return FALSE;
+
+ /* eUp->Dst is below eLo, so splice eUp->Dst into eLo */
+ regUp->dirty = regLo->dirty = TRUE;
+ e = tessMeshSplitEdge( tess->mesh, eLo );
+ if (e == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eUp->Lnext, eLo->Sym ) ) longjmp(tess->env,1);
+ e->Rface->inside = regUp->inside;
+ }
+ return TRUE;
+}
+
+
+static int CheckForIntersect( TESStesselator *tess, ActiveRegion *regUp )
+/*
+* Check the upper and lower edges of the given region to see if
+* they intersect. If so, create the intersection and add it
+* to the data structures.
+*
+* Returns TRUE if adding the new intersection resulted in a recursive
+* call to AddRightEdges(); in this case all "dirty" regions have been
+* checked for intersections, and possibly regUp has been deleted.
+*/
+{
+ ActiveRegion *regLo = RegionBelow(regUp);
+ TESShalfEdge *eUp = regUp->eUp;
+ TESShalfEdge *eLo = regLo->eUp;
+ TESSvertex *orgUp = eUp->Org;
+ TESSvertex *orgLo = eLo->Org;
+ TESSvertex *dstUp = eUp->Dst;
+ TESSvertex *dstLo = eLo->Dst;
+ TESSreal tMinUp, tMaxLo;
+ TESSvertex isect, *orgMin;
+ TESShalfEdge *e;
+
+ assert( ! VertEq( dstLo, dstUp ));
+ assert( EdgeSign( dstUp, tess->event, orgUp ) <= 0 );
+ assert( EdgeSign( dstLo, tess->event, orgLo ) >= 0 );
+ assert( orgUp != tess->event && orgLo != tess->event );
+ assert( ! regUp->fixUpperEdge && ! regLo->fixUpperEdge );
+
+ if( orgUp == orgLo ) return FALSE; /* right endpoints are the same */
+
+ tMinUp = MIN( orgUp->t, dstUp->t );
+ tMaxLo = MAX( orgLo->t, dstLo->t );
+ if( tMinUp > tMaxLo ) return FALSE; /* t ranges do not overlap */
+
+ if( VertLeq( orgUp, orgLo )) {
+ if( EdgeSign( dstLo, orgUp, orgLo ) > 0 ) return FALSE;
+ } else {
+ if( EdgeSign( dstUp, orgLo, orgUp ) < 0 ) return FALSE;
+ }
+
+ /* At this point the edges intersect, at least marginally */
+ DebugEvent( tess );
+
+ tesedgeIntersect( dstUp, orgUp, dstLo, orgLo, &isect );
+ /* The following properties are guaranteed: */
+ assert( MIN( orgUp->t, dstUp->t ) <= isect.t );
+ assert( isect.t <= MAX( orgLo->t, dstLo->t ));
+ assert( MIN( dstLo->s, dstUp->s ) <= isect.s );
+ assert( isect.s <= MAX( orgLo->s, orgUp->s ));
+
+ if( VertLeq( &isect, tess->event )) {
+ /* The intersection point lies slightly to the left of the sweep line,
+ * so move it until it''s slightly to the right of the sweep line.
+ * (If we had perfect numerical precision, this would never happen
+ * in the first place). The easiest and safest thing to do is
+ * replace the intersection by tess->event.
+ */
+ isect.s = tess->event->s;
+ isect.t = tess->event->t;
+ }
+ /* Similarly, if the computed intersection lies to the right of the
+ * rightmost origin (which should rarely happen), it can cause
+ * unbelievable inefficiency on sufficiently degenerate inputs.
+ * (If you have the test program, try running test54.d with the
+ * "X zoom" option turned on).
+ */
+ orgMin = VertLeq( orgUp, orgLo ) ? orgUp : orgLo;
+ if( VertLeq( orgMin, &isect )) {
+ isect.s = orgMin->s;
+ isect.t = orgMin->t;
+ }
+
+ if( VertEq( &isect, orgUp ) || VertEq( &isect, orgLo )) {
+ /* Easy case -- intersection at one of the right endpoints */
+ (void) CheckForRightSplice( tess, regUp );
+ return FALSE;
+ }
+
+ if( (! VertEq( dstUp, tess->event )
+ && EdgeSign( dstUp, tess->event, &isect ) >= 0)
+ || (! VertEq( dstLo, tess->event )
+ && EdgeSign( dstLo, tess->event, &isect ) <= 0 ))
+ {
+ /* Very unusual -- the new upper or lower edge would pass on the
+ * wrong side of the sweep event, or through it. This can happen
+ * due to very small numerical errors in the intersection calculation.
+ */
+ if( dstLo == tess->event ) {
+ /* Splice dstLo into eUp, and process the new region(s) */
+ if (tessMeshSplitEdge( tess->mesh, eUp->Sym ) == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eLo->Sym, eUp ) ) longjmp(tess->env,1);
+ regUp = TopLeftRegion( tess, regUp );
+ if (regUp == NULL) longjmp(tess->env,1);
+ eUp = RegionBelow(regUp)->eUp;
+ FinishLeftRegions( tess, RegionBelow(regUp), regLo );
+ AddRightEdges( tess, regUp, eUp->Oprev, eUp, eUp, TRUE );
+ return TRUE;
+ }
+ if( dstUp == tess->event ) {
+ /* Splice dstUp into eLo, and process the new region(s) */
+ if (tessMeshSplitEdge( tess->mesh, eLo->Sym ) == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eUp->Lnext, eLo->Oprev ) ) longjmp(tess->env,1);
+ regLo = regUp;
+ regUp = TopRightRegion( regUp );
+ e = RegionBelow(regUp)->eUp->Rprev;
+ regLo->eUp = eLo->Oprev;
+ eLo = FinishLeftRegions( tess, regLo, NULL );
+ AddRightEdges( tess, regUp, eLo->Onext, eUp->Rprev, e, TRUE );
+ return TRUE;
+ }
+ /* Special case: called from ConnectRightVertex. If either
+ * edge passes on the wrong side of tess->event, split it
+ * (and wait for ConnectRightVertex to splice it appropriately).
+ */
+ if( EdgeSign( dstUp, tess->event, &isect ) >= 0 ) {
+ RegionAbove(regUp)->dirty = regUp->dirty = TRUE;
+ if (tessMeshSplitEdge( tess->mesh, eUp->Sym ) == NULL) longjmp(tess->env,1);
+ eUp->Org->s = tess->event->s;
+ eUp->Org->t = tess->event->t;
+ }
+ if( EdgeSign( dstLo, tess->event, &isect ) <= 0 ) {
+ regUp->dirty = regLo->dirty = TRUE;
+ if (tessMeshSplitEdge( tess->mesh, eLo->Sym ) == NULL) longjmp(tess->env,1);
+ eLo->Org->s = tess->event->s;
+ eLo->Org->t = tess->event->t;
+ }
+ /* leave the rest for ConnectRightVertex */
+ return FALSE;
+ }
+
+ /* General case -- split both edges, splice into new vertex.
+ * When we do the splice operation, the order of the arguments is
+ * arbitrary as far as correctness goes. However, when the operation
+ * creates a new face, the work done is proportional to the size of
+ * the new face. We expect the faces in the processed part of
+ * the mesh (ie. eUp->Lface) to be smaller than the faces in the
+ * unprocessed original contours (which will be eLo->Oprev->Lface).
+ */
+ if (tessMeshSplitEdge( tess->mesh, eUp->Sym ) == NULL) longjmp(tess->env,1);
+ if (tessMeshSplitEdge( tess->mesh, eLo->Sym ) == NULL) longjmp(tess->env,1);
+ if ( !tessMeshSplice( tess->mesh, eLo->Oprev, eUp ) ) longjmp(tess->env,1);
+ eUp->Org->s = isect.s;
+ eUp->Org->t = isect.t;
+ eUp->Org->pqHandle = pqInsert( &tess->alloc, tess->pq, eUp->Org );
+ if (eUp->Org->pqHandle == INV_HANDLE) {
+ pqDeletePriorityQ( &tess->alloc, tess->pq );
+ tess->pq = NULL;
+ longjmp(tess->env,1);
+ }
+ GetIntersectData( tess, eUp->Org, orgUp, dstUp, orgLo, dstLo );
+ RegionAbove(regUp)->dirty = regUp->dirty = regLo->dirty = TRUE;
+ return FALSE;
+}
+
+static void WalkDirtyRegions( TESStesselator *tess, ActiveRegion *regUp )
+/*
+* When the upper or lower edge of any region changes, the region is
+* marked "dirty". This routine walks through all the dirty regions
+* and makes sure that the dictionary invariants are satisfied
+* (see the comments at the beginning of this file). Of course
+* new dirty regions can be created as we make changes to restore
+* the invariants.
+*/
+{
+ ActiveRegion *regLo = RegionBelow(regUp);
+ TESShalfEdge *eUp, *eLo;
+
+ for( ;; ) {
+ /* Find the lowest dirty region (we walk from the bottom up). */
+ while( regLo->dirty ) {
+ regUp = regLo;
+ regLo = RegionBelow(regLo);
+ }
+ if( ! regUp->dirty ) {
+ regLo = regUp;
+ regUp = RegionAbove( regUp );
+ if( regUp == NULL || ! regUp->dirty ) {
+ /* We've walked all the dirty regions */
+ return;
+ }
+ }
+ regUp->dirty = FALSE;
+ eUp = regUp->eUp;
+ eLo = regLo->eUp;
+
+ if( eUp->Dst != eLo->Dst ) {
+ /* Check that the edge ordering is obeyed at the Dst vertices. */
+ if( CheckForLeftSplice( tess, regUp )) {
+
+ /* If the upper or lower edge was marked fixUpperEdge, then
+ * we no longer need it (since these edges are needed only for
+ * vertices which otherwise have no right-going edges).
+ */
+ if( regLo->fixUpperEdge ) {
+ DeleteRegion( tess, regLo );
+ if ( !tessMeshDelete( tess->mesh, eLo ) ) longjmp(tess->env,1);
+ regLo = RegionBelow( regUp );
+ eLo = regLo->eUp;
+ } else if( regUp->fixUpperEdge ) {
+ DeleteRegion( tess, regUp );
+ if ( !tessMeshDelete( tess->mesh, eUp ) ) longjmp(tess->env,1);
+ regUp = RegionAbove( regLo );
+ eUp = regUp->eUp;
+ }
+ }
+ }
+ if( eUp->Org != eLo->Org ) {
+ if( eUp->Dst != eLo->Dst
+ && ! regUp->fixUpperEdge && ! regLo->fixUpperEdge
+ && (eUp->Dst == tess->event || eLo->Dst == tess->event) )
+ {
+ /* When all else fails in CheckForIntersect(), it uses tess->event
+ * as the intersection location. To make this possible, it requires
+ * that tess->event lie between the upper and lower edges, and also
+ * that neither of these is marked fixUpperEdge (since in the worst
+ * case it might splice one of these edges into tess->event, and
+ * violate the invariant that fixable edges are the only right-going
+ * edge from their associated vertex).
+ */
+ if( CheckForIntersect( tess, regUp )) {
+ /* WalkDirtyRegions() was called recursively; we're done */
+ return;
+ }
+ } else {
+ /* Even though we can't use CheckForIntersect(), the Org vertices
+ * may violate the dictionary edge ordering. Check and correct this.
+ */
+ (void) CheckForRightSplice( tess, regUp );
+ }
+ }
+ if( eUp->Org == eLo->Org && eUp->Dst == eLo->Dst ) {
+ /* A degenerate loop consisting of only two edges -- delete it. */
+ AddWinding( eLo, eUp );
+ DeleteRegion( tess, regUp );
+ if ( !tessMeshDelete( tess->mesh, eUp ) ) longjmp(tess->env,1);
+ regUp = RegionAbove( regLo );
+ }
+ }
+}
+
+
+static void ConnectRightVertex( TESStesselator *tess, ActiveRegion *regUp,
+ TESShalfEdge *eBottomLeft )
+/*
+* Purpose: connect a "right" vertex vEvent (one where all edges go left)
+* to the unprocessed portion of the mesh. Since there are no right-going
+* edges, two regions (one above vEvent and one below) are being merged
+* into one. "regUp" is the upper of these two regions.
+*
+* There are two reasons for doing this (adding a right-going edge):
+* - if the two regions being merged are "inside", we must add an edge
+* to keep them separated (the combined region would not be monotone).
+* - in any case, we must leave some record of vEvent in the dictionary,
+* so that we can merge vEvent with features that we have not seen yet.
+* For example, maybe there is a vertical edge which passes just to
+* the right of vEvent; we would like to splice vEvent into this edge.
+*
+* However, we don't want to connect vEvent to just any vertex. We don''t
+* want the new edge to cross any other edges; otherwise we will create
+* intersection vertices even when the input data had no self-intersections.
+* (This is a bad thing; if the user's input data has no intersections,
+* we don't want to generate any false intersections ourselves.)
+*
+* Our eventual goal is to connect vEvent to the leftmost unprocessed
+* vertex of the combined region (the union of regUp and regLo).
+* But because of unseen vertices with all right-going edges, and also
+* new vertices which may be created by edge intersections, we don''t
+* know where that leftmost unprocessed vertex is. In the meantime, we
+* connect vEvent to the closest vertex of either chain, and mark the region
+* as "fixUpperEdge". This flag says to delete and reconnect this edge
+* to the next processed vertex on the boundary of the combined region.
+* Quite possibly the vertex we connected to will turn out to be the
+* closest one, in which case we won''t need to make any changes.
+*/
+{
+ TESShalfEdge *eNew;
+ TESShalfEdge *eTopLeft = eBottomLeft->Onext;
+ ActiveRegion *regLo = RegionBelow(regUp);
+ TESShalfEdge *eUp = regUp->eUp;
+ TESShalfEdge *eLo = regLo->eUp;
+ int degenerate = FALSE;
+
+ if( eUp->Dst != eLo->Dst ) {
+ (void) CheckForIntersect( tess, regUp );
+ }
+
+ /* Possible new degeneracies: upper or lower edge of regUp may pass
+ * through vEvent, or may coincide with new intersection vertex
+ */
+ if( VertEq( eUp->Org, tess->event )) {
+ if ( !tessMeshSplice( tess->mesh, eTopLeft->Oprev, eUp ) ) longjmp(tess->env,1);
+ regUp = TopLeftRegion( tess, regUp );
+ if (regUp == NULL) longjmp(tess->env,1);
+ eTopLeft = RegionBelow( regUp )->eUp;
+ FinishLeftRegions( tess, RegionBelow(regUp), regLo );
+ degenerate = TRUE;
+ }
+ if( VertEq( eLo->Org, tess->event )) {
+ if ( !tessMeshSplice( tess->mesh, eBottomLeft, eLo->Oprev ) ) longjmp(tess->env,1);
+ eBottomLeft = FinishLeftRegions( tess, regLo, NULL );
+ degenerate = TRUE;
+ }
+ if( degenerate ) {
+ AddRightEdges( tess, regUp, eBottomLeft->Onext, eTopLeft, eTopLeft, TRUE );
+ return;
+ }
+
+ /* Non-degenerate situation -- need to add a temporary, fixable edge.
+ * Connect to the closer of eLo->Org, eUp->Org.
+ */
+ if( VertLeq( eLo->Org, eUp->Org )) {
+ eNew = eLo->Oprev;
+ } else {
+ eNew = eUp;
+ }
+ eNew = tessMeshConnect( tess->mesh, eBottomLeft->Lprev, eNew );
+ if (eNew == NULL) longjmp(tess->env,1);
+
+ /* Prevent cleanup, otherwise eNew might disappear before we've even
+ * had a chance to mark it as a temporary edge.
+ */
+ AddRightEdges( tess, regUp, eNew, eNew->Onext, eNew->Onext, FALSE );
+ eNew->Sym->activeRegion->fixUpperEdge = TRUE;
+ WalkDirtyRegions( tess, regUp );
+}
+
+/* Because vertices at exactly the same location are merged together
+* before we process the sweep event, some degenerate cases can't occur.
+* However if someone eventually makes the modifications required to
+* merge features which are close together, the cases below marked
+* TOLERANCE_NONZERO will be useful. They were debugged before the
+* code to merge identical vertices in the main loop was added.
+*/
+#define TOLERANCE_NONZERO FALSE
+
+static void ConnectLeftDegenerate( TESStesselator *tess,
+ ActiveRegion *regUp, TESSvertex *vEvent )
+/*
+* The event vertex lies exacty on an already-processed edge or vertex.
+* Adding the new vertex involves splicing it into the already-processed
+* part of the mesh.
+*/
+{
+ TESShalfEdge *e, *eTopLeft, *eTopRight, *eLast;
+ ActiveRegion *reg;
+
+ e = regUp->eUp;
+ if( VertEq( e->Org, vEvent )) {
+ /* e->Org is an unprocessed vertex - just combine them, and wait
+ * for e->Org to be pulled from the queue
+ */
+ assert( TOLERANCE_NONZERO );
+ SpliceMergeVertices( tess, e, vEvent->anEdge );
+ return;
+ }
+
+ if( ! VertEq( e->Dst, vEvent )) {
+ /* General case -- splice vEvent into edge e which passes through it */
+ if (tessMeshSplitEdge( tess->mesh, e->Sym ) == NULL) longjmp(tess->env,1);
+ if( regUp->fixUpperEdge ) {
+ /* This edge was fixable -- delete unused portion of original edge */
+ if ( !tessMeshDelete( tess->mesh, e->Onext ) ) longjmp(tess->env,1);
+ regUp->fixUpperEdge = FALSE;
+ }
+ if ( !tessMeshSplice( tess->mesh, vEvent->anEdge, e ) ) longjmp(tess->env,1);
+ SweepEvent( tess, vEvent ); /* recurse */
+ return;
+ }
+
+ /* vEvent coincides with e->Dst, which has already been processed.
+ * Splice in the additional right-going edges.
+ */
+ assert( TOLERANCE_NONZERO );
+ regUp = TopRightRegion( regUp );
+ reg = RegionBelow( regUp );
+ eTopRight = reg->eUp->Sym;
+ eTopLeft = eLast = eTopRight->Onext;
+ if( reg->fixUpperEdge ) {
+ /* Here e->Dst has only a single fixable edge going right.
+ * We can delete it since now we have some real right-going edges.
+ */
+ assert( eTopLeft != eTopRight ); /* there are some left edges too */
+ DeleteRegion( tess, reg );
+ if ( !tessMeshDelete( tess->mesh, eTopRight ) ) longjmp(tess->env,1);
+ eTopRight = eTopLeft->Oprev;
+ }
+ if ( !tessMeshSplice( tess->mesh, vEvent->anEdge, eTopRight ) ) longjmp(tess->env,1);
+ if( ! EdgeGoesLeft( eTopLeft )) {
+ /* e->Dst had no left-going edges -- indicate this to AddRightEdges() */
+ eTopLeft = NULL;
+ }
+ AddRightEdges( tess, regUp, eTopRight->Onext, eLast, eTopLeft, TRUE );
+}
+
+
+static void ConnectLeftVertex( TESStesselator *tess, TESSvertex *vEvent )
+/*
+* Purpose: connect a "left" vertex (one where both edges go right)
+* to the processed portion of the mesh. Let R be the active region
+* containing vEvent, and let U and L be the upper and lower edge
+* chains of R. There are two possibilities:
+*
+* - the normal case: split R into two regions, by connecting vEvent to
+* the rightmost vertex of U or L lying to the left of the sweep line
+*
+* - the degenerate case: if vEvent is close enough to U or L, we
+* merge vEvent into that edge chain. The subcases are:
+* - merging with the rightmost vertex of U or L
+* - merging with the active edge of U or L
+* - merging with an already-processed portion of U or L
+*/
+{
+ ActiveRegion *regUp, *regLo, *reg;
+ TESShalfEdge *eUp, *eLo, *eNew;
+ ActiveRegion tmp;
+
+ /* assert( vEvent->anEdge->Onext->Onext == vEvent->anEdge ); */
+
+ /* Get a pointer to the active region containing vEvent */
+ tmp.eUp = vEvent->anEdge->Sym;
+ /* __GL_DICTLISTKEY */ /* tessDictListSearch */
+ regUp = (ActiveRegion *)dictKey( dictSearch( tess->dict, &tmp ));
+ regLo = RegionBelow( regUp );
+ if( !regLo ) {
+ // This may happen if the input polygon is coplanar.
+ return;
+ }
+ eUp = regUp->eUp;
+ eLo = regLo->eUp;
+
+ /* Try merging with U or L first */
+ if( EdgeSign( eUp->Dst, vEvent, eUp->Org ) == 0 ) {
+ ConnectLeftDegenerate( tess, regUp, vEvent );
+ return;
+ }
+
+ /* Connect vEvent to rightmost processed vertex of either chain.
+ * e->Dst is the vertex that we will connect to vEvent.
+ */
+ reg = VertLeq( eLo->Dst, eUp->Dst ) ? regUp : regLo;
+
+ if( regUp->inside || reg->fixUpperEdge) {
+ if( reg == regUp ) {
+ eNew = tessMeshConnect( tess->mesh, vEvent->anEdge->Sym, eUp->Lnext );
+ if (eNew == NULL) longjmp(tess->env,1);
+ } else {
+ TESShalfEdge *tempHalfEdge= tessMeshConnect( tess->mesh, eLo->Dnext, vEvent->anEdge);
+ if (tempHalfEdge == NULL) longjmp(tess->env,1);
+
+ eNew = tempHalfEdge->Sym;
+ }
+ if( reg->fixUpperEdge ) {
+ if ( !FixUpperEdge( tess, reg, eNew ) ) longjmp(tess->env,1);
+ } else {
+ ComputeWinding( tess, AddRegionBelow( tess, regUp, eNew ));
+ }
+ SweepEvent( tess, vEvent );
+ } else {
+ /* The new vertex is in a region which does not belong to the polygon.
+ * We don''t need to connect this vertex to the rest of the mesh.
+ */
+ AddRightEdges( tess, regUp, vEvent->anEdge, vEvent->anEdge, NULL, TRUE );
+ }
+}
+
+
+static void SweepEvent( TESStesselator *tess, TESSvertex *vEvent )
+/*
+* Does everything necessary when the sweep line crosses a vertex.
+* Updates the mesh and the edge dictionary.
+*/
+{
+ ActiveRegion *regUp, *reg;
+ TESShalfEdge *e, *eTopLeft, *eBottomLeft;
+
+ tess->event = vEvent; /* for access in EdgeLeq() */
+ DebugEvent( tess );
+
+ /* Check if this vertex is the right endpoint of an edge that is
+ * already in the dictionary. In this case we don't need to waste
+ * time searching for the location to insert new edges.
+ */
+ e = vEvent->anEdge;
+ while( e->activeRegion == NULL ) {
+ e = e->Onext;
+ if( e == vEvent->anEdge ) {
+ /* All edges go right -- not incident to any processed edges */
+ ConnectLeftVertex( tess, vEvent );
+ return;
+ }
+ }
+
+ /* Processing consists of two phases: first we "finish" all the
+ * active regions where both the upper and lower edges terminate
+ * at vEvent (ie. vEvent is closing off these regions).
+ * We mark these faces "inside" or "outside" the polygon according
+ * to their winding number, and delete the edges from the dictionary.
+ * This takes care of all the left-going edges from vEvent.
+ */
+ regUp = TopLeftRegion( tess, e->activeRegion );
+ if (regUp == NULL) longjmp(tess->env,1);
+ reg = RegionBelow( regUp );
+ eTopLeft = reg->eUp;
+ eBottomLeft = FinishLeftRegions( tess, reg, NULL );
+
+ /* Next we process all the right-going edges from vEvent. This
+ * involves adding the edges to the dictionary, and creating the
+ * associated "active regions" which record information about the
+ * regions between adjacent dictionary edges.
+ */
+ if( eBottomLeft->Onext == eTopLeft ) {
+ /* No right-going edges -- add a temporary "fixable" edge */
+ ConnectRightVertex( tess, regUp, eBottomLeft );
+ } else {
+ AddRightEdges( tess, regUp, eBottomLeft->Onext, eTopLeft, eTopLeft, TRUE );
+ }
+}
+
+
+/* Make the sentinel coordinates big enough that they will never be
+* merged with real input features.
+*/
+
+static void AddSentinel( TESStesselator *tess, TESSreal smin, TESSreal smax, TESSreal t )
+/*
+* We add two sentinel edges above and below all other edges,
+* to avoid special cases at the top and bottom.
+*/
+{
+ TESShalfEdge *e;
+ ActiveRegion *reg = (ActiveRegion *)bucketAlloc( tess->regionPool );
+ if (reg == NULL) longjmp(tess->env,1);
+
+ e = tessMeshMakeEdge( tess->mesh );
+ if (e == NULL) longjmp(tess->env,1);
+
+ e->Org->s = smax;
+ e->Org->t = t;
+ e->Dst->s = smin;
+ e->Dst->t = t;
+ tess->event = e->Dst; /* initialize it */
+
+ reg->eUp = e;
+ reg->windingNumber = 0;
+ reg->inside = FALSE;
+ reg->fixUpperEdge = FALSE;
+ reg->sentinel = TRUE;
+ reg->dirty = FALSE;
+ reg->nodeUp = dictInsert( tess->dict, reg );
+ if (reg->nodeUp == NULL) longjmp(tess->env,1);
+}
+
+
+static void InitEdgeDict( TESStesselator *tess )
+/*
+* We maintain an ordering of edge intersections with the sweep line.
+* This order is maintained in a dynamic dictionary.
+*/
+{
+ TESSreal w, h;
+ TESSreal smin, smax, tmin, tmax;
+
+ tess->dict = dictNewDict( &tess->alloc, tess, (int (*)(void *, DictKey, DictKey)) EdgeLeq );
+ if (tess->dict == NULL) longjmp(tess->env,1);
+
+ /* If the bbox is empty, ensure that sentinels are not coincident by slightly enlarging it. */
+ w = (tess->bmax[0] - tess->bmin[0]) + (TESSreal)0.01;
+ h = (tess->bmax[1] - tess->bmin[1]) + (TESSreal)0.01;
+
+ smin = tess->bmin[0] - w;
+ smax = tess->bmax[0] + w;
+ tmin = tess->bmin[1] - h;
+ tmax = tess->bmax[1] + h;
+
+ AddSentinel( tess, smin, smax, tmin );
+ AddSentinel( tess, smin, smax, tmax );
+}
+
+
+static void DoneEdgeDict( TESStesselator *tess )
+{
+ ActiveRegion *reg;
+ int fixedEdges = 0;
+
+ while( (reg = (ActiveRegion *)dictKey( dictMin( tess->dict ))) != NULL ) {
+ /*
+ * At the end of all processing, the dictionary should contain
+ * only the two sentinel edges, plus at most one "fixable" edge
+ * created by ConnectRightVertex().
+ */
+ if( ! reg->sentinel ) {
+ assert( reg->fixUpperEdge );
+ assert( ++fixedEdges == 1 );
+ }
+ assert( reg->windingNumber == 0 );
+ DeleteRegion( tess, reg );
+ /* tessMeshDelete( reg->eUp );*/
+ }
+ dictDeleteDict( &tess->alloc, tess->dict );
+}
+
+
+static void RemoveDegenerateEdges( TESStesselator *tess )
+/*
+* Remove zero-length edges, and contours with fewer than 3 vertices.
+*/
+{
+ TESShalfEdge *e, *eNext, *eLnext;
+ TESShalfEdge *eHead = &tess->mesh->eHead;
+
+ /*LINTED*/
+ for( e = eHead->next; e != eHead; e = eNext ) {
+ eNext = e->next;
+ eLnext = e->Lnext;
+
+ if( VertEq( e->Org, e->Dst ) && e->Lnext->Lnext != e ) {
+ /* Zero-length edge, contour has at least 3 edges */
+
+ SpliceMergeVertices( tess, eLnext, e ); /* deletes e->Org */
+ if ( !tessMeshDelete( tess->mesh, e ) ) longjmp(tess->env,1); /* e is a self-loop */
+ e = eLnext;
+ eLnext = e->Lnext;
+ }
+ if( eLnext->Lnext == e ) {
+ /* Degenerate contour (one or two edges) */
+
+ if( eLnext != e ) {
+ if( eLnext == eNext || eLnext == eNext->Sym ) { eNext = eNext->next; }
+ if ( !tessMeshDelete( tess->mesh, eLnext ) ) longjmp(tess->env,1);
+ }
+ if( e == eNext || e == eNext->Sym ) { eNext = eNext->next; }
+ if ( !tessMeshDelete( tess->mesh, e ) ) longjmp(tess->env,1);
+ }
+ }
+}
+
+static int InitPriorityQ( TESStesselator *tess )
+/*
+* Insert all vertices into the priority queue which determines the
+* order in which vertices cross the sweep line.
+*/
+{
+ PriorityQ *pq;
+ TESSvertex *v, *vHead;
+ int vertexCount = 0;
+
+ vHead = &tess->mesh->vHead;
+ for( v = vHead->next; v != vHead; v = v->next ) {
+ vertexCount++;
+ }
+ /* Make sure there is enough space for sentinels. */
+ vertexCount += MAX( 8, tess->alloc.extraVertices );
+
+ pq = tess->pq = pqNewPriorityQ( &tess->alloc, vertexCount, (int (*)(PQkey, PQkey)) tesvertLeq );
+ if (pq == NULL) return 0;
+
+ vHead = &tess->mesh->vHead;
+ for( v = vHead->next; v != vHead; v = v->next ) {
+ v->pqHandle = pqInsert( &tess->alloc, pq, v );
+ if (v->pqHandle == INV_HANDLE)
+ break;
+ }
+ if (v != vHead || !pqInit( &tess->alloc, pq ) ) {
+ pqDeletePriorityQ( &tess->alloc, tess->pq );
+ tess->pq = NULL;
+ return 0;
+ }
+
+ return 1;
+}
+
+
+static void DonePriorityQ( TESStesselator *tess )
+{
+ pqDeletePriorityQ( &tess->alloc, tess->pq );
+}
+
+
+static int RemoveDegenerateFaces( TESStesselator *tess, TESSmesh *mesh )
+/*
+* Delete any degenerate faces with only two edges. WalkDirtyRegions()
+* will catch almost all of these, but it won't catch degenerate faces
+* produced by splice operations on already-processed edges.
+* The two places this can happen are in FinishLeftRegions(), when
+* we splice in a "temporary" edge produced by ConnectRightVertex(),
+* and in CheckForLeftSplice(), where we splice already-processed
+* edges to ensure that our dictionary invariants are not violated
+* by numerical errors.
+*
+* In both these cases it is *very* dangerous to delete the offending
+* edge at the time, since one of the routines further up the stack
+* will sometimes be keeping a pointer to that edge.
+*/
+{
+ TESSface *f, *fNext;
+ TESShalfEdge *e;
+
+ /*LINTED*/
+ for( f = mesh->fHead.next; f != &mesh->fHead; f = fNext ) {
+ fNext = f->next;
+ e = f->anEdge;
+ assert( e->Lnext != e );
+
+ if( e->Lnext->Lnext == e ) {
+ /* A face with only two edges */
+ AddWinding( e->Onext, e );
+ if ( !tessMeshDelete( tess->mesh, e ) ) return 0;
+ }
+ }
+ return 1;
+}
+
+int tessComputeInterior( TESStesselator *tess )
+/*
+* tessComputeInterior( tess ) computes the planar arrangement specified
+* by the given contours, and further subdivides this arrangement
+* into regions. Each region is marked "inside" if it belongs
+* to the polygon, according to the rule given by tess->windingRule.
+* Each interior region is guaranteed be monotone.
+*/
+{
+ TESSvertex *v, *vNext;
+
+ /* Each vertex defines an event for our sweep line. Start by inserting
+ * all the vertices in a priority queue. Events are processed in
+ * lexicographic order, ie.
+ *
+ * e1 < e2 iff e1.x < e2.x || (e1.x == e2.x && e1.y < e2.y)
+ */
+ RemoveDegenerateEdges( tess );
+ if ( !InitPriorityQ( tess ) ) return 0; /* if error */
+ InitEdgeDict( tess );
+
+ while( (v = (TESSvertex *)pqExtractMin( tess->pq )) != NULL ) {
+ for( ;; ) {
+ vNext = (TESSvertex *)pqMinimum( tess->pq );
+ if( vNext == NULL || ! VertEq( vNext, v )) break;
+
+ /* Merge together all vertices at exactly the same location.
+ * This is more efficient than processing them one at a time,
+ * simplifies the code (see ConnectLeftDegenerate), and is also
+ * important for correct handling of certain degenerate cases.
+ * For example, suppose there are two identical edges A and B
+ * that belong to different contours (so without this code they would
+ * be processed by separate sweep events). Suppose another edge C
+ * crosses A and B from above. When A is processed, we split it
+ * at its intersection point with C. However this also splits C,
+ * so when we insert B we may compute a slightly different
+ * intersection point. This might leave two edges with a small
+ * gap between them. This kind of error is especially obvious
+ * when using boundary extraction (TESS_BOUNDARY_ONLY).
+ */
+ vNext = (TESSvertex *)pqExtractMin( tess->pq );
+ SpliceMergeVertices( tess, v->anEdge, vNext->anEdge );
+ }
+ SweepEvent( tess, v );
+ }
+
+ /* Set tess->event for debugging purposes */
+ tess->event = ((ActiveRegion *) dictKey( dictMin( tess->dict )))->eUp->Org;
+ DebugEvent( tess );
+ DoneEdgeDict( tess );
+ DonePriorityQ( tess );
+
+ if ( !RemoveDegenerateFaces( tess, tess->mesh ) ) return 0;
+ tessMeshCheckMesh( tess->mesh );
+
+ return 1;
+}
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/sweep.h b/submodules/LottieMeshSwift/libtess2/Sources/sweep.h
new file mode 100755
index 0000000000..32f0f86dca
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/sweep.h
@@ -0,0 +1,74 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#ifndef SWEEP_H
+#define SWEEP_H
+
+#include "mesh.h"
+
+/* tessComputeInterior( tess ) computes the planar arrangement specified
+* by the given contours, and further subdivides this arrangement
+* into regions. Each region is marked "inside" if it belongs
+* to the polygon, according to the rule given by tess->windingRule.
+* Each interior region is guaranteed be monotone.
+*/
+int tessComputeInterior( TESStesselator *tess );
+
+
+/* The following is here *only* for access by debugging routines */
+
+#include "dict.h"
+
+/* For each pair of adjacent edges crossing the sweep line, there is
+* an ActiveRegion to represent the region between them. The active
+* regions are kept in sorted order in a dynamic dictionary. As the
+* sweep line crosses each vertex, we update the affected regions.
+*/
+
+struct ActiveRegion {
+ TESShalfEdge *eUp; /* upper edge, directed right to left */
+ DictNode *nodeUp; /* dictionary node corresponding to eUp */
+ int windingNumber; /* used to determine which regions are
+ * inside the polygon */
+ int inside; /* is this region inside the polygon? */
+ int sentinel; /* marks fake edges at t = +/-infinity */
+ int dirty; /* marks regions where the upper or lower
+ * edge has changed, but we haven't checked
+ * whether they intersect yet */
+ int fixUpperEdge; /* marks temporary edges introduced when
+ * we process a "right vertex" (one without
+ * any edges leaving to the right) */
+};
+
+#define RegionBelow(r) ((ActiveRegion *) dictKey(dictPred((r)->nodeUp)))
+#define RegionAbove(r) ((ActiveRegion *) dictKey(dictSucc((r)->nodeUp)))
+
+#endif
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/tess.c b/submodules/LottieMeshSwift/libtess2/Sources/tess.c
new file mode 100755
index 0000000000..5f47f8de06
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/tess.c
@@ -0,0 +1,1114 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#include
+#include
+#include
+#include "bucketalloc.h"
+#include "tess.h"
+#include "mesh.h"
+#include "sweep.h"
+#include "geom.h"
+#include
+#include
+#include
+
+#define TRUE 1
+#define FALSE 0
+
+#define Dot(u,v) (u[0]*v[0] + u[1]*v[1] + u[2]*v[2])
+
+#if defined(FOR_TRITE_TEST_PROGRAM) || defined(TRUE_PROJECT)
+static void Normalize( TESSreal v[3] )
+{
+ TESSreal len = v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
+
+ assert( len > 0 );
+ len = sqrtf( len );
+ v[0] /= len;
+ v[1] /= len;
+ v[2] /= len;
+}
+#endif
+
+#define ABS(x) ((x) < 0 ? -(x) : (x))
+
+static int LongAxis( TESSreal v[3] )
+{
+ int i = 0;
+
+ if( ABS(v[1]) > ABS(v[0]) ) { i = 1; }
+ if( ABS(v[2]) > ABS(v[i]) ) { i = 2; }
+ return i;
+}
+
+static int ShortAxis( TESSreal v[3] )
+{
+ int i = 0;
+
+ if( ABS(v[1]) < ABS(v[0]) ) { i = 1; }
+ if( ABS(v[2]) < ABS(v[i]) ) { i = 2; }
+ return i;
+}
+
+static void ComputeNormal( TESStesselator *tess, TESSreal norm[3] )
+{
+ TESSvertex *v, *v1, *v2;
+ TESSreal c, tLen2, maxLen2;
+ TESSreal maxVal[3], minVal[3], d1[3], d2[3], tNorm[3];
+ TESSvertex *maxVert[3], *minVert[3];
+ TESSvertex *vHead = &tess->mesh->vHead;
+ int i;
+
+ v = vHead->next;
+ for( i = 0; i < 3; ++i ) {
+ c = v->coords[i];
+ minVal[i] = c;
+ minVert[i] = v;
+ maxVal[i] = c;
+ maxVert[i] = v;
+ }
+
+ for( v = vHead->next; v != vHead; v = v->next ) {
+ for( i = 0; i < 3; ++i ) {
+ c = v->coords[i];
+ if( c < minVal[i] ) { minVal[i] = c; minVert[i] = v; }
+ if( c > maxVal[i] ) { maxVal[i] = c; maxVert[i] = v; }
+ }
+ }
+
+ /* Find two vertices separated by at least 1/sqrt(3) of the maximum
+ * distance between any two vertices
+ */
+ i = 0;
+ if( maxVal[1] - minVal[1] > maxVal[0] - minVal[0] ) { i = 1; }
+ if( maxVal[2] - minVal[2] > maxVal[i] - minVal[i] ) { i = 2; }
+ if( minVal[i] >= maxVal[i] ) {
+ /* All vertices are the same -- normal doesn't matter */
+ norm[0] = 0; norm[1] = 0; norm[2] = 1;
+ return;
+ }
+
+ /* Look for a third vertex which forms the triangle with maximum area
+ * (Length of normal == twice the triangle area)
+ */
+ maxLen2 = 0;
+ v1 = minVert[i];
+ v2 = maxVert[i];
+ d1[0] = v1->coords[0] - v2->coords[0];
+ d1[1] = v1->coords[1] - v2->coords[1];
+ d1[2] = v1->coords[2] - v2->coords[2];
+ for( v = vHead->next; v != vHead; v = v->next ) {
+ d2[0] = v->coords[0] - v2->coords[0];
+ d2[1] = v->coords[1] - v2->coords[1];
+ d2[2] = v->coords[2] - v2->coords[2];
+ tNorm[0] = d1[1]*d2[2] - d1[2]*d2[1];
+ tNorm[1] = d1[2]*d2[0] - d1[0]*d2[2];
+ tNorm[2] = d1[0]*d2[1] - d1[1]*d2[0];
+ tLen2 = tNorm[0]*tNorm[0] + tNorm[1]*tNorm[1] + tNorm[2]*tNorm[2];
+ if( tLen2 > maxLen2 ) {
+ maxLen2 = tLen2;
+ norm[0] = tNorm[0];
+ norm[1] = tNorm[1];
+ norm[2] = tNorm[2];
+ }
+ }
+
+ if( maxLen2 <= 0 ) {
+ /* All points lie on a single line -- any decent normal will do */
+ norm[0] = norm[1] = norm[2] = 0;
+ norm[ShortAxis(d1)] = 1;
+ }
+}
+
+
+static void CheckOrientation( TESStesselator *tess )
+{
+ TESSreal area;
+ TESSface *f, *fHead = &tess->mesh->fHead;
+ TESSvertex *v, *vHead = &tess->mesh->vHead;
+ TESShalfEdge *e;
+
+ /* When we compute the normal automatically, we choose the orientation
+ * so that the the sum of the signed areas of all contours is non-negative.
+ */
+ area = 0;
+ for( f = fHead->next; f != fHead; f = f->next ) {
+ e = f->anEdge;
+ if( e->winding <= 0 ) continue;
+ do {
+ area += (e->Org->s - e->Dst->s) * (e->Org->t + e->Dst->t);
+ e = e->Lnext;
+ } while( e != f->anEdge );
+ }
+ if( area < 0 ) {
+ /* Reverse the orientation by flipping all the t-coordinates */
+ for( v = vHead->next; v != vHead; v = v->next ) {
+ v->t = - v->t;
+ }
+ tess->tUnit[0] = - tess->tUnit[0];
+ tess->tUnit[1] = - tess->tUnit[1];
+ tess->tUnit[2] = - tess->tUnit[2];
+ }
+}
+
+#ifdef FOR_TRITE_TEST_PROGRAM
+#include
+extern int RandomSweep;
+#define S_UNIT_X (RandomSweep ? (2*drand48()-1) : 1.0)
+#define S_UNIT_Y (RandomSweep ? (2*drand48()-1) : 0.0)
+#else
+#if defined(SLANTED_SWEEP)
+/* The "feature merging" is not intended to be complete. There are
+* special cases where edges are nearly parallel to the sweep line
+* which are not implemented. The algorithm should still behave
+* robustly (ie. produce a reasonable tesselation) in the presence
+* of such edges, however it may miss features which could have been
+* merged. We could minimize this effect by choosing the sweep line
+* direction to be something unusual (ie. not parallel to one of the
+* coordinate axes).
+*/
+#define S_UNIT_X (TESSreal)0.50941539564955385 /* Pre-normalized */
+#define S_UNIT_Y (TESSreal)0.86052074622010633
+#else
+#define S_UNIT_X (TESSreal)1.0
+#define S_UNIT_Y (TESSreal)0.0
+#endif
+#endif
+
+/* Determine the polygon normal and project vertices onto the plane
+* of the polygon.
+*/
+void tessProjectPolygon( TESStesselator *tess )
+{
+ TESSvertex *v, *vHead = &tess->mesh->vHead;
+ TESSreal norm[3];
+ TESSreal *sUnit, *tUnit;
+ int i, first, computedNormal = FALSE;
+
+ norm[0] = tess->normal[0];
+ norm[1] = tess->normal[1];
+ norm[2] = tess->normal[2];
+ if( norm[0] == 0 && norm[1] == 0 && norm[2] == 0 ) {
+ ComputeNormal( tess, norm );
+ computedNormal = TRUE;
+ }
+ sUnit = tess->sUnit;
+ tUnit = tess->tUnit;
+ i = LongAxis( norm );
+
+#if defined(FOR_TRITE_TEST_PROGRAM) || defined(TRUE_PROJECT)
+ /* Choose the initial sUnit vector to be approximately perpendicular
+ * to the normal.
+ */
+ Normalize( norm );
+
+ sUnit[i] = 0;
+ sUnit[(i+1)%3] = S_UNIT_X;
+ sUnit[(i+2)%3] = S_UNIT_Y;
+
+ /* Now make it exactly perpendicular */
+ w = Dot( sUnit, norm );
+ sUnit[0] -= w * norm[0];
+ sUnit[1] -= w * norm[1];
+ sUnit[2] -= w * norm[2];
+ Normalize( sUnit );
+
+ /* Choose tUnit so that (sUnit,tUnit,norm) form a right-handed frame */
+ tUnit[0] = norm[1]*sUnit[2] - norm[2]*sUnit[1];
+ tUnit[1] = norm[2]*sUnit[0] - norm[0]*sUnit[2];
+ tUnit[2] = norm[0]*sUnit[1] - norm[1]*sUnit[0];
+ Normalize( tUnit );
+#else
+ /* Project perpendicular to a coordinate axis -- better numerically */
+ sUnit[i] = 0;
+ sUnit[(i+1)%3] = S_UNIT_X;
+ sUnit[(i+2)%3] = S_UNIT_Y;
+
+ tUnit[i] = 0;
+ tUnit[(i+1)%3] = (norm[i] > 0) ? -S_UNIT_Y : S_UNIT_Y;
+ tUnit[(i+2)%3] = (norm[i] > 0) ? S_UNIT_X : -S_UNIT_X;
+#endif
+
+ /* Project the vertices onto the sweep plane */
+ for( v = vHead->next; v != vHead; v = v->next )
+ {
+ v->s = Dot( v->coords, sUnit );
+ v->t = Dot( v->coords, tUnit );
+ }
+ if( computedNormal ) {
+ CheckOrientation( tess );
+ }
+
+ /* Compute ST bounds. */
+ first = 1;
+ for( v = vHead->next; v != vHead; v = v->next )
+ {
+ if (first)
+ {
+ tess->bmin[0] = tess->bmax[0] = v->s;
+ tess->bmin[1] = tess->bmax[1] = v->t;
+ first = 0;
+ }
+ else
+ {
+ if (v->s < tess->bmin[0]) tess->bmin[0] = v->s;
+ if (v->s > tess->bmax[0]) tess->bmax[0] = v->s;
+ if (v->t < tess->bmin[1]) tess->bmin[1] = v->t;
+ if (v->t > tess->bmax[1]) tess->bmax[1] = v->t;
+ }
+ }
+}
+
+#define AddWinding(eDst,eSrc) (eDst->winding += eSrc->winding, \
+ eDst->Sym->winding += eSrc->Sym->winding)
+
+/* tessMeshTessellateMonoRegion( face ) tessellates a monotone region
+* (what else would it do??) The region must consist of a single
+* loop of half-edges (see mesh.h) oriented CCW. "Monotone" in this
+* case means that any vertical line intersects the interior of the
+* region in a single interval.
+*
+* Tessellation consists of adding interior edges (actually pairs of
+* half-edges), to split the region into non-overlapping triangles.
+*
+* The basic idea is explained in Preparata and Shamos (which I don''t
+* have handy right now), although their implementation is more
+* complicated than this one. The are two edge chains, an upper chain
+* and a lower chain. We process all vertices from both chains in order,
+* from right to left.
+*
+* The algorithm ensures that the following invariant holds after each
+* vertex is processed: the untessellated region consists of two
+* chains, where one chain (say the upper) is a single edge, and
+* the other chain is concave. The left vertex of the single edge
+* is always to the left of all vertices in the concave chain.
+*
+* Each step consists of adding the rightmost unprocessed vertex to one
+* of the two chains, and forming a fan of triangles from the rightmost
+* of two chain endpoints. Determining whether we can add each triangle
+* to the fan is a simple orientation test. By making the fan as large
+* as possible, we restore the invariant (check it yourself).
+*/
+int tessMeshTessellateMonoRegion( TESSmesh *mesh, TESSface *face )
+{
+ TESShalfEdge *up, *lo;
+
+ /* All edges are oriented CCW around the boundary of the region.
+ * First, find the half-edge whose origin vertex is rightmost.
+ * Since the sweep goes from left to right, face->anEdge should
+ * be close to the edge we want.
+ */
+ up = face->anEdge;
+ assert( up->Lnext != up && up->Lnext->Lnext != up );
+
+ for( ; VertLeq( up->Dst, up->Org ); up = up->Lprev )
+ ;
+ for( ; VertLeq( up->Org, up->Dst ); up = up->Lnext )
+ ;
+ lo = up->Lprev;
+
+ while( up->Lnext != lo ) {
+ if( VertLeq( up->Dst, lo->Org )) {
+ /* up->Dst is on the left. It is safe to form triangles from lo->Org.
+ * The EdgeGoesLeft test guarantees progress even when some triangles
+ * are CW, given that the upper and lower chains are truly monotone.
+ */
+ while( lo->Lnext != up && (EdgeGoesLeft( lo->Lnext )
+ || EdgeSign( lo->Org, lo->Dst, lo->Lnext->Dst ) <= 0 )) {
+ TESShalfEdge *tempHalfEdge= tessMeshConnect( mesh, lo->Lnext, lo );
+ if (tempHalfEdge == NULL) return 0;
+ lo = tempHalfEdge->Sym;
+ }
+ lo = lo->Lprev;
+ } else {
+ /* lo->Org is on the left. We can make CCW triangles from up->Dst. */
+ while( lo->Lnext != up && (EdgeGoesRight( up->Lprev )
+ || EdgeSign( up->Dst, up->Org, up->Lprev->Org ) >= 0 )) {
+ TESShalfEdge *tempHalfEdge= tessMeshConnect( mesh, up, up->Lprev );
+ if (tempHalfEdge == NULL) return 0;
+ up = tempHalfEdge->Sym;
+ }
+ up = up->Lnext;
+ }
+ }
+
+ /* Now lo->Org == up->Dst == the leftmost vertex. The remaining region
+ * can be tessellated in a fan from this leftmost vertex.
+ */
+ assert( lo->Lnext != up );
+ while( lo->Lnext->Lnext != up ) {
+ TESShalfEdge *tempHalfEdge= tessMeshConnect( mesh, lo->Lnext, lo );
+ if (tempHalfEdge == NULL) return 0;
+ lo = tempHalfEdge->Sym;
+ }
+
+ return 1;
+}
+
+/* tessMeshTessellateInterior( mesh ) tessellates each region of
+* the mesh which is marked "inside" the polygon. Each such region
+* must be monotone.
+*/
+int tessMeshTessellateInterior( TESSmesh *mesh )
+{
+ TESSface *f, *next;
+
+ /*LINTED*/
+ for( f = mesh->fHead.next; f != &mesh->fHead; f = next ) {
+ /* Make sure we don''t try to tessellate the new triangles. */
+ next = f->next;
+ if( f->inside ) {
+ if ( !tessMeshTessellateMonoRegion( mesh, f ) ) return 0;
+ }
+ }
+ return 1;
+}
+
+
+typedef struct EdgeStackNode EdgeStackNode;
+typedef struct EdgeStack EdgeStack;
+
+struct EdgeStackNode {
+ TESShalfEdge *edge;
+ EdgeStackNode *next;
+};
+
+struct EdgeStack {
+ EdgeStackNode *top;
+ struct BucketAlloc *nodeBucket;
+};
+
+int stackInit( EdgeStack *stack, TESSalloc *alloc )
+{
+ stack->top = NULL;
+ stack->nodeBucket = createBucketAlloc( alloc, "CDT nodes", sizeof(EdgeStackNode), 512 );
+ return stack->nodeBucket != NULL;
+}
+
+void stackDelete( EdgeStack *stack )
+{
+ deleteBucketAlloc( stack->nodeBucket );
+}
+
+int stackEmpty( EdgeStack *stack )
+{
+ return stack->top == NULL;
+}
+
+void stackPush( EdgeStack *stack, TESShalfEdge *e )
+{
+ EdgeStackNode *node = (EdgeStackNode *)bucketAlloc( stack->nodeBucket );
+ if ( ! node ) return;
+ node->edge = e;
+ node->next = stack->top;
+ stack->top = node;
+}
+
+TESShalfEdge *stackPop( EdgeStack *stack )
+{
+ TESShalfEdge *e = NULL;
+ EdgeStackNode *node = stack->top;
+ if (node) {
+ stack->top = node->next;
+ e = node->edge;
+ bucketFree( stack->nodeBucket, node );
+ }
+ return e;
+}
+
+
+// Starting with a valid triangulation, uses the Edge Flip algorithm to
+// refine the triangulation into a Constrained Delaunay Triangulation.
+void tessMeshRefineDelaunay( TESSmesh *mesh, TESSalloc *alloc )
+{
+ // At this point, we have a valid, but not optimal, triangulation.
+ // We refine the triangulation using the Edge Flip algorithm
+ //
+ // 1) Find all internal edges
+ // 2) Mark all dual edges
+ // 3) insert all dual edges into a queue
+
+ TESSface *f;
+ EdgeStack stack;
+ TESShalfEdge *e;
+ int maxFaces = 0, maxIter = 0, iter = 0;
+
+ stackInit(&stack, alloc);
+
+ for( f = mesh->fHead.next; f != &mesh->fHead; f = f->next ) {
+ if ( f->inside) {
+ e = f->anEdge;
+ do {
+ e->mark = EdgeIsInternal(e); // Mark internal edges
+ if (e->mark && !e->Sym->mark) stackPush(&stack, e); // Insert into queue
+ e = e->Lnext;
+ } while (e != f->anEdge);
+ maxFaces++;
+ }
+ }
+
+ // The algorithm should converge on O(n^2), since the predicate is not robust,
+ // we'll save guard against infinite loop.
+ maxIter = maxFaces * maxFaces;
+
+ // Pop stack until we find a reversed edge
+ // Flip the reversed edge, and insert any of the four opposite edges
+ // which are internal and not already in the stack (!marked)
+ while (!stackEmpty(&stack) && iter < maxIter) {
+ e = stackPop(&stack);
+ e->mark = e->Sym->mark = 0;
+ if (!tesedgeIsLocallyDelaunay(e)) {
+ TESShalfEdge *edges[4];
+ int i;
+ tessMeshFlipEdge(mesh, e);
+ // for each opposite edge
+ edges[0] = e->Lnext;
+ edges[1] = e->Lprev;
+ edges[2] = e->Sym->Lnext;
+ edges[3] = e->Sym->Lprev;
+ for (i = 0; i < 4; i++) {
+ if (!edges[i]->mark && EdgeIsInternal(edges[i])) {
+ edges[i]->mark = edges[i]->Sym->mark = 1;
+ stackPush(&stack, edges[i]);
+ }
+ }
+ }
+ iter++;
+ }
+
+ stackDelete(&stack);
+}
+
+
+/* tessMeshDiscardExterior( mesh ) zaps (ie. sets to NULL) all faces
+* which are not marked "inside" the polygon. Since further mesh operations
+* on NULL faces are not allowed, the main purpose is to clean up the
+* mesh so that exterior loops are not represented in the data structure.
+*/
+void tessMeshDiscardExterior( TESSmesh *mesh )
+{
+ TESSface *f, *next;
+
+ /*LINTED*/
+ for( f = mesh->fHead.next; f != &mesh->fHead; f = next ) {
+ /* Since f will be destroyed, save its next pointer. */
+ next = f->next;
+ if( ! f->inside ) {
+ tessMeshZapFace( mesh, f );
+ }
+ }
+}
+
+/* tessMeshSetWindingNumber( mesh, value, keepOnlyBoundary ) resets the
+* winding numbers on all edges so that regions marked "inside" the
+* polygon have a winding number of "value", and regions outside
+* have a winding number of 0.
+*
+* If keepOnlyBoundary is TRUE, it also deletes all edges which do not
+* separate an interior region from an exterior one.
+*/
+int tessMeshSetWindingNumber( TESSmesh *mesh, int value,
+ int keepOnlyBoundary )
+{
+ TESShalfEdge *e, *eNext;
+
+ for( e = mesh->eHead.next; e != &mesh->eHead; e = eNext ) {
+ eNext = e->next;
+ if( e->Rface->inside != e->Lface->inside ) {
+
+ /* This is a boundary edge (one side is interior, one is exterior). */
+ e->winding = (e->Lface->inside) ? value : -value;
+ } else {
+
+ /* Both regions are interior, or both are exterior. */
+ if( ! keepOnlyBoundary ) {
+ e->winding = 0;
+ } else {
+ if ( !tessMeshDelete( mesh, e ) ) return 0;
+ }
+ }
+ }
+ return 1;
+}
+
+void* heapAlloc( void* userData, unsigned int size )
+{
+ TESS_NOTUSED( userData );
+ return malloc( size );
+}
+
+void* heapRealloc( void *userData, void* ptr, unsigned int size )
+{
+ TESS_NOTUSED( userData );
+ return realloc( ptr, size );
+}
+
+void heapFree( void* userData, void* ptr )
+{
+ TESS_NOTUSED( userData );
+ free( ptr );
+}
+
+static TESSalloc defaulAlloc =
+{
+ heapAlloc,
+ heapRealloc,
+ heapFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+TESStesselator* tessNewTess( TESSalloc* alloc )
+{
+ TESStesselator* tess;
+
+ if (alloc == NULL)
+ alloc = &defaulAlloc;
+
+ /* Only initialize fields which can be changed by the api. Other fields
+ * are initialized where they are used.
+ */
+
+ tess = (TESStesselator *)alloc->memalloc( alloc->userData, sizeof( TESStesselator ));
+ if ( tess == NULL ) {
+ return 0; /* out of memory */
+ }
+ tess->alloc = *alloc;
+ /* Check and set defaults. */
+ if (tess->alloc.meshEdgeBucketSize == 0)
+ tess->alloc.meshEdgeBucketSize = 512;
+ if (tess->alloc.meshVertexBucketSize == 0)
+ tess->alloc.meshVertexBucketSize = 512;
+ if (tess->alloc.meshFaceBucketSize == 0)
+ tess->alloc.meshFaceBucketSize = 256;
+ if (tess->alloc.dictNodeBucketSize == 0)
+ tess->alloc.dictNodeBucketSize = 512;
+ if (tess->alloc.regionBucketSize == 0)
+ tess->alloc.regionBucketSize = 256;
+
+ tess->normal[0] = 0;
+ tess->normal[1] = 0;
+ tess->normal[2] = 0;
+
+ tess->bmin[0] = 0;
+ tess->bmin[1] = 0;
+ tess->bmax[0] = 0;
+ tess->bmax[1] = 0;
+
+ tess->reverseContours = 0;
+
+ tess->windingRule = TESS_WINDING_ODD;
+ tess->processCDT = 0;
+
+ if (tess->alloc.regionBucketSize < 16)
+ tess->alloc.regionBucketSize = 16;
+ if (tess->alloc.regionBucketSize > 4096)
+ tess->alloc.regionBucketSize = 4096;
+ tess->regionPool = createBucketAlloc( &tess->alloc, "Regions",
+ sizeof(ActiveRegion), tess->alloc.regionBucketSize );
+
+ // Initialize to begin polygon.
+ tess->mesh = NULL;
+
+ tess->outOfMemory = 0;
+ tess->vertexIndexCounter = 0;
+
+ tess->vertices = 0;
+ tess->vertexIndices = 0;
+ tess->vertexCount = 0;
+ tess->elements = 0;
+ tess->elementCount = 0;
+
+ return tess;
+}
+
+void tessDeleteTess( TESStesselator *tess )
+{
+
+ struct TESSalloc alloc = tess->alloc;
+
+ deleteBucketAlloc( tess->regionPool );
+
+ if( tess->mesh != NULL ) {
+ tessMeshDeleteMesh( &alloc, tess->mesh );
+ tess->mesh = NULL;
+ }
+ if (tess->vertices != NULL) {
+ alloc.memfree( alloc.userData, tess->vertices );
+ tess->vertices = 0;
+ }
+ if (tess->vertexIndices != NULL) {
+ alloc.memfree( alloc.userData, tess->vertexIndices );
+ tess->vertexIndices = 0;
+ }
+ if (tess->elements != NULL) {
+ alloc.memfree( alloc.userData, tess->elements );
+ tess->elements = 0;
+ }
+
+ alloc.memfree( alloc.userData, tess );
+}
+
+
+static TESSindex GetNeighbourFace(TESShalfEdge* edge)
+{
+ if (!edge->Rface)
+ return TESS_UNDEF;
+ if (!edge->Rface->inside)
+ return TESS_UNDEF;
+ return edge->Rface->n;
+}
+
+void OutputPolymesh( TESStesselator *tess, TESSmesh *mesh, int elementType, int polySize, int vertexSize )
+{
+ TESSvertex* v = 0;
+ TESSface* f = 0;
+ TESShalfEdge* edge = 0;
+ int maxFaceCount = 0;
+ int maxVertexCount = 0;
+ int faceVerts, i;
+ TESSindex *elements = 0;
+ TESSreal *vert;
+
+ // Assume that the input data is triangles now.
+ // Try to merge as many polygons as possible
+ if (polySize > 3)
+ {
+ if (!tessMeshMergeConvexFaces( mesh, polySize ))
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+ }
+
+ // Mark unused
+ for ( v = mesh->vHead.next; v != &mesh->vHead; v = v->next )
+ v->n = TESS_UNDEF;
+
+ // Create unique IDs for all vertices and faces.
+ for ( f = mesh->fHead.next; f != &mesh->fHead; f = f->next )
+ {
+ f->n = TESS_UNDEF;
+ if( !f->inside ) continue;
+
+ edge = f->anEdge;
+ faceVerts = 0;
+ do
+ {
+ v = edge->Org;
+ if ( v->n == TESS_UNDEF )
+ {
+ v->n = maxVertexCount;
+ maxVertexCount++;
+ }
+ faceVerts++;
+ edge = edge->Lnext;
+ }
+ while (edge != f->anEdge);
+
+ assert( faceVerts <= polySize );
+
+ f->n = maxFaceCount;
+ ++maxFaceCount;
+ }
+
+ tess->elementCount = maxFaceCount;
+ if (elementType == TESS_CONNECTED_POLYGONS)
+ maxFaceCount *= 2;
+ tess->elements = (TESSindex*)tess->alloc.memalloc( tess->alloc.userData,
+ sizeof(TESSindex) * maxFaceCount * polySize );
+ if (!tess->elements)
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ tess->vertexCount = maxVertexCount;
+ tess->vertices = (TESSreal*)tess->alloc.memalloc( tess->alloc.userData,
+ sizeof(TESSreal) * tess->vertexCount * vertexSize );
+ if (!tess->vertices)
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ tess->vertexIndices = (TESSindex*)tess->alloc.memalloc( tess->alloc.userData,
+ sizeof(TESSindex) * tess->vertexCount );
+ if (!tess->vertexIndices)
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ // Output vertices.
+ for ( v = mesh->vHead.next; v != &mesh->vHead; v = v->next )
+ {
+ if ( v->n != TESS_UNDEF )
+ {
+ // Store coordinate
+ vert = &tess->vertices[v->n*vertexSize];
+ vert[0] = v->coords[0];
+ vert[1] = v->coords[1];
+ if ( vertexSize > 2 )
+ vert[2] = v->coords[2];
+ // Store vertex index.
+ tess->vertexIndices[v->n] = v->idx;
+ }
+ }
+
+ // Output indices.
+ elements = tess->elements;
+ for ( f = mesh->fHead.next; f != &mesh->fHead; f = f->next )
+ {
+ if ( !f->inside ) continue;
+
+ // Store polygon
+ edge = f->anEdge;
+ faceVerts = 0;
+ do
+ {
+ v = edge->Org;
+ *elements++ = v->n;
+ faceVerts++;
+ edge = edge->Lnext;
+ }
+ while (edge != f->anEdge);
+ // Fill unused.
+ for (i = faceVerts; i < polySize; ++i)
+ *elements++ = TESS_UNDEF;
+
+ // Store polygon connectivity
+ if ( elementType == TESS_CONNECTED_POLYGONS )
+ {
+ edge = f->anEdge;
+ do
+ {
+ *elements++ = GetNeighbourFace( edge );
+ edge = edge->Lnext;
+ }
+ while (edge != f->anEdge);
+ // Fill unused.
+ for (i = faceVerts; i < polySize; ++i)
+ *elements++ = TESS_UNDEF;
+ }
+ }
+}
+
+void OutputContours( TESStesselator *tess, TESSmesh *mesh, int vertexSize )
+{
+ TESSface *f = 0;
+ TESShalfEdge *edge = 0;
+ TESShalfEdge *start = 0;
+ TESSreal *verts = 0;
+ TESSindex *elements = 0;
+ TESSindex *vertInds = 0;
+ int startVert = 0;
+ int vertCount = 0;
+
+ tess->vertexCount = 0;
+ tess->elementCount = 0;
+
+ for ( f = mesh->fHead.next; f != &mesh->fHead; f = f->next )
+ {
+ if ( !f->inside ) continue;
+
+ start = edge = f->anEdge;
+ do
+ {
+ ++tess->vertexCount;
+ edge = edge->Lnext;
+ }
+ while ( edge != start );
+
+ ++tess->elementCount;
+ }
+
+ tess->elements = (TESSindex*)tess->alloc.memalloc( tess->alloc.userData,
+ sizeof(TESSindex) * tess->elementCount * 2 );
+ if (!tess->elements)
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ tess->vertices = (TESSreal*)tess->alloc.memalloc( tess->alloc.userData,
+ sizeof(TESSreal) * tess->vertexCount * vertexSize );
+ if (!tess->vertices)
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ tess->vertexIndices = (TESSindex*)tess->alloc.memalloc( tess->alloc.userData,
+ sizeof(TESSindex) * tess->vertexCount );
+ if (!tess->vertexIndices)
+ {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ verts = tess->vertices;
+ elements = tess->elements;
+ vertInds = tess->vertexIndices;
+
+ startVert = 0;
+
+ for ( f = mesh->fHead.next; f != &mesh->fHead; f = f->next )
+ {
+ if ( !f->inside ) continue;
+
+ vertCount = 0;
+ start = edge = f->anEdge;
+ do
+ {
+ *verts++ = edge->Org->coords[0];
+ *verts++ = edge->Org->coords[1];
+ if ( vertexSize > 2 )
+ *verts++ = edge->Org->coords[2];
+ *vertInds++ = edge->Org->idx;
+ ++vertCount;
+ edge = edge->Lnext;
+ }
+ while ( edge != start );
+
+ elements[0] = startVert;
+ elements[1] = vertCount;
+ elements += 2;
+
+ startVert += vertCount;
+ }
+}
+
+void tessAddContour( TESStesselator *tess, int size, const void* vertices,
+ int stride, int numVertices )
+{
+ const unsigned char *src = (const unsigned char*)vertices;
+ TESShalfEdge *e;
+ int i;
+
+ if ( tess->mesh == NULL )
+ tess->mesh = tessMeshNewMesh( &tess->alloc );
+ if ( tess->mesh == NULL ) {
+ tess->outOfMemory = 1;
+ return;
+ }
+
+ if ( size < 2 )
+ size = 2;
+ if ( size > 3 )
+ size = 3;
+
+ e = NULL;
+
+ for( i = 0; i < numVertices; ++i )
+ {
+ const TESSreal* coords = (const TESSreal*)src;
+ src += stride;
+
+ if( e == NULL ) {
+ /* Make a self-loop (one vertex, one edge). */
+ e = tessMeshMakeEdge( tess->mesh );
+ if ( e == NULL ) {
+ tess->outOfMemory = 1;
+ return;
+ }
+ if ( !tessMeshSplice( tess->mesh, e, e->Sym ) ) {
+ tess->outOfMemory = 1;
+ return;
+ }
+ } else {
+ /* Create a new vertex and edge which immediately follow e
+ * in the ordering around the left face.
+ */
+ if ( tessMeshSplitEdge( tess->mesh, e ) == NULL ) {
+ tess->outOfMemory = 1;
+ return;
+ }
+ e = e->Lnext;
+ }
+
+ /* The new vertex is now e->Org. */
+ e->Org->coords[0] = coords[0];
+ e->Org->coords[1] = coords[1];
+ if ( size > 2 )
+ e->Org->coords[2] = coords[2];
+ else
+ e->Org->coords[2] = 0;
+ /* Store the insertion number so that the vertex can be later recognized. */
+ e->Org->idx = tess->vertexIndexCounter++;
+
+ /* The winding of an edge says how the winding number changes as we
+ * cross from the edge''s right face to its left face. We add the
+ * vertices in such an order that a CCW contour will add +1 to
+ * the winding number of the region inside the contour.
+ */
+ e->winding = tess->reverseContours ? -1 : 1;
+ e->Sym->winding = tess->reverseContours ? 1 : -1;
+ }
+}
+
+void tessSetOption( TESStesselator *tess, int option, int value )
+{
+ switch(option)
+ {
+ case TESS_CONSTRAINED_DELAUNAY_TRIANGULATION:
+ tess->processCDT = value > 0 ? 1 : 0;
+ break;
+ case TESS_REVERSE_CONTOURS:
+ tess->reverseContours = value > 0 ? 1 : 0;
+ break;
+ }
+}
+
+
+int tessTesselate( TESStesselator *tess, int windingRule, int elementType,
+ int polySize, int vertexSize, const TESSreal* normal )
+{
+ TESSmesh *mesh;
+ int rc = 1;
+
+ if (tess->vertices != NULL) {
+ tess->alloc.memfree( tess->alloc.userData, tess->vertices );
+ tess->vertices = 0;
+ }
+ if (tess->elements != NULL) {
+ tess->alloc.memfree( tess->alloc.userData, tess->elements );
+ tess->elements = 0;
+ }
+ if (tess->vertexIndices != NULL) {
+ tess->alloc.memfree( tess->alloc.userData, tess->vertexIndices );
+ tess->vertexIndices = 0;
+ }
+
+ tess->vertexIndexCounter = 0;
+
+ if (normal)
+ {
+ tess->normal[0] = normal[0];
+ tess->normal[1] = normal[1];
+ tess->normal[2] = normal[2];
+ }
+
+ tess->windingRule = windingRule;
+
+ if (vertexSize < 2)
+ vertexSize = 2;
+ if (vertexSize > 3)
+ vertexSize = 3;
+
+ if (setjmp(tess->env) != 0) {
+ /* come back here if out of memory */
+ return 0;
+ }
+
+ if (!tess->mesh)
+ {
+ return 0;
+ }
+
+ /* Determine the polygon normal and project vertices onto the plane
+ * of the polygon.
+ */
+ tessProjectPolygon( tess );
+
+ /* tessComputeInterior( tess ) computes the planar arrangement specified
+ * by the given contours, and further subdivides this arrangement
+ * into regions. Each region is marked "inside" if it belongs
+ * to the polygon, according to the rule given by tess->windingRule.
+ * Each interior region is guaranteed be monotone.
+ */
+ if ( !tessComputeInterior( tess ) ) {
+ longjmp(tess->env,1); /* could've used a label */
+ }
+
+ mesh = tess->mesh;
+
+ /* If the user wants only the boundary contours, we throw away all edges
+ * except those which separate the interior from the exterior.
+ * Otherwise we tessellate all the regions marked "inside".
+ */
+ if (elementType == TESS_BOUNDARY_CONTOURS) {
+ rc = tessMeshSetWindingNumber( mesh, 1, TRUE );
+ } else {
+ rc = tessMeshTessellateInterior( mesh );
+ if (rc != 0 && tess->processCDT != 0)
+ tessMeshRefineDelaunay( mesh, &tess->alloc );
+ }
+ if (rc == 0) longjmp(tess->env,1); /* could've used a label */
+
+ tessMeshCheckMesh( mesh );
+
+ if (elementType == TESS_BOUNDARY_CONTOURS) {
+ OutputContours( tess, mesh, vertexSize ); /* output contours */
+ }
+ else
+ {
+ OutputPolymesh( tess, mesh, elementType, polySize, vertexSize ); /* output polygons */
+ }
+
+ tessMeshDeleteMesh( &tess->alloc, mesh );
+ tess->mesh = NULL;
+
+ if (tess->outOfMemory)
+ return 0;
+ return 1;
+}
+
+int tessGetVertexCount( TESStesselator *tess )
+{
+ return tess->vertexCount;
+}
+
+const TESSreal* tessGetVertices( TESStesselator *tess )
+{
+ return tess->vertices;
+}
+
+const TESSindex* tessGetVertexIndices( TESStesselator *tess )
+{
+ return tess->vertexIndices;
+}
+
+int tessGetElementCount( TESStesselator *tess )
+{
+ return tess->elementCount;
+}
+
+const int* tessGetElements( TESStesselator *tess )
+{
+ return tess->elements;
+}
diff --git a/submodules/LottieMeshSwift/libtess2/Sources/tess.h b/submodules/LottieMeshSwift/libtess2/Sources/tess.h
new file mode 100755
index 0000000000..30fda27bc2
--- /dev/null
+++ b/submodules/LottieMeshSwift/libtess2/Sources/tess.h
@@ -0,0 +1,93 @@
+/*
+** SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
+** Copyright (C) [dates of first publication] Silicon Graphics, Inc.
+** All Rights Reserved.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+** of the Software, and to permit persons to whom the Software is furnished to do so,
+** subject to the following conditions:
+**
+** The above copyright notice including the dates of first publication and either this
+** permission notice or a reference to http://oss.sgi.com/projects/FreeB/ shall be
+** included in all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+** INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+** PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC.
+** BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+** OR OTHER DEALINGS IN THE SOFTWARE.
+**
+** Except as contained in this notice, the name of Silicon Graphics, Inc. shall not
+** be used in advertising or otherwise to promote the sale, use or other dealings in
+** this Software without prior written authorization from Silicon Graphics, Inc.
+*/
+/*
+** Author: Eric Veach, July 1994.
+*/
+
+#ifndef TESS_H
+#define TESS_H
+
+#include
+#include "bucketalloc.h"
+#include "mesh.h"
+#include "dict.h"
+#include "priorityq.h"
+#include "../Include/tesselator.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//typedef struct TESStesselator TESStesselator;
+
+struct TESStesselator {
+
+ /*** state needed for collecting the input data ***/
+ TESSmesh *mesh; /* stores the input contours, and eventually
+ the tessellation itself */
+ int outOfMemory;
+
+ /*** state needed for projecting onto the sweep plane ***/
+
+ TESSreal normal[3]; /* user-specified normal (if provided) */
+ TESSreal sUnit[3]; /* unit vector in s-direction (debugging) */
+ TESSreal tUnit[3]; /* unit vector in t-direction (debugging) */
+
+ TESSreal bmin[2];
+ TESSreal bmax[2];
+
+ int processCDT; /* option to run Constrained Delayney pass. */
+ int reverseContours; /* tessAddContour() will treat CCW contours as CW and vice versa */
+
+ /*** state needed for the line sweep ***/
+ int windingRule; /* rule for determining polygon interior */
+
+ Dict *dict; /* edge dictionary for sweep line */
+ PriorityQ *pq; /* priority queue of vertex events */
+ TESSvertex *event; /* current sweep event being processed */
+
+ struct BucketAlloc* regionPool;
+
+ TESSindex vertexIndexCounter;
+
+ TESSreal *vertices;
+ TESSindex *vertexIndices;
+ int vertexCount;
+ TESSindex *elements;
+ int elementCount;
+
+ TESSalloc alloc;
+
+ jmp_buf env; /* place to jump to when memAllocs fail */
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
diff --git a/submodules/MeshAnimationCache/BUILD b/submodules/MeshAnimationCache/BUILD
index 301fb25422..e3c8ebcdef 100644
--- a/submodules/MeshAnimationCache/BUILD
+++ b/submodules/MeshAnimationCache/BUILD
@@ -14,6 +14,7 @@ swift_library(
"//submodules/Postbox:Postbox",
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
"//submodules/GZip:GZip",
+ "//submodules/AppBundle:AppBundle",
],
visibility = [
"//visibility:public",
diff --git a/submodules/MeshAnimationCache/Sources/MeshAnimationCache.swift b/submodules/MeshAnimationCache/Sources/MeshAnimationCache.swift
index 114254fc20..4a17830150 100644
--- a/submodules/MeshAnimationCache/Sources/MeshAnimationCache.swift
+++ b/submodules/MeshAnimationCache/Sources/MeshAnimationCache.swift
@@ -3,8 +3,7 @@ import LottieMeshSwift
import Postbox
import SwiftSignalKit
import GZip
-
-#error("Exclude")
+import AppBundle
public final class MeshAnimationCache {
private final class Item {
@@ -16,14 +15,14 @@ public final class MeshAnimationCache {
private let mediaBox: MediaBox
- private var items: [MediaResourceId: Item] = [:]
+ private var items: [String: Item] = [:]
public init(mediaBox: MediaBox) {
self.mediaBox = mediaBox
}
public func get(resource: MediaResource) -> MeshAnimation? {
- if let item = self.items[resource.id] {
+ if let item = self.items[resource.id.stringRepresentation] {
if let animation = item.animation {
return animation
} else if let readyPath = item.readyPath, let data = try? Data(contentsOf: URL(fileURLWithPath: readyPath)) {
@@ -36,7 +35,7 @@ public final class MeshAnimationCache {
}
} else {
let item = Item()
- self.items[resource.id] = item
+ self.items[resource.id.stringRepresentation] = item
let path = self.mediaBox.cachedRepresentationPathForId(resource.id.stringRepresentation, representationId: "mesh-animation", keepDuration: .general)
if let data = try? Data(contentsOf: URL(fileURLWithPath: path)) {
@@ -50,6 +49,35 @@ public final class MeshAnimationCache {
}
}
}
+
+ public func get(bundleName: String) -> MeshAnimation? {
+ if let item = self.items[bundleName] {
+ if let animation = item.animation {
+ return animation
+ } else if let readyPath = item.readyPath, let data = try? Data(contentsOf: URL(fileURLWithPath: readyPath)) {
+ let buffer = MeshReadBuffer(data: data)
+ let animation = MeshAnimation.read(buffer: buffer)
+ item.animation = animation
+ return animation
+ } else {
+ return nil
+ }
+ } else {
+ let item = Item()
+ self.items[bundleName] = item
+
+ let path = self.mediaBox.cachedRepresentationPathForId(bundleName, representationId: "mesh-animation", keepDuration: .general)
+ if let data = try? Data(contentsOf: URL(fileURLWithPath: path)) {
+ let animation = MeshAnimation.read(buffer: MeshReadBuffer(data: data))
+ item.readyPath = path
+ item.animation = animation
+ return animation
+ } else {
+ self.cache(item: item, bundleName: bundleName)
+ return nil
+ }
+ }
+ }
private func cache(item: Item, resource: MediaResource) {
let mediaBox = self.mediaBox
@@ -89,7 +117,53 @@ public final class MeshAnimationCache {
return
}
if let animationAndPath = animationAndPath {
- if let item = strongSelf.items[resource.id] {
+ if let item = strongSelf.items[resource.id.stringRepresentation] {
+ item.isPending = false
+ item.animation = animationAndPath.0
+ item.readyPath = animationAndPath.1
+ }
+ }
+ }))
+ }
+
+ private func cache(item: Item, bundleName: String) {
+ let mediaBox = self.mediaBox
+ item.isPending = true
+ item.disposable.set((Signal<(MeshAnimation, String)?, NoError> { subscriber in
+ guard let path = getAppBundle().path(forResource: bundleName, ofType: "tgs") else {
+ subscriber.putNext(nil)
+ subscriber.putCompletion()
+ return EmptyDisposable
+ }
+
+ guard let zippedData = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
+ subscriber.putNext(nil)
+ subscriber.putCompletion()
+ return EmptyDisposable
+ }
+ let jsonData = TGGUnzipData(zippedData, 1 * 1024 * 1024) ?? zippedData
+ if let animation = generateMeshAnimation(data: jsonData) {
+ let buffer = MeshWriteBuffer()
+ animation.write(buffer: buffer)
+ mediaBox.storeCachedResourceRepresentation(bundleName, representationId: "mesh-animation", keepDuration: .general, data: buffer.makeData(), completion: { path in
+ subscriber.putNext((animation, path))
+ subscriber.putCompletion()
+ })
+ } else {
+ subscriber.putNext(nil)
+ subscriber.putCompletion()
+ return EmptyDisposable
+ }
+
+ return EmptyDisposable
+ }
+ |> runOn(Queue.concurrentDefaultQueue())
+ |> deliverOnMainQueue).start(next: { [weak self] animationAndPath in
+ guard let strongSelf = self else {
+ return
+ }
+ if let animationAndPath = animationAndPath {
+ if let item = strongSelf.items[bundleName] {
item.isPending = false
item.animation = animationAndPath.0
item.readyPath = animationAndPath.1
diff --git a/submodules/Postbox/Sources/MediaBox.swift b/submodules/Postbox/Sources/MediaBox.swift
index d8dcede4ab..eb6839a5c2 100644
--- a/submodules/Postbox/Sources/MediaBox.swift
+++ b/submodules/Postbox/Sources/MediaBox.swift
@@ -213,7 +213,7 @@ public final class MediaBox {
return ResourceStorePaths(partial: "\(fileNameForId(id))_partial", complete: "\(fileNameForId(id))")
}
- private func cachedRepresentationPathsForId(_ id: MediaResourceId, representationId: String, keepDuration: CachedMediaRepresentationKeepDuration) -> ResourceStorePaths {
+ private func cachedRepresentationPathsForId(_ id: String, representationId: String, keepDuration: CachedMediaRepresentationKeepDuration) -> ResourceStorePaths {
let cacheString: String
switch keepDuration {
case .general:
@@ -784,14 +784,22 @@ public final class MediaBox {
public func storeCachedResourceRepresentation(_ resource: MediaResource, representation: CachedMediaResourceRepresentation, data: Data) {
self.dataQueue.async {
- let path = self.cachedRepresentationPathsForId(resource.id, representationId: representation.uniqueId, keepDuration: representation.keepDuration).complete
+ let path = self.cachedRepresentationPathsForId(resource.id.stringRepresentation, representationId: representation.uniqueId, keepDuration: representation.keepDuration).complete
let _ = try? data.write(to: URL(fileURLWithPath: path))
}
}
public func storeCachedResourceRepresentation(_ resource: MediaResource, representationId: String, keepDuration: CachedMediaRepresentationKeepDuration, data: Data, completion: @escaping (String) -> Void = { _ in }) {
self.dataQueue.async {
- let path = self.cachedRepresentationPathsForId(resource.id, representationId: representationId, keepDuration: keepDuration).complete
+ let path = self.cachedRepresentationPathsForId(resource.id.stringRepresentation, representationId: representationId, keepDuration: keepDuration).complete
+ let _ = try? data.write(to: URL(fileURLWithPath: path))
+ completion(path)
+ }
+ }
+
+ public func storeCachedResourceRepresentation(_ resourceId: String, representationId: String, keepDuration: CachedMediaRepresentationKeepDuration, data: Data, completion: @escaping (String) -> Void = { _ in }) {
+ self.dataQueue.async {
+ let path = self.cachedRepresentationPathsForId(resourceId, representationId: representationId, keepDuration: keepDuration).complete
let _ = try? data.write(to: URL(fileURLWithPath: path))
completion(path)
}
@@ -802,7 +810,7 @@ public final class MediaBox {
let disposable = MetaDisposable()
let begin: () -> Void = {
- let paths = self.cachedRepresentationPathsForId(resource.id, representationId: representation.uniqueId, keepDuration: representation.keepDuration)
+ let paths = self.cachedRepresentationPathsForId(resource.id.stringRepresentation, representationId: representation.uniqueId, keepDuration: representation.keepDuration)
if let size = fileSize(paths.complete) {
self.timeBasedCleanup.touch(paths: [
paths.complete
@@ -971,7 +979,7 @@ public final class MediaBox {
let begin: () -> Void = {
let paths: ResourceStorePaths
if let baseResourceId = baseResourceId {
- paths = self.cachedRepresentationPathsForId(MediaResourceId(baseResourceId), representationId: id, keepDuration: keepDuration)
+ paths = self.cachedRepresentationPathsForId(MediaResourceId(baseResourceId).stringRepresentation, representationId: id, keepDuration: keepDuration)
} else {
paths = self.storePathsForId(MediaResourceId(id))
}
diff --git a/submodules/TelegramCallsUI/Sources/ReactionStrip.swift b/submodules/TelegramCallsUI/Sources/ReactionStrip.swift
new file mode 100644
index 0000000000..4393b949ea
--- /dev/null
+++ b/submodules/TelegramCallsUI/Sources/ReactionStrip.swift
@@ -0,0 +1,45 @@
+import Foundation
+import UIKit
+import AsyncDisplayKit
+import Display
+
+final class ReactionStrip: ASDisplayNode {
+ private var labelValues: [String] = []
+ private var labelNodes: [ImmediateTextNode] = []
+
+ var selected: ((String) -> Void)?
+
+ override init() {
+ self.labelValues = ["๐งก", "๐", "๐", "๐", "๐", "๐", "๐ฉ", "๐ธ", "๐"]
+
+ super.init()
+
+ for labelValue in self.labelValues {
+ let labelNode = ImmediateTextNode()
+ labelNode.attributedText = NSAttributedString(string: labelValue, font: Font.regular(20.0), textColor: .black)
+ self.labelNodes.append(labelNode)
+ self.addSubnode(labelNode)
+ labelNode.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.labelTapGesture(_:))))
+ }
+ }
+
+ @objc private func labelTapGesture(_ recognizer: UITapGestureRecognizer) {
+ if case .ended = recognizer.state {
+ for i in 0 ..< self.labelNodes.count {
+ if self.labelNodes[i].view === recognizer.view {
+ self.selected?(self.labelValues[i])
+ break
+ }
+ }
+ }
+ }
+
+ func update(size: CGSize) {
+ var labelOrigin = CGPoint(x: 0.0, y: 0.0)
+ for labelNode in self.labelNodes {
+ let labelSize = labelNode.updateLayout(CGSize(width: 100.0, height: 100.0))
+ labelNode.frame = CGRect(origin: labelOrigin, size: labelSize)
+ labelOrigin.x += labelSize.width + 10.0
+ }
+ }
+}
diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift
index f6645a3f7b..ee20195372 100644
--- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift
+++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift
@@ -32,6 +32,7 @@ import MapResourceToAvatarSizes
import SolidRoundedButtonNode
import AudioBlob
import DeviceAccess
+import LottieMeshSwift
let panelBackgroundColor = UIColor(rgb: 0x1c1c1e)
let secondaryPanelBackgroundColor = UIColor(rgb: 0x2c2c2e)
@@ -39,8 +40,8 @@ let fullscreenBackgroundColor = UIColor(rgb: 0x000000)
private let smallButtonSize = CGSize(width: 36.0, height: 36.0)
private let sideButtonSize = CGSize(width: 56.0, height: 56.0)
private let topPanelHeight: CGFloat = 63.0
-let bottomAreaHeight: CGFloat = 206.0
-private let fullscreenBottomAreaHeight: CGFloat = 80.0
+let bottomAreaHeight: CGFloat = 206.0 + 32.0
+private let fullscreenBottomAreaHeight: CGFloat = 80.0 + 32.0
private let bottomGradientHeight: CGFloat = 70.0
func decorationCornersImage(top: Bool, bottom: Bool, dark: Bool) -> UIImage? {
@@ -780,11 +781,14 @@ public final class VoiceChatController: ViewController {
fileprivate let switchCameraButton: CallControllerButtonItemNode
fileprivate let leaveButton: CallControllerButtonItemNode
fileprivate let actionButton: VoiceChatActionButton
+ fileprivate let reactionStrip: ReactionStrip
private let leftBorderNode: ASDisplayNode
private let rightBorderNode: ASDisplayNode
private let mainStageContainerNode: ASDisplayNode
private let mainStageBackgroundNode: ASDisplayNode
private let mainStageNode: VoiceChatMainStageNode
+
+ private var meshAnimationView: UIView?
private let transitionMaskView: UIView
private let transitionMaskTopFillLayer: CALayer
@@ -1056,6 +1060,7 @@ public final class VoiceChatController: ViewController {
self.switchCameraButton.isUserInteractionEnabled = false
self.leaveButton = CallControllerButtonItemNode()
self.actionButton = VoiceChatActionButton()
+ self.reactionStrip = ReactionStrip()
if self.isScheduling {
self.cameraButton.alpha = 0.0
@@ -1136,8 +1141,38 @@ public final class VoiceChatController: ViewController {
self.participantsNode = VoiceChatTimerNode(strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat)
+ if #available(iOS 13.0, *) {
+ self.meshAnimationView = MeshRenderer()
+ self.meshAnimationView?.isUserInteractionEnabled = false
+ }
+
super.init()
+ self.reactionStrip.selected = { [weak self] value in
+ guard let strongSelf = self else {
+ return
+ }
+ let mapping: [String: String] = [
+ "๐งก": "Hearts",
+ "๐": "Fireworks",
+ "๐": "Balloon",
+ "๐": "Party",
+ "๐": "SuperThumbsUp1",
+ "๐": "SuperThumbsDown",
+ "๐ฉ": "Poo",
+ "๐ธ": "Money",
+ "๐": "Joy"
+ ]
+
+ if let name = mapping[value] {
+ if #available(iOS 13.0, *) {
+ if let animation = call.accountContext.meshAnimationCache.get(bundleName: name), let meshAnimationView = strongSelf.meshAnimationView as? MeshRenderer {
+ meshAnimationView.add(mesh: animation, offset: CGPoint())
+ }
+ }
+ }
+ }
+
let context = self.context
let currentAccountPeer = self.context.account.postbox.loadedPeerWithId(context.account.peerId)
|> map { peer in
@@ -1840,6 +1875,11 @@ public final class VoiceChatController: ViewController {
self.addSubnode(self.dimNode)
self.addSubnode(self.contentContainer)
+
+ if let meshAnimationView = self.meshAnimationView {
+ self.view.addSubview(meshAnimationView)
+ }
+
self.contentContainer.addSubnode(self.backgroundNode)
self.contentContainer.addSubnode(self.listContainer)
@@ -1856,6 +1896,7 @@ public final class VoiceChatController: ViewController {
self.contentContainer.addSubnode(self.mainStageContainerNode)
self.contentContainer.addSubnode(self.transitionContainerNode)
self.contentContainer.addSubnode(self.bottomPanelNode)
+ self.contentContainer.addSubnode(self.reactionStrip)
self.contentContainer.addSubnode(self.timerNode)
self.contentContainer.addSubnode(self.scheduleTextNode)
self.contentContainer.addSubnode(self.fullscreenListContainer)
@@ -4277,6 +4318,12 @@ public final class VoiceChatController: ViewController {
let previousLayout = self.validLayout?.0
self.validLayout = (layout, navigationHeight)
+ if #available(iOS 13.0, *) {
+ if let meshAnimationView = self.meshAnimationView as? MeshRenderer {
+ meshAnimationView.frame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - layout.size.width), size: CGSize(width: layout.size.width, height: layout.size.width))
+ }
+ }
+
let size = layout.size
let contentWidth: CGFloat
let headerWidth: CGFloat
@@ -4734,6 +4781,9 @@ public final class VoiceChatController: ViewController {
} : nil)
}
+ transition.updateFrame(node: self.reactionStrip, frame: CGRect(origin: CGPoint(x: 12.0, y: size.height - 44.0 - 10.0), size: CGSize(width: size.width - 12.0 * 2.0, height: 44.0)))
+ self.reactionStrip.update(size: self.reactionStrip.bounds.size)
+
self.cameraButton.isUserInteractionEnabled = hasCameraButton
var buttonsTransition: ContainedViewLayoutTransition = .immediate
diff --git a/submodules/TelegramUI/BUILD b/submodules/TelegramUI/BUILD
index 1dfb36ce03..6c303a3abe 100644
--- a/submodules/TelegramUI/BUILD
+++ b/submodules/TelegramUI/BUILD
@@ -243,8 +243,8 @@ swift_library(
"//submodules/AdUI:AdUI",
"//submodules/SparseItemGrid:SparseItemGrid",
"//submodules/CalendarMessageScreen:CalendarMessageScreen",
- #"//submodules/LottieMeshSwift:LottieMeshSwift",
- #"//submodules/MeshAnimationCache:MeshAnimationCache",
+ "//submodules/LottieMeshSwift:LottieMeshSwift",
+ "//submodules/MeshAnimationCache:MeshAnimationCache",
"//submodules/DirectMediaImageCache:DirectMediaImageCache",
] + select({
"@build_bazel_rules_apple//apple:ios_armv7": [],
diff --git a/submodules/TelegramUI/Sources/AccountContext.swift b/submodules/TelegramUI/Sources/AccountContext.swift
index 6ce770d6be..9249524e72 100644
--- a/submodules/TelegramUI/Sources/AccountContext.swift
+++ b/submodules/TelegramUI/Sources/AccountContext.swift
@@ -16,7 +16,7 @@ import TelegramCallsUI
import TelegramBaseController
import AsyncDisplayKit
import PresentationDataUtils
-//import MeshAnimationCache
+import MeshAnimationCache
private final class DeviceSpecificContactImportContext {
let disposable = MetaDisposable()
@@ -156,7 +156,7 @@ public final class AccountContextImpl: AccountContext {
private var experimentalUISettingsDisposable: Disposable?
public let cachedGroupCallContexts: AccountGroupCallContextCache
- //public let meshAnimationCache: MeshAnimationCache
+ public let meshAnimationCache: MeshAnimationCache
public init(sharedContext: SharedAccountContextImpl, account: Account, limitsConfiguration: LimitsConfiguration, contentSettings: ContentSettings, appConfiguration: AppConfiguration, temp: Bool = false)
{
@@ -189,7 +189,7 @@ public final class AccountContextImpl: AccountContext {
}
self.cachedGroupCallContexts = AccountGroupCallContextCacheImpl()
- //self.meshAnimationCache = MeshAnimationCache(mediaBox: account.postbox.mediaBox)
+ self.meshAnimationCache = MeshAnimationCache(mediaBox: account.postbox.mediaBox)
let updatedLimitsConfiguration = account.postbox.preferencesView(keys: [PreferencesKeys.limitsConfiguration])
|> map { preferences -> LimitsConfiguration in
diff --git a/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift
index 58a6272838..a18486ad8e 100644
--- a/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift
+++ b/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift
@@ -24,7 +24,7 @@ import ShimmerEffect
import WallpaperBackgroundNode
import LocalMediaResources
import AppBundle
-//import LottieMeshSwift
+import LottieMeshSwift
private let nameFont = Font.medium(14.0)
private let inlineBotPrefixFont = Font.regular(14.0)
@@ -1435,7 +1435,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView {
let incomingMessage = item.message.effectivelyIncoming(item.context.account.peerId)
- /*if #available(iOS 13.0, *), item.context.sharedContext.immediateExperimentalUISettings.acceleratedStickers, let meshAnimation = item.context.meshAnimationCache.get(resource: file.resource) {
+ if #available(iOS 13.0, *), item.context.sharedContext.immediateExperimentalUISettings.acceleratedStickers, let meshAnimation = item.context.meshAnimationCache.get(resource: file.resource) {
var overlayMeshAnimationNode: ChatMessageTransitionNode.DecorationItemNode?
if let current = self.overlayMeshAnimationNode {
overlayMeshAnimationNode = current
@@ -1466,7 +1466,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView {
if let meshRenderer = overlayMeshAnimationNode?.contentView as? MeshRenderer {
meshRenderer.add(mesh: meshAnimation, offset: CGPoint(x: CGFloat.random(in: -30.0 ... 30.0), y: CGFloat.random(in: -30.0 ... 30.0)))
}
- } else*/ do {
+ } else {
let pathPrefix = item.context.account.postbox.mediaBox.shortLivedResourceCachePathPrefix(file.resource.id)
let additionalAnimationNode = AnimatedStickerNode()
additionalAnimationNode.setup(source: source, width: Int(animationSize.width * 2.0), height: Int(animationSize.height * 2.0), playbackMode: .once, mode: .direct(cachePathPrefix: pathPrefix))
diff --git a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm
index cb2af58c81..2a592aed85 100644
--- a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm
+++ b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm
@@ -803,7 +803,7 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL;
[list addObject:@"2.7.7"];
[list addObject:@"3.0.0"];
if (includeReference) {
- //[list addObject:@"4.0.0"];
+ [list addObject:@"4.0.0"];
}
return list;
}