stoobly-agent 0.33.7__py3-none-any.whl → 0.34.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. stoobly_agent/__init__.py +1 -1
  2. stoobly_agent/app/cli/endpoint_cli.py +24 -1
  3. stoobly_agent/app/cli/helpers/endpoint_facade.py +22 -1
  4. stoobly_agent/app/cli/helpers/endpoints_import_context.py +57 -0
  5. stoobly_agent/app/cli/helpers/endpoints_import_service.py +147 -0
  6. stoobly_agent/app/cli/helpers/openapi_endpoint_adapter.py +111 -6
  7. stoobly_agent/app/models/types/endpoint.py +28 -2
  8. stoobly_agent/app/settings/intercept_settings.py +1 -1
  9. stoobly_agent/lib/api/api.py +4 -0
  10. stoobly_agent/lib/api/body_param_names_resource.py +36 -0
  11. stoobly_agent/lib/api/endpoints_resource.py +9 -2
  12. stoobly_agent/lib/api/header_names_resource.py +36 -0
  13. stoobly_agent/lib/api/interfaces/endpoints.py +2 -0
  14. stoobly_agent/lib/api/query_param_names_resource.py +36 -0
  15. stoobly_agent/lib/api/response_header_names_resource.py +36 -0
  16. stoobly_agent/lib/api/response_param_names_resource.py +36 -0
  17. stoobly_agent/public/0-es2015.a7e60cafc0868f87a771.js +1 -0
  18. stoobly_agent/public/0-es5.a7e60cafc0868f87a771.js +1 -0
  19. stoobly_agent/public/1-es2015.cb071776436f10954db5.js +1 -0
  20. stoobly_agent/public/1-es5.cb071776436f10954db5.js +1 -0
  21. stoobly_agent/public/10-es2015.bb1702aaf3968a2cb521.js +1 -0
  22. stoobly_agent/public/10-es5.bb1702aaf3968a2cb521.js +1 -0
  23. stoobly_agent/public/12-es2015.591ec692afb8f8d13842.js +1 -0
  24. stoobly_agent/public/12-es5.591ec692afb8f8d13842.js +1 -0
  25. stoobly_agent/public/13-es2015.f381e7d6ff361b669e12.js +1 -0
  26. stoobly_agent/public/13-es5.f381e7d6ff361b669e12.js +1 -0
  27. stoobly_agent/public/14-es2015.1ffb225a16d6292dbddd.js +1 -0
  28. stoobly_agent/public/14-es5.1ffb225a16d6292dbddd.js +1 -0
  29. stoobly_agent/public/15-es2015.2cf39bcaeb0ea2c52297.js +1 -0
  30. stoobly_agent/public/15-es5.2cf39bcaeb0ea2c52297.js +1 -0
  31. stoobly_agent/public/16-es2015.0e9422b274e642f95e41.js +1 -0
  32. stoobly_agent/public/16-es5.0e9422b274e642f95e41.js +1 -0
  33. stoobly_agent/public/17-es2015.7fb08367a22d1e34aed7.js +1 -0
  34. stoobly_agent/public/17-es5.7fb08367a22d1e34aed7.js +1 -0
  35. stoobly_agent/public/18-es2015.5caa4789d1c335e628f2.js +1 -0
  36. stoobly_agent/public/18-es5.5caa4789d1c335e628f2.js +1 -0
  37. stoobly_agent/public/19-es2015.8049aef58c329c500f9b.js +1 -0
  38. stoobly_agent/public/19-es5.8049aef58c329c500f9b.js +1 -0
  39. stoobly_agent/public/2-es2015.8f184ac63348ba447b1f.js +1 -0
  40. stoobly_agent/public/2-es5.8f184ac63348ba447b1f.js +1 -0
  41. stoobly_agent/public/20-es2015.473486aabfa4d4a6431b.js +1 -0
  42. stoobly_agent/public/20-es5.473486aabfa4d4a6431b.js +1 -0
  43. stoobly_agent/public/21-es2015.63ed4e6b242fbc047bd6.js +1 -0
  44. stoobly_agent/public/21-es5.63ed4e6b242fbc047bd6.js +1 -0
  45. stoobly_agent/public/22-es2015.df183804415330639987.js +1 -0
  46. stoobly_agent/public/22-es5.df183804415330639987.js +1 -0
  47. stoobly_agent/public/23-es2015.0da63b056fabde91bb0b.js +1 -0
  48. stoobly_agent/public/23-es5.0da63b056fabde91bb0b.js +1 -0
  49. stoobly_agent/public/28-es2015.9fe030e9d3b0e52239aa.js +1 -0
  50. stoobly_agent/public/28-es5.9fe030e9d3b0e52239aa.js +1 -0
  51. stoobly_agent/public/29-es2015.9b440f22de725732e5ab.js +1 -0
  52. stoobly_agent/public/29-es5.9b440f22de725732e5ab.js +1 -0
  53. stoobly_agent/public/30-es2015.6ad2a5126b0a27c1e7c6.js +1 -0
  54. stoobly_agent/public/30-es5.6ad2a5126b0a27c1e7c6.js +1 -0
  55. stoobly_agent/public/31-es2015.f4291150f35d54ff19ca.js +1 -0
  56. stoobly_agent/public/31-es5.f4291150f35d54ff19ca.js +1 -0
  57. stoobly_agent/public/32-es2015.c8f6ccb43bdba0adf199.js +1 -0
  58. stoobly_agent/public/32-es5.c8f6ccb43bdba0adf199.js +1 -0
  59. stoobly_agent/public/33-es2015.f985e93402ebf86322ef.js +1 -0
  60. stoobly_agent/public/33-es5.f985e93402ebf86322ef.js +1 -0
  61. stoobly_agent/public/34-es2015.0e1961fb3cf649a52d49.js +1 -0
  62. stoobly_agent/public/34-es5.0e1961fb3cf649a52d49.js +1 -0
  63. stoobly_agent/public/35-es2015.a4ae56a89c0324397624.js +1 -0
  64. stoobly_agent/public/35-es5.a4ae56a89c0324397624.js +1 -0
  65. stoobly_agent/public/36-es2015.b8fdd25590a79c820119.js +1 -0
  66. stoobly_agent/public/36-es5.b8fdd25590a79c820119.js +1 -0
  67. stoobly_agent/public/37-es2015.6567a0ce4cf87ad7287b.js +1 -0
  68. stoobly_agent/public/37-es5.6567a0ce4cf87ad7287b.js +1 -0
  69. stoobly_agent/public/38-es2015.6f6d751bff41d84d727a.js +1 -0
  70. stoobly_agent/public/38-es5.6f6d751bff41d84d727a.js +1 -0
  71. stoobly_agent/public/39-es2015.47f63177e7d4509a22fa.js +1 -0
  72. stoobly_agent/public/39-es5.47f63177e7d4509a22fa.js +1 -0
  73. stoobly_agent/public/3rdpartylicenses.txt +2418 -0
  74. stoobly_agent/public/4-es2015.182e1ce1811ef67571fb.js +1 -0
  75. stoobly_agent/public/4-es5.182e1ce1811ef67571fb.js +1 -0
  76. stoobly_agent/public/40-es2015.5333067cdc4077c7495a.js +1 -0
  77. stoobly_agent/public/40-es5.5333067cdc4077c7495a.js +1 -0
  78. stoobly_agent/public/41-es2015.7a2434380c81c11ff2c5.js +1 -0
  79. stoobly_agent/public/41-es5.7a2434380c81c11ff2c5.js +1 -0
  80. stoobly_agent/public/42-es2015.5dde662fe1e3b4e4bdd1.js +1 -0
  81. stoobly_agent/public/42-es5.5dde662fe1e3b4e4bdd1.js +1 -0
  82. stoobly_agent/public/43-es2015.608e917d689b9bb762cb.js +1 -0
  83. stoobly_agent/public/43-es5.608e917d689b9bb762cb.js +1 -0
  84. stoobly_agent/public/44-es2015.2ae5fea15b5e8c2681d3.js +1 -0
  85. stoobly_agent/public/44-es5.2ae5fea15b5e8c2681d3.js +1 -0
  86. stoobly_agent/public/45-es2015.e46f228c795174428515.js +1 -0
  87. stoobly_agent/public/45-es5.e46f228c795174428515.js +1 -0
  88. stoobly_agent/public/46-es2015.22a0d8e0b4bbfb513741.js +1 -0
  89. stoobly_agent/public/46-es5.22a0d8e0b4bbfb513741.js +1 -0
  90. stoobly_agent/public/47-es2015.3878e5d1d692107748f3.js +1 -0
  91. stoobly_agent/public/47-es5.3878e5d1d692107748f3.js +1 -0
  92. stoobly_agent/public/5-es2015.aba7173be56fc19b4b6f.js +1 -0
  93. stoobly_agent/public/5-es5.aba7173be56fc19b4b6f.js +1 -0
  94. stoobly_agent/public/6-es2015.5fb726c0555664300974.js +1 -0
  95. stoobly_agent/public/6-es5.5fb726c0555664300974.js +1 -0
  96. stoobly_agent/public/7-es2015.9b9ab4adf24d13bdc2f8.js +1 -0
  97. stoobly_agent/public/7-es5.9b9ab4adf24d13bdc2f8.js +1 -0
  98. stoobly_agent/public/8-es2015.cdd7dce2a24aaf9d974f.js +1 -0
  99. stoobly_agent/public/8-es5.cdd7dce2a24aaf9d974f.js +1 -0
  100. stoobly_agent/public/9-es2015.cdde98f2537997afbf0f.js +1 -0
  101. stoobly_agent/public/9-es5.cdde98f2537997afbf0f.js +1 -0
  102. stoobly_agent/public/CHANGELOG.md +58 -0
  103. stoobly_agent/public/README.md +264 -0
  104. stoobly_agent/public/_redirects +1 -0
  105. stoobly_agent/public/assets/img/demo/1.jpg +0 -0
  106. stoobly_agent/public/assets/img/demo/2.jpg +0 -0
  107. stoobly_agent/public/assets/img/demo/3.jpg +0 -0
  108. stoobly_agent/public/assets/img/demo/4.jpg +0 -0
  109. stoobly_agent/public/assets/img/demo/5.jpg +0 -0
  110. stoobly_agent/public/assets/img/demo/6.jpg +0 -0
  111. stoobly_agent/public/assets/img/demo/7.jpg +0 -0
  112. stoobly_agent/public/assets/img/demo/8.jpg +0 -0
  113. stoobly_agent/public/assets/img/demo/landscape.jpg +0 -0
  114. stoobly_agent/public/assets/img/demo/mountain-cinematic.jpg +0 -0
  115. stoobly_agent/public/assets/img/illustrations/checklist.svg +164 -0
  116. stoobly_agent/public/assets/img/illustrations/data_center.svg +150 -0
  117. stoobly_agent/public/assets/img/illustrations/idea.svg +213 -0
  118. stoobly_agent/public/assets/img/illustrations/it_support.svg +168 -0
  119. stoobly_agent/public/assets/img/illustrations/peak_mountain_3.svg +262 -0
  120. stoobly_agent/public/assets/img/illustrations/under_constructions_1.svg +282 -0
  121. stoobly_agent/public/assets/img/logo/colored.png +0 -0
  122. stoobly_agent/public/assets/img/logo/colored.svg +9 -0
  123. stoobly_agent/public/assets/img/logo/white.png +0 -0
  124. stoobly_agent/public/assets/img/logo/white.svg +8 -0
  125. stoobly_agent/public/common-es2015.6f230354b12587f9be81.js +1 -0
  126. stoobly_agent/public/common-es5.6f230354b12587f9be81.js +1 -0
  127. stoobly_agent/public/favicon.ico +0 -0
  128. stoobly_agent/public/index.html +118 -0
  129. stoobly_agent/public/main-es2015.081bbd2709f22e95933e.js +1 -0
  130. stoobly_agent/public/main-es5.081bbd2709f22e95933e.js +1 -0
  131. stoobly_agent/public/polyfills-es2015.8ce2adc69f283f6c4c5e.js +1 -0
  132. stoobly_agent/public/polyfills-es5.7530172ddcec11a10eb3.js +1 -0
  133. stoobly_agent/public/runtime-es2015.362e49d383fb724f5414.js +1 -0
  134. stoobly_agent/public/runtime-es5.362e49d383fb724f5414.js +1 -0
  135. stoobly_agent/public/styles.ca104d947fbb2eebbeca.css +6 -0
  136. stoobly_agent/test/app/cli/helpers/openapi_endpoint_adapter_additional_props_test.py +34 -0
  137. stoobly_agent/test/app/cli/helpers/openapi_endpoint_adapter_missing_info_test.py +80 -3
  138. stoobly_agent/test/app/cli/helpers/openapi_endpoint_adapter_missing_oauth2_scopes_test.py +82 -1
  139. stoobly_agent/test/app/cli/helpers/openapi_endpoint_adapter_missing_servers_test.py +80 -3
  140. stoobly_agent/test/app/cli/helpers/openapi_endpoint_adapter_test.py +617 -4
  141. {stoobly_agent-0.33.7.dist-info → stoobly_agent-0.34.0.dist-info}/METADATA +1 -1
  142. {stoobly_agent-0.33.7.dist-info → stoobly_agent-0.34.0.dist-info}/RECORD +145 -19
  143. {stoobly_agent-0.33.7.dist-info → stoobly_agent-0.34.0.dist-info}/LICENSE +0 -0
  144. {stoobly_agent-0.33.7.dist-info → stoobly_agent-0.34.0.dist-info}/WHEEL +0 -0
  145. {stoobly_agent-0.33.7.dist-info → stoobly_agent-0.34.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,264 @@
1
+ <img height="60px" width="60px" style="float: left;" src="/assets/img/logo/white.svg" alt="Vex Logo">
2
+ <h2 style="height: 60px; line-height: 60px; margin-left: 70px; font-weight: 500; border: none;">VEX</h2>
3
+
4
+ # Introduction
5
+
6
+ Vex is a Creative, Responsive Material Design Admin Template built with Angular 8+ and the Angular-CLI. It extends the Material Design components built by the Angular team and it offers you everything you need to get started with your next CRM, CMS, Project Management, or other projects.
7
+
8
+ Vex has **no dependency on jQuery or similiar libraries**, Angular's functionality is completely used.
9
+
10
+ Support is available through E-Mail ([themeforest@visurel.com](mailto:themeforest@visurel.com)). If you purchased the theme and love it, consider giving it a 5-star rating here on ThemeForest. It really helps pushing out more updates and adding more great features.
11
+
12
+ # Getting Started
13
+
14
+ > In this section you will find the basic folder structure and everything you need to get the template up and running the first time to start developing.
15
+
16
+ ## Folder Structure
17
+
18
+ | Name | Description |
19
+ | -------------: |---------------
20
+ | `angular.json` | Used for configuration of project specific settings. You can add external styles and scripts, change the output folder, add assets, add environment files and more. |
21
+ | `e2e` | Will be used for end-to-end tests to ensure functionality for users before deploying. |
22
+ | `node_modules` | All external modules used are here. Do not mess with this folder, as it is auto-generated by using `npm install`. |
23
+ | `package.json` | Contains all dependencies used for production and development. |
24
+ | `src` | Contains all Angular Typescript code, assets and basically everything the end user will have access to. |
25
+ | `tslint.json` | Angular-CLI includes an automatic Typescript-Linter, which can be configured with this file. |
26
+
27
+ ## Installation
28
+
29
+ Angular-CLI allows you to create a new App in a matter of seconds and provides an awesome way to generate scaffolds for basically all Angular-Components. [You can take a look at what commands are available here.](//github.com/angular/angular-cli/blob/master/packages/angular/cli/README.md#generating-components-directives-pipes-and-services)
30
+
31
+ In this section, we are going to install Angular-CLI and it's prerequisites and then generate our first project with a few various components.
32
+
33
+ ### Prerequisites
34
+ > Before we can install Angular-CLI we will have to get a few thing set up first. To run Angular-CLI we will need to install this prerequisite first:
35
+ * **NodeJS** v10 or newer
36
+
37
+ [A detailed instruction on how to install NodeJS is available here.](//docs.npmjs.com/getting-started/installing-node)
38
+
39
+ ### Installing Angular-CLI
40
+
41
+ Installing Angular-CLI is as simple as running this simple command:
42
+
43
+ `npm install -g @angular/cli@latest`
44
+ or
45
+ `sudo npm install -g @angular/cli@latest`
46
+
47
+ and the package manager `npm` will do the rest.
48
+
49
+ ### Install Vex Dependencies
50
+
51
+ Navigate to the Vex folder and run `npm install` to install all dependencies required by Vex.
52
+
53
+ ## Start Development Server
54
+
55
+ Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
56
+
57
+ ## Build for Production
58
+
59
+ If you want to create a build for a production environment you can simply run `npm run build` or `ng build --prod` and you will get static HTML and JS files in the `/dist` folder ready to be uploaded to any server.
60
+
61
+ # Customization
62
+
63
+ In this section you are going to learn how to customize Vex to be exactly the way you want it to be.
64
+
65
+ ## Configuration
66
+
67
+ Configuring the Vex Layout to your needs is as easy as setting a simple object with the values you want, here's an example configuration which handles everything for you:
68
+
69
+ You can change these values even at run-time and the page will adjust to the changes.
70
+
71
+ ```typescript
72
+ {
73
+ id: 'vex-default',
74
+ layout: 'horizontal',
75
+ boxed: false,
76
+ sidenav: {
77
+ layout: 'expanded'
78
+ },
79
+ toolbar: {
80
+ fixed: true
81
+ },
82
+ footer: {
83
+ visible: true,
84
+ fixed: true
85
+ }
86
+ }
87
+ ```
88
+
89
+ ## Changing Styling and CSS Variables
90
+
91
+ > Most of the styling (padding, colors, fonts, font-weights, ...) is build very modular and easily customizable. If you want to change any specific style globally you can just change the CSS Variable inside the `style.scss` file and it will update every single section of the page.
92
+
93
+ Here are just a few example variables, almost everything is done through variables:
94
+ ```typescript
95
+ --container-width: 1200px;
96
+ --padding: 24px;
97
+ --font: Roboto, "Helvetica Neue", sans-serif;
98
+ --font-weight-semi-bold: 500;
99
+ --text-color: #{$dark-primary-text};
100
+ --sidenav-width: 280px;
101
+ --sidenav-background: #{$sidenav-background};
102
+ --sidenav-color: white;
103
+ // and much more...
104
+ ```
105
+
106
+ ## Using Custom Colors for the Primary/Secondary/Warn Palettes
107
+
108
+ > Inside the `style.scss` find the section below. The values behind the names are just `rgb` colors, so `--color-primary-500` would be `rgb(92, 119, 255)` if you want to customize these colors you can do that easily by changing the colors for these variables.
109
+
110
+ The numbers behind the `--color-primary-` are called `hue`. Usually the `500-hue` is a strong colorful color e.g. a strong blue. The `400, 300, 200, 100, 50` are lighter versions of the base color and the `600, 700, 800, 900` are darker versions of the base color.
111
+
112
+ For each `primary color` there is a `contrast` variable. The contrast variable is used when you want to display something on the `primary color`.
113
+
114
+ Example: You use `--color-primary-900` as your background color (and the 900 hue should be pretty dark), and want to display text on that background, then you want the `--color-primary-contrast-900` to be `white` and use that as the text color.
115
+
116
+ This works the same for all the other colors too.
117
+
118
+ ```typescript
119
+ // Colors
120
+ --color-primary-50: rgb(236, 239, 255);
121
+ --color-primary-100: rgb(206, 215, 255);
122
+ --color-primary-200: rgb(174, 188, 255);
123
+ --color-primary-300: rgb(142, 161, 255);
124
+ --color-primary-400: rgb(117, 140, 255);
125
+ --color-primary-500: rgb(92, 119, 255);
126
+ --color-primary-600: rgb(85, 112, 255);
127
+ --color-primary-700: rgb(75, 101, 255);
128
+ --color-primary-800: rgb(65, 91, 255);
129
+ --color-primary-900: rgb(48, 72, 255);
130
+ --color-primary-A100: rgb(128, 216, 255);
131
+ --color-primary-A200: rgb(64, 196, 255);
132
+ --color-primary-A400: rgb(219, 223, 255);
133
+ --color-primary-A700: rgb(194, 200, 255);
134
+ --color-primary-contrast-50: #{$dark-primary-text};
135
+ --color-primary-contrast-100: #{$dark-primary-text};
136
+ --color-primary-contrast-200: #{$dark-primary-text};
137
+ --color-primary-contrast-300: #{$dark-primary-text};
138
+ --color-primary-contrast-400: #{$dark-primary-text};
139
+ --color-primary-contrast-500: #{$light-primary-text};
140
+ --color-primary-contrast-600: #{$light-primary-text};
141
+ --color-primary-contrast-700: #{$light-primary-text};
142
+ --color-primary-contrast-800: #{$light-primary-text};
143
+ --color-primary-contrast-900: #{$light-primary-text};
144
+ --color-primary-contrast-A100: #{$dark-primary-text};
145
+ --color-primary-contrast-A200: #{$dark-primary-text};
146
+ --color-primary-contrast-A400: #{$dark-primary-text};
147
+ --color-primary-contrast-A700: #{$dark-primary-text};
148
+ ```
149
+
150
+ ## Adding Menu Items
151
+
152
+ Our Menu is generated completely dynamic and is therefore very easy to customize and use, the simplest way is to simply inject the NavigationService and just override the `items` instance variable. Navigation Items have the `NavigationItem` type which you can use for autocompletion and type-safety. (Generally, all our components have typings available!)
153
+
154
+ You can add 3 different types: **Subheading, Link, Dropdown**
155
+
156
+ Here's an example inside the AppComponent:
157
+
158
+ ```typescript
159
+ @Component({
160
+ selector: 'vex-root',
161
+ templateUrl: './app.component.html',
162
+ styleUrls: ['./app.component.scss']
163
+ })
164
+ export class AppComponent {
165
+ title = 'vex';
166
+
167
+ constructor(private navigationService: NavigationService) {
168
+ this.navigationService.items = [
169
+ {
170
+ label: 'Subheading'
171
+ },
172
+ {
173
+ label: 'Item with a Link',
174
+ route: '/my-link',
175
+ icon: icAssigment
176
+ },
177
+ {
178
+ label: 'Dropdown Item',
179
+ icon: icAdd,
180
+ children: [
181
+ {
182
+ label: 'Item with Link inside Dropdown',
183
+ route: '/custom-link'
184
+ }
185
+ ]
186
+ }
187
+ ];
188
+ }
189
+ }
190
+ ```
191
+
192
+ ## Generating the first `Component`
193
+
194
+ > Now that we have installed all prerequisites it's time to start developing our app. Angular-CLI offers a lot of assistance and allows you to generate basically all Angular-Components there are. *(In a smart way!)*
195
+
196
+ To generate our first `component` we simply open up a terminal and navigate in our Angular-App. Now we simply run `ng g component client` and we get a new component in `/src/app/client` with the following files:
197
+
198
+ * `client.component.ts`
199
+ * `client.component.html`
200
+ * `client.component.css`
201
+ * `client.component.spec.ts`
202
+
203
+ The files `client.component.ts` and `client.component.spec.ts` contain the most code, the other files only contain placeholders.
204
+
205
+ **client.component.ts**
206
+
207
+ ```typescript
208
+ import { Component, OnInit } from '@angular/core';
209
+
210
+ @Component({
211
+ selector: 'app-client',
212
+ templateUrl: 'client.component.html',
213
+ styleUrls: ['client.component.css']
214
+ })
215
+ export class ClientComponent implements OnInit {
216
+
217
+ constructor() { }
218
+
219
+ ngOnInit() {
220
+ }
221
+
222
+ }
223
+ ```
224
+ By executing this short command, we just saved ourselves a lot of time creating all these `Component` files and boilerplate code.
225
+
226
+ [Syntax for all commands are available here.](//github.com/angular/angular-cli/blob/master/packages/angular/cli/README.md#generating-components-directives-pipes-and-services)
227
+
228
+ ## Generating a Service in a specific folder
229
+ Now we have our `component`, but what if we want to share some data between components and need to create a `service` to manage this all. Well, we probably would want the service to be in the correct folder, either right in the components folder or in the `shared` folder in `/src/app/`.
230
+
231
+ Either way, with Angular-CLI we can generate in any folder, wherever we want. Simply use the path *(relative to `/src/app/`)* and use it as the name of the generated component.
232
+
233
+ `ng g service shared/client`
234
+ or
235
+ `ng g service client/shared/client`
236
+
237
+ Or anything you need.
238
+ Afterward we will find two generated files in our specified folder: `client.service.ts` and `client.service.spec.ts`.
239
+
240
+ **client.service.ts**
241
+ ```typescript
242
+ import { Injectable } from '@angular/core';
243
+
244
+ @Injectable()
245
+ export class ClientService {
246
+
247
+ constructor() { }
248
+
249
+ }
250
+ ```
251
+
252
+ ## Running unit tests
253
+
254
+ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
255
+
256
+ ## Running end-to-end tests
257
+
258
+ Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
259
+
260
+ ## Further help
261
+
262
+ > If you have any specific questions about the template, you can contact us anytime on our support email ([themeforest@visurel.com](mailto:themeforest@visurel.com)) and we'll help you with any issues you may encounter. If you encounter any bugs or issues, feel free to send them over to us with a detailed description and we'll fix the issue ASAP.
263
+
264
+ Thanks for reading, if you have any pre-sale questions or just anything, don't hesitate to contact us! :)
@@ -0,0 +1 @@
1
+ /* /index.html 200
@@ -0,0 +1,164 @@
1
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg"
2
+ width="558.65" height="585.42" viewBox="0 0 558.65 585.42">
3
+ <defs>
4
+ <linearGradient id="linear-gradient" x1="342.44" y1="446.53" x2="326.67" y2="980.37" gradientUnits="userSpaceOnUse">
5
+ <stop offset="0" stop-opacity="0"/>
6
+ <stop offset="0.98"/>
7
+ </linearGradient>
8
+ <linearGradient id="linear-gradient-2" x1="478.78" y1="155.87" x2="34.48" y2="513.17"
9
+ xlink:href="#linear-gradient"/>
10
+ <linearGradient id="linear-gradient-3" x1="165.7" y1="224.15" x2="268.19" y2="262.82"
11
+ xlink:href="#linear-gradient"/>
12
+ <linearGradient id="linear-gradient-4" x1="434.14" y1="131.57" x2="358.68" y2="273.48"
13
+ xlink:href="#linear-gradient"/>
14
+ <linearGradient id="linear-gradient-5" x1="229.82" y1="122.61" x2="280.72" y2="122.61"
15
+ gradientUnits="userSpaceOnUse">
16
+ <stop offset="0" stop-color="#ecc4d7"/>
17
+ <stop offset="0.42" stop-color="#efd4d1"/>
18
+ <stop offset="1" stop-color="#f2eac9"/>
19
+ </linearGradient>
20
+ <linearGradient id="linear-gradient-6" x1="259.32" y1="245.1" x2="-185.83" y2="180.06"
21
+ xlink:href="#linear-gradient"/>
22
+ <linearGradient id="linear-gradient-7" x1="310.46" y1="212.26" x2="290.19" y2="361.68"
23
+ xlink:href="#linear-gradient"/>
24
+ <linearGradient id="linear-gradient-8" x1="379.98" y1="179.97" x2="427.54" y2="179.97"
25
+ xlink:href="#linear-gradient-5"/>
26
+ <linearGradient id="linear-gradient-9" x1="243.29" y1="544.63" x2="282.19" y2="544.63"
27
+ xlink:href="#linear-gradient-5"/>
28
+ <linearGradient id="linear-gradient-10" x1="102.31" y1="511.23" x2="124.93" y2="511.23"
29
+ xlink:href="#linear-gradient-5"/>
30
+ <linearGradient id="linear-gradient-11" x1="560.85" y1="-82.12" x2="494.97" y2="1162.94"
31
+ xlink:href="#linear-gradient"/>
32
+ <linearGradient id="linear-gradient-12" x1="565.03" y1="-81.9" x2="499.15" y2="1163.16"
33
+ xlink:href="#linear-gradient"/>
34
+ <linearGradient id="linear-gradient-13" x1="572.99" y1="-81.47" x2="507.11" y2="1163.58"
35
+ xlink:href="#linear-gradient"/>
36
+ <linearGradient id="linear-gradient-14" x1="576.85" y1="-81.27" x2="510.97" y2="1163.79"
37
+ xlink:href="#linear-gradient"/>
38
+ <linearGradient id="linear-gradient-15" x1="580.62" y1="-81.07" x2="514.73" y2="1163.99"
39
+ xlink:href="#linear-gradient"/>
40
+ </defs>
41
+ <title>26. Checklist</title>
42
+ <path
43
+ d="M266.19,108.7c-43.13,26.16-97.53,32.28-136,64.91-13.58,11.53-24.54,25.93-33.37,41.39C68.12,265.3,62.23,328.08,81.1,382.85s62.17,100.59,115.78,122.53c25.64,10.49,53.13,15.66,80.6,19.27a762.82,762.82,0,0,0,152.78,4.6c32.21-2.27,66.22-7.39,91-28.09,16.52-13.8,27.28-33.27,35.6-53.12a313.52,313.52,0,0,0,20.08-170.88c-5.73-34.91-17.58-69.08-37.1-98.58-32.84-49.65-84.52-82.22-137.48-107C381.57,61.9,355,45,331.82,54.78,307.45,65.08,289.41,94.62,266.19,108.7Z"
44
+ transform="translate(-67.17 -4.31)" fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
45
+ <g>
46
+ <path
47
+ d="M84.34,527.25c-4.55.87-9.33,1.88-12.78,5-6.58,5.9-5.23,17.22.55,23.9s14.58,9.79,23,12.34c70.32,21.15,145,21.3,218.42,21.27,22.43,0,45.45-.12,66.4-8.14,14.52-5.55,27.41-14.69,41.73-20.76,53.75-22.8,116.64.85,173.47-12.56,6.67-1.57,14.08-4.43,16.4-10.88,4.69-13-14.27-20.95-28.1-21.63a1683.85,1683.85,0,0,0-182.11.86c-48.45,2.85-92.59-11.53-141.22-9.56A1194.73,1194.73,0,0,0,84.34,527.25Z"
48
+ transform="translate(-67.17 -4.31)" opacity="0.52" fill="url(#linear-gradient)"/>
49
+ <path
50
+ d="M361,515.72H344.9A20.78,20.78,0,0,1,324.12,495V25.09A20.79,20.79,0,0,1,344.9,4.31H361a20.78,20.78,0,0,0-20.78,20.78V495A20.77,20.77,0,0,0,361,515.72Z"
51
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
52
+ <path
53
+ d="M361,515.72H344.9A20.78,20.78,0,0,1,324.12,495V25.09A20.79,20.79,0,0,1,344.9,4.31H361a20.78,20.78,0,0,0-20.78,20.78V495A20.77,20.77,0,0,0,361,515.72Z"
54
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-2)"/>
55
+ <path d="M209.71,166.09s-45.73,59.36-41.07,86,15.89,53.78,15.89,53.78l30.68-131Z"
56
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
57
+ <path d="M209.71,166.09s-45.73,59.36-41.07,86,15.89,53.78,15.89,53.78l30.68-131Z"
58
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-3)"/>
59
+ <rect x="273.02" width="285.63" height="511.41" rx="20.78" fill="#5c77ff"/>
60
+ <path
61
+ d="M485.94,61.94H362.88a7.28,7.28,0,0,1-7.28-7.29h0a7.28,7.28,0,0,1,7.28-7.28H485.94a7.29,7.29,0,0,1,7.29,7.28h0A7.29,7.29,0,0,1,485.94,61.94Z"
62
+ transform="translate(-67.17 -4.31)" fill="#fff" opacity="0.34" style="isolation: isolate"/>
63
+ <path
64
+ d="M485.94,136.23H362.88A7.28,7.28,0,0,1,355.6,129h0a7.28,7.28,0,0,1,7.28-7.29H485.94a7.29,7.29,0,0,1,7.29,7.29h0A7.29,7.29,0,0,1,485.94,136.23Z"
65
+ transform="translate(-67.17 -4.31)" fill="#fff" opacity="0.34" style="isolation: isolate"/>
66
+ <path
67
+ d="M485.94,210.52H362.88a7.28,7.28,0,0,1-7.28-7.28h0a7.28,7.28,0,0,1,7.28-7.29H485.94a7.29,7.29,0,0,1,7.29,7.29h0A7.29,7.29,0,0,1,485.94,210.52Z"
68
+ transform="translate(-67.17 -4.31)" fill="#fff" opacity="0.34" style="isolation: isolate"/>
69
+ <path
70
+ d="M485.94,284.82H362.88a7.29,7.29,0,0,1-7.28-7.29h0a7.28,7.28,0,0,1,7.28-7.29H485.94a7.29,7.29,0,0,1,7.29,7.29h0A7.3,7.3,0,0,1,485.94,284.82Z"
71
+ transform="translate(-67.17 -4.31)" fill="#fff" opacity="0.34" style="isolation: isolate"/>
72
+ <path
73
+ d="M485.94,359.11H362.88a7.29,7.29,0,0,1-7.28-7.29h0a7.28,7.28,0,0,1,7.28-7.29H485.94a7.29,7.29,0,0,1,7.29,7.29h0A7.3,7.3,0,0,1,485.94,359.11Z"
74
+ transform="translate(-67.17 -4.31)" fill="#fff" opacity="0.34" style="isolation: isolate"/>
75
+ <path
76
+ d="M485.94,433.4H362.88a7.28,7.28,0,0,1-7.28-7.29h0a7.29,7.29,0,0,1,7.28-7.29H485.94a7.3,7.3,0,0,1,7.29,7.29h0A7.29,7.29,0,0,1,485.94,433.4Z"
77
+ transform="translate(-67.17 -4.31)" fill="#fff" opacity="0.34" style="isolation: isolate"/>
78
+ <path
79
+ d="M188.4,322.54c8.65-16.63,50.77,19.2,56.09,37s-29.28,80.32-47.24,99.62S146,495.73,124.73,501.72c0,0-7.5-10-6-14.11s45.58-36.24,49.57-55.65S179.75,339.18,188.4,322.54Z"
80
+ transform="translate(-67.17 -4.31)" fill="#302f47"/>
81
+ <path
82
+ d="M391.67,167.73s-5.32-15.45-4.43-17.15,6.06-5.62,8.5-3.33,7.39,16.49,7.39,16.49L455.08,146s5.8-.9,5.19,5.44S403.76,180,403.76,180,399.21,184.66,391.67,167.73Z"
83
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
84
+ <path
85
+ d="M391.67,167.73s-5.32-15.45-4.43-17.15,6.06-5.62,8.5-3.33,7.39,16.49,7.39,16.49L455.08,146s5.8-.9,5.19,5.44S403.76,180,403.76,180,399.21,184.66,391.67,167.73Z"
86
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-4)"/>
87
+ <path
88
+ d="M267.3,80.07s16.21,28.3,13,45.45-12.38,13.3-15.63,22.17a74.69,74.69,0,0,0-3.9,18s-9.41,7.64-26.26-13.15a45.87,45.87,0,0,0-2.62-25.15C226.52,114.58,229.42,68.34,267.3,80.07Z"
89
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-5)"/>
90
+ <path
91
+ d="M217.34,65.47c-24.82,23.68-35,9.32-47.4,15.87s-17.17,8.89-12.67,33.56-17.68,19.34-23,34.27c-15.21,42.67,10,50.12,38.14,48.94s25.49-52.54,46.23-54.53,25,1.11,33.39-25.53c4.94-15.67,1.42-22.51,8.13-27.83,8.57-6.79,11.56-21.5,2.61-27.77C252.92,55.55,233.13,50.41,217.34,65.47Z"
92
+ transform="translate(-67.17 -4.31)" fill="#3f3d56"/>
93
+ <path
94
+ d="M215.58,162.18s-2.07-9.46,4.73-12.71,26.29-4.82,29,0,5.68,15.74,8.58,16,14.81,19.2,14.81,19.2,2.49,52.62,2.63,73.05c.23,32.46-19.22,83.13-46.07,79s-46.44-11.59-46-25.51,23.12-118.79,21.5-130.6C203,167.87,215.12,161.74,215.58,162.18Z"
95
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
96
+ <path
97
+ d="M215.58,162.18s-2.07-9.46,4.73-12.71,26.29-4.82,29,0,5.68,15.74,8.58,16,14.81,19.2,14.81,19.2,2.49,52.62,2.63,73.05c.23,32.46-19.22,83.13-46.07,79s-46.44-11.59-46-25.51,23.12-118.79,21.5-130.6C203,167.87,215.12,161.74,215.58,162.18Z"
98
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-6)"/>
99
+ <path
100
+ d="M239.69,178.59s10.34-20.4,25-8,32.65,58.25,45.17,58.51,64-41.22,68.49-37.47,12.29,13.11,8.09,21.1-61.76,58.39-86.55,53.67S222.26,227.83,239.69,178.59Z"
101
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
102
+ <path
103
+ d="M239.69,178.59s10.34-20.4,25-8,32.65,58.25,45.17,58.51,64-41.22,68.49-37.47,12.29,13.11,8.09,21.1-61.76,58.39-86.55,53.67S222.26,227.83,239.69,178.59Z"
104
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-7)"/>
105
+ <path
106
+ d="M380,193.13s10.46-19.48,11.32-23,3.47,1.77,3.47,1.77,9-7.1,10.5-10.2,14.53-7.9,20.41-7.13-4,4.38-4,4.38-4.66,2.13-7.1,13.83-4.91,21.71-15.71,26.62-11.49,6-11.49,6S384.85,195.1,380,193.13Z"
107
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-8)"/>
108
+ <path
109
+ d="M188.4,322.54s-12.88,29.48,11.07,57,41.81,49,36.76,91.59,7.06,64.54,7.06,64.54h14.12s21.91-78.9,18.13-112.31-20.27-100.72-20.27-100.72S223,307.24,188.4,322.54Z"
110
+ transform="translate(-67.17 -4.31)" fill="#3f3d56"/>
111
+ <path d="M243.29,535.65v18h38.9s-23.29-4.21-23.95-9-.83-9-.83-9Z" transform="translate(-67.17 -4.31)"
112
+ fill="url(#linear-gradient-9)"/>
113
+ <path
114
+ d="M246.17,548.12c-1.76-.36-3.95-.8-5.06.61a4,4,0,0,0-.68,1.77,21.47,21.47,0,0,0-.38,5.31c.07,1.33.38,2.83,1.53,3.49a4.4,4.4,0,0,0,2.31.37l40.34-.74c1.54,0,3.32-.17,4.19-1.44a3.34,3.34,0,0,0,.5-2.1,7,7,0,0,0-3-5,17.51,17.51,0,0,0-5.49-2.49c-5-1.52-13-4.36-17.94-2.29C257.1,547.84,252.12,549.37,246.17,548.12Z"
115
+ transform="translate(-67.17 -4.31)" fill="#3f3d56"/>
116
+ <path d="M118.34,490.31l-16,8.17,19.48,33.67s-8-22.27-4.22-25.23,7.36-5.21,7.36-5.21Z"
117
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-10)"/>
118
+ <path
119
+ d="M108.5,498.23c-.56-1.71-1.28-3.82-3.06-4.08a3.86,3.86,0,0,0-1.86.29,22,22,0,0,0-4.8,2.34c-1.11.72-2.25,1.74-2.25,3.07a4.43,4.43,0,0,0,.83,2.18q10.42,17.28,20.84,34.56c.8,1.31,1.82,2.78,3.35,2.9a3.38,3.38,0,0,0,2.07-.62,7,7,0,0,0,2.87-5.12,17.62,17.62,0,0,0-.59-6c-1.17-5.07-2.75-13.46-7-16.68C114.22,507.54,110.4,504,108.5,498.23Z"
120
+ transform="translate(-67.17 -4.31)" fill="#3f3d56"/>
121
+ <rect x="456.71" y="24.09" width="53.05" height="46.4" rx="5.69" fill="#fff" opacity="0.34"
122
+ style="isolation: isolate"/>
123
+ <rect x="456.71" y="104.73" width="53.05" height="46.4" rx="5.69" fill="#fff" opacity="0.34"
124
+ style="isolation: isolate"/>
125
+ <rect x="456.71" y="177.9" width="53.05" height="46.4" rx="5.69" fill="#fff" opacity="0.34"
126
+ style="isolation: isolate"/>
127
+ <rect x="456.71" y="322.67" width="53.05" height="46.4" rx="5.69" fill="#fff" opacity="0.34"
128
+ style="isolation: isolate"/>
129
+ <rect x="456.71" y="250.01" width="53.05" height="46.4" rx="5.69" fill="#fff" opacity="0.34"
130
+ style="isolation: isolate"/>
131
+ <rect x="456.71" y="398.6" width="53.05" height="46.4" rx="5.69" fill="#fff" opacity="0.34"
132
+ style="isolation: isolate"/>
133
+ <path
134
+ d="M527.6,44.83l9.54,16c3,5,8.16,6,11.9,2.42l32.29-31.08s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.48c-1.81,1.65-4.28,1.11-5.68-1.26l-7.6-12.87C532,36,529.35,35.78,527.78,38h0A6.66,6.66,0,0,0,527.6,44.83Z"
135
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
136
+ <path
137
+ d="M527.6,124l9.54,16c3,4.95,8.16,6,11.9,2.42l32.29-31.08s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.48c-1.81,1.65-4.28,1.11-5.68-1.26l-7.6-12.87c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,124Z"
138
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
139
+ <path
140
+ d="M527.6,274.85l9.54,16c3,4.95,8.16,6,11.9,2.42l32.29-31.09s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.49c-1.81,1.65-4.28,1.1-5.68-1.26l-7.6-12.87c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,274.85Z"
141
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
142
+ <path
143
+ d="M527.6,348.05l9.54,16c3,4.95,8.16,6,11.9,2.42l32.29-31.08s3-4.3-.19-7.62-5.83.5-5.83.5l-28.6,27.49c-1.81,1.65-4.28,1.1-5.68-1.26l-7.6-12.87c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,348.05Z"
144
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
145
+ <path
146
+ d="M527.6,419.35l9.54,16c3,5,8.16,6,11.9,2.43l32.29-31.09s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.48c-1.81,1.66-4.28,1.11-5.68-1.26L533.43,413c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,419.35Z"
147
+ transform="translate(-67.17 -4.31)" fill="#5c77ff"/>
148
+ <path
149
+ d="M527.6,44.83l9.54,16c3,5,8.16,6,11.9,2.42l32.29-31.08s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.48c-1.81,1.65-4.28,1.11-5.68-1.26l-7.6-12.87C532,36,529.35,35.78,527.78,38h0A6.66,6.66,0,0,0,527.6,44.83Z"
150
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-11)"/>
151
+ <path
152
+ d="M527.6,124l9.54,16c3,4.95,8.16,6,11.9,2.42l32.29-31.08s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.48c-1.81,1.65-4.28,1.11-5.68-1.26l-7.6-12.87c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,124Z"
153
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-12)"/>
154
+ <path
155
+ d="M527.6,274.85l9.54,16c3,4.95,8.16,6,11.9,2.42l32.29-31.09s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.49c-1.81,1.65-4.28,1.1-5.68-1.26l-7.6-12.87c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,274.85Z"
156
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-13)"/>
157
+ <path
158
+ d="M527.6,348.05l9.54,16c3,4.95,8.16,6,11.9,2.42l32.29-31.08s3-4.3-.19-7.62-5.83.5-5.83.5l-28.6,27.49c-1.81,1.65-4.28,1.1-5.68-1.26l-7.6-12.87c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,348.05Z"
159
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-14)"/>
160
+ <path
161
+ d="M527.6,419.35l9.54,16c3,5,8.16,6,11.9,2.43l32.29-31.09s3-4.29-.19-7.61-5.83.5-5.83.5l-28.6,27.48c-1.81,1.66-4.28,1.11-5.68-1.26L533.43,413c-1.44-2.43-4.08-2.65-5.65-.47h0A6.66,6.66,0,0,0,527.6,419.35Z"
162
+ transform="translate(-67.17 -4.31)" fill="url(#linear-gradient-15)"/>
163
+ </g>
164
+ </svg>
@@ -0,0 +1,150 @@
1
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg"
2
+ width="504.59" height="480.9" viewBox="0 0 504.59 480.9">
3
+ <defs>
4
+ <linearGradient id="linear-gradient" x1="254.01" y1="304.13" x2="226.78" y2="268.19" gradientUnits="userSpaceOnUse">
5
+ <stop offset="0" stop-opacity="0"/>
6
+ <stop offset="0.99"/>
7
+ </linearGradient>
8
+ <linearGradient id="linear-gradient-2" x1="243.75" y1="329.23" x2="305.38" y2="335.59"
9
+ xlink:href="#linear-gradient"/>
10
+ <linearGradient id="linear-gradient-3" x1="121.74" y1="108.66" x2="461.85" y2="108.66"
11
+ xlink:href="#linear-gradient"/>
12
+ <linearGradient id="linear-gradient-4" x1="288.59" y1="-46.13" x2="314.02" y2="415.99"
13
+ xlink:href="#linear-gradient"/>
14
+ <linearGradient id="linear-gradient-5" x1="133.9" y1="403.66" x2="133.9" y2="440.51" gradientUnits="userSpaceOnUse">
15
+ <stop offset="0" stop-opacity="0"/>
16
+ <stop offset="0.41" stop-opacity="0.41"/>
17
+ <stop offset="0.99"/>
18
+ </linearGradient>
19
+ <linearGradient id="linear-gradient-6" x1="310.64" y1="392.64" x2="311.75" y2="413.1"
20
+ xlink:href="#linear-gradient-5"/>
21
+ <linearGradient id="linear-gradient-7" x1="209.45" y1="234.78" x2="208.09" y2="196" xlink:href="#linear-gradient"/>
22
+ <linearGradient id="linear-gradient-8" x1="241.07" y1="323.5" x2="270.67" y2="323.5" gradientUnits="userSpaceOnUse">
23
+ <stop offset="0" stop-color="#ecc4d7"/>
24
+ <stop offset="0.42" stop-color="#efd4d1"/>
25
+ <stop offset="1" stop-color="#f2eac9"/>
26
+ </linearGradient>
27
+ <linearGradient id="linear-gradient-9" x1="268.52" y1="330.49" x2="253.32" y2="213.3"
28
+ xlink:href="#linear-gradient"/>
29
+ <linearGradient id="linear-gradient-10" x1="236.72" y1="274.73" x2="248.97" y2="274.73"
30
+ xlink:href="#linear-gradient-8"/>
31
+ <linearGradient id="linear-gradient-11" x1="255.75" y1="294.68" x2="262.36" y2="294.68"
32
+ xlink:href="#linear-gradient-8"/>
33
+ <linearGradient id="linear-gradient-12" x1="254.41" y1="283.76" x2="266.78" y2="283.76"
34
+ xlink:href="#linear-gradient-8"/>
35
+ </defs>
36
+ <g>
37
+ <path
38
+ d="M56.51,142.24c-49.12,122.23-6.28,194-2.17,212.61,6.22,28.25,45.75,154.83,193.74,121.32,30.59-6.93,76.47-29.23,107.76-31.41,26.43-1.85,52.42,6.33,78.75,9.27s56.17-.89,73.3-21.09c15.05-17.76,16.24-43.44,12.86-66.48s-10.56-45.77-9.51-69c1-21.16,8.69-41.33,14.36-61.74,8.46-30.45,12.41-62.88,5.28-93.66s-26.57-59.75-55.27-73C420,43.4,351,82.11,294.41,58.55,263.41,45.65,102.67,27.35,56.51,142.24Z"
39
+ transform="translate(-33.12 -0.87)" fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
40
+ <path
41
+ d="M267.22,271.7a3.85,3.85,0,0,0-.66-2.3,1.75,1.75,0,0,0-2.16-.54c-.39.23-.65.66-1.06.87s-1.09-.08-.95-.52c-1.87.29-3.18,1.92-4.78,2.92-1.27.78-2.75,1.18-4,1.94s-2.42,2.11-2.26,3.59a5.34,5.34,0,0,1,.16,1.42,4.83,4.83,0,0,1-.38.95,4.27,4.27,0,0,0,.37,3.32c.5,1,1.19,2,1.6,3a23.68,23.68,0,0,0,1.1,3.2c.56,1,1.79,1.74,2.81,1.25-.85-1.3-.32-3,.29-4.47,1-2.3,2.15-4.68,4.28-6a8.15,8.15,0,0,0,2.32-1.62,19.57,19.57,0,0,0,1.16-1.92C266.17,275.11,267.26,273.94,267.22,271.7Z"
42
+ transform="translate(-33.12 -0.87)" fill="#3f3d56"/>
43
+ <path
44
+ d="M248.05,287.13a3.63,3.63,0,0,0-1-1c-1.23-.71-2.74.22-3.82,1.14a52.16,52.16,0,0,0-4.22,4.06A3.59,3.59,0,0,0,238,293a3.4,3.4,0,0,0,.29,1.8,25.47,25.47,0,0,0,7.06,10.24,3.28,3.28,0,0,0,1.75.94,3.4,3.4,0,0,0,1.84-.54l7.83-4c1.42-.73,3.11-1.83,2.49-3.7-.41-1.21-1.7-1.62-2.67-2.31A41.64,41.64,0,0,1,248.05,287.13Z"
45
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
46
+ <path
47
+ d="M248.05,287.22a3.6,3.6,0,0,0-1-1c-1.23-.71-2.74.21-3.82,1.13A52.16,52.16,0,0,0,239,291.4a3.63,3.63,0,0,0-1.05,1.7,3.45,3.45,0,0,0,.29,1.81,25.51,25.51,0,0,0,7.06,10.23,3.3,3.3,0,0,0,1.75.95,3.5,3.5,0,0,0,1.84-.55l7.83-4c1.42-.73,3.11-1.83,2.49-3.7-.41-1.2-1.7-1.61-2.67-2.31A41.39,41.39,0,0,1,248.05,287.22Z"
48
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient)"/>
49
+ <path
50
+ d="M266.61,306.11c.95,3.95.66,8.07.36,12.12-.89,12.3-1.81,24.74-5.66,36.45-1,3.11-2.38,6.32-5,8.22-4.33,3.09-10.84,1.39-14.27-2.67s-4.27-9.76-3.82-15.06,2-10.43,2.93-15.67c1.49-8.82,0-22.68,6.07-30C253.7,291.62,264.61,297.71,266.61,306.11Z"
51
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
52
+ <path
53
+ d="M266.61,306.11c.95,3.95.66,8.07.36,12.12-.89,12.3-1.81,24.74-5.66,36.45-1,3.11-2.38,6.32-5,8.22-4.33,3.09-10.84,1.39-14.27-2.67s-4.27-9.76-3.82-15.06,2-10.43,2.93-15.67c1.49-8.82,0-22.68,6.07-30C253.7,291.62,264.61,297.71,266.61,306.11Z"
54
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-2)"/>
55
+ <path
56
+ d="M260.55,356.72a35.06,35.06,0,0,0-.48,3.5,99.15,99.15,0,0,1-7.49,21.7c-1.55,3.24-3.3,6.43-4.24,9.9-1.31,4.79-1,9.88-.37,14.81.87,6.79,2.77,11.39,4.22,18.08-1.18.82-11.41,7.15-12.85,7.33-2.9-1.94,5-7.84,4.91-8.85-.42-5.18-1-6.47-2.55-10.93-1.3-3.85-2.62-7.7-3.7-11.61a38.38,38.38,0,0,1-1.77-11.91,46,46,0,0,1,1.39-8.22l3.21-13.92-13,10a5.18,5.18,0,0,0-1.51,1.55,5,5,0,0,0-.3,2.91,82.91,82.91,0,0,0,6.27,24.14L225,412.52a11.46,11.46,0,0,1-4.47,3.17c-1.2-1.16-.63-3.21.32-4.58s3.88-3.39,4-5.05c.06-.73-2.72-4.83-2.9-5.53-2.1-8.44-3.35-12.77-4.26-21.42a22.66,22.66,0,0,1,0-6.21c.85-4.71,4.23-8.51,7.48-12,4.9-5.33,8.63-9.6,12.8-14.43,2,2.45,4.58,6.88,14.1,9.33C255.85,356.73,258.28,356.2,260.55,356.72Z"
57
+ transform="translate(-33.12 -0.87)" fill="#3f3d56"/>
58
+ <path
59
+ d="M461.85,162.27a44.25,44.25,0,0,1-44.23,44.23H326.14a40.53,40.53,0,0,1-6-.43,59.6,59.6,0,0,1-7.23.43H184.07a62.33,62.33,0,1,1,0-124.65h25.38A81.3,81.3,0,0,1,369.78,76h7.88a40.85,40.85,0,0,1,40.86,40.84c0,.41,0,.82,0,1.21A44.21,44.21,0,0,1,461.85,162.27Z"
60
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-3)"/>
61
+ <path
62
+ d="M451.9,152.32a44.25,44.25,0,0,1-44.23,44.23H316.2a40.67,40.67,0,0,1-6-.43,59.56,59.56,0,0,1-7.22.43H174.12a62.33,62.33,0,1,1,0-124.65H199.5a81.29,81.29,0,0,1,160.33-5.85h7.88a40.85,40.85,0,0,1,40.86,40.83c0,.42,0,.83,0,1.22A44.22,44.22,0,0,1,451.9,152.32Z"
63
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
64
+ <path
65
+ d="M451.9,152.32a44.25,44.25,0,0,1-44.23,44.23H316.2a40.67,40.67,0,0,1-6-.43,59.56,59.56,0,0,1-7.22.43H177.85A62.33,62.33,0,0,1,208.94,80.19h25.39A81.31,81.31,0,0,1,315,9.16h1a81.39,81.39,0,0,1,43.86,56.88h7.88a40.85,40.85,0,0,1,40.86,40.83c0,.42,0,.83,0,1.22A44.22,44.22,0,0,1,451.9,152.32Z"
66
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-4)"/>
67
+ <path d="M98.21,365.7H93.3V175.5a17.91,17.91,0,0,1,17.89-17.88h31v4.91h-31a13,13,0,0,0-13,13Z"
68
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
69
+ <path d="M500.63,365.7h-4.9V175.5a13,13,0,0,0-13-13h-31v-4.91h31a17.9,17.9,0,0,1,17.88,17.88Z"
70
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
71
+ <rect x="419.46" y="274.18" width="85.13" height="137.09" rx="19.41" fill="#5c77ff"/>
72
+ <path
73
+ d="M531.88,294.24v86.62a12.46,12.46,0,0,1-12.46,12.46H470.57a12.46,12.46,0,0,1-12.47-12.46V294.24a12.48,12.48,0,0,1,12.47-12.48h48.85A12.47,12.47,0,0,1,531.88,294.24Z"
74
+ transform="translate(-33.12 -0.87)" fill="#fff"/>
75
+ <rect x="449.03" y="398.19" width="28.01" height="8.29" rx="4.15" fill="#fff"/>
76
+ <rect x="17.04" y="311.22" width="167.49" height="96.18" rx="13.45" fill="#5c77ff"/>
77
+ <rect x="22.69" y="315.93" width="156.58" height="86.22" rx="12.31" fill="#fff"/>
78
+ <path d="M217.64,414.59a6.3,6.3,0,0,1-6.32,6.32H56.48a6.32,6.32,0,1,1,0-12.64H211.32a6.34,6.34,0,0,1,6.32,6.32Z"
79
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
80
+ <path
81
+ d="M216.45,410.91a5.38,5.38,0,0,1-.65.78,6.31,6.31,0,0,1-4.48,1.86H56.48a6.31,6.31,0,0,1-5.14-2.64,6.22,6.22,0,0,1,5.14-2.64H211.32A6.28,6.28,0,0,1,216.45,410.91Z"
82
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-5)"/>
83
+ <path
84
+ d="M400.71,344.94H320.55c-1.35,0-3.4-1.1-3.4-2.45s2.05-2.46,3.4-2.46h80.16a17.64,17.64,0,0,0,17.63-17.62V249.73a12.59,12.59,0,0,0-12.58-12.58h-56.5a15.52,15.52,0,0,1-15.5-15.5V203.19a2.46,2.46,0,1,1,4.91,0v18.46a10.6,10.6,0,0,0,10.59,10.59h56.5a17.51,17.51,0,0,1,17.49,17.49v72.68A22.56,22.56,0,0,1,400.71,344.94Z"
85
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
86
+ <rect x="435.77" y="310.3" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
87
+ style="isolation: isolate"/>
88
+ <rect x="435.77" y="323.38" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
89
+ style="isolation: isolate"/>
90
+ <rect x="435.77" y="336.46" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
91
+ style="isolation: isolate"/>
92
+ <rect x="435.77" y="349.54" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
93
+ style="isolation: isolate"/>
94
+ <rect x="41.91" y="336" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
95
+ style="isolation: isolate"/>
96
+ <rect x="41.91" y="349.08" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
97
+ style="isolation: isolate"/>
98
+ <rect x="41.91" y="362.17" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
99
+ style="isolation: isolate"/>
100
+ <rect x="41.91" y="375.25" width="54.17" height="6.63" rx="3.32" fill="#5c77ff" opacity="0.18"
101
+ style="isolation: isolate"/>
102
+ <path d="M207.58,319.36,55.81,373.45V329.12A12.32,12.32,0,0,1,68.13,316.8H200.07A12.21,12.21,0,0,1,207.58,319.36Z"
103
+ transform="translate(-33.12 -0.87)" fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
104
+ <path d="M212.39,366.06V390.7A12.31,12.31,0,0,1,200.07,403H120.19Z" transform="translate(-33.12 -0.87)"
105
+ fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
106
+ <g>
107
+ <rect x="256.3" y="275.29" width="107.24" height="127.14" rx="10.91" fill="#5c77ff"/>
108
+ <path
109
+ d="M391.63,290.73V386a9.85,9.85,0,0,1-9.86,9.86H304.53a9.86,9.86,0,0,1-9.87-9.86V290.73a9.87,9.87,0,0,1,9.87-9.86h77.24A9.86,9.86,0,0,1,391.63,290.73Z"
110
+ transform="translate(-33.12 -0.87)" fill="#fff"/>
111
+ <polygon
112
+ points="274.72 325.04 288.73 318.77 305.68 333.14 323 310.3 340.32 334.62 340.32 351.43 275.4 351.43 274.72 325.04"
113
+ fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
114
+ <rect x="305.36" y="396.81" width="11.2" height="3.31" rx="1.66" fill="url(#linear-gradient-6)"/>
115
+ <polygon points="345.66 352.06 274.42 352.06 274.42 304.77 275.4 304.77 275.4 351.08 345.66 351.08 345.66 352.06"
116
+ fill="#5c77ff"/>
117
+ <rect x="285.46" y="316.47" width="5.67" height="34.96" fill="#5c77ff"/>
118
+ <rect x="320.83" y="307.89" width="5.67" height="43.55" fill="#5c77ff"/>
119
+ <rect x="302.87" y="330.2" width="5.67" height="21.23" fill="#5c77ff"/>
120
+ <rect x="336.77" y="330.2" width="5.67" height="21.23" fill="#5c77ff"/>
121
+ <path d="M391.63,290.73v8.67l-97,52.89V290.73a9.87,9.87,0,0,1,9.87-9.86h77.24A9.86,9.86,0,0,1,391.63,290.73Z"
122
+ transform="translate(-33.12 -0.87)" fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
123
+ </g>
124
+ <path d="M531.88,329.64v51.22a12.46,12.46,0,0,1-12.46,12.46H470.57a12.46,12.46,0,0,1-12.47-12.46V370l73.75-45.25Z"
125
+ transform="translate(-33.12 -0.87)" fill="#5c77ff" opacity="0.18" style="isolation: isolate"/>
126
+ <polygon points="214.96 475.3 211.03 476.11 211.03 195.48 214.96 195.48 214.96 475.3" fill="#5c77ff"/>
127
+ <polygon points="214.96 475.3 211.03 476.11 211.03 195.48 214.96 195.48 214.96 475.3"
128
+ fill="url(#linear-gradient-7)"/>
129
+ <path
130
+ d="M245,308.25a2.75,2.75,0,0,0-1.93-1c-1.14.08-1.71,1.42-1.87,2.56a12.48,12.48,0,0,0,0,3.81c.59,3.61,2.69,6.77,4.75,9.81A111.46,111.46,0,0,0,254.56,335a15.64,15.64,0,0,0,4.91,4,6.49,6.49,0,0,0,6.13-.12c2.24-1.44,2.92-4.35,3.42-7l1.5-8.05a3.55,3.55,0,0,0,0-2.14,3.36,3.36,0,0,0-1.24-1.27,4.88,4.88,0,0,0-2.14-1c-2.15-.23-3.71,2-4.26,4.11s-.73,4.44-2.24,6L252,319.52a5.78,5.78,0,0,1-1.76-3.36,16.67,16.67,0,0,1,.52-2.77c.13-.93-.21-2.08-1.12-2.31a3.07,3.07,0,0,1-.87,1.24C247.42,311.19,246.33,309.51,245,308.25Z"
131
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-8)"/>
132
+ <path
133
+ d="M262,309.76l-.95,12.7a1.91,1.91,0,0,0,1.24,2.32l8.43,4.78c2.17-3.51,2.35-7.86,2.3-12a42.75,42.75,0,0,0-.84-9,13.24,13.24,0,0,0-1.54-4,9.26,9.26,0,0,0-3.1-3.06c-.87-.52-6-4-6.88-3.26-1,.9,2.19,5.38,1.92,6.66A37.24,37.24,0,0,0,262,309.76Z"
134
+ transform="translate(-33.12 -0.87)" fill="#5c77ff"/>
135
+ <path
136
+ d="M262,309.76l-.95,12.7a1.91,1.91,0,0,0,1.24,2.32l8.43,4.78c2.17-3.51,2.35-7.86,2.3-12a42.75,42.75,0,0,0-.84-9,13.24,13.24,0,0,0-1.54-4,9.26,9.26,0,0,0-3.1-3.06c-.87-.52-6-4-6.88-3.26-1,.9,2.19,5.38,1.92,6.66A37.24,37.24,0,0,0,262,309.76Z"
137
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-9)"/>
138
+ <path
139
+ d="M249,265.63a8.81,8.81,0,0,1-2.18,5.65,21.45,21.45,0,0,0-2.32,2.25c-1.2,1.63-1.07,3.84-.9,5.86.22,2.61.45,5.22.67,7.84a27,27,0,0,0-4,2.74,41.24,41.24,0,0,1-2.27-5.12,13.32,13.32,0,0,1-1.22-3.92,11,11,0,0,1,.13-2.56,28.75,28.75,0,0,1,6.41-14.15.87.87,0,0,1-.19-.46,10.53,10.53,0,0,1,.17-3.67.69.69,0,0,1,.37-.57c.26-.09.52.15.66.39a5.82,5.82,0,0,1,.74,2.39,28,28,0,0,1,3.27-2.79A26.91,26.91,0,0,1,249,265.63Z"
140
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-10)"/>
141
+ <path
142
+ d="M256.17,299.57a2.22,2.22,0,0,0,2.64.61,9.51,9.51,0,0,0,2.7-1.69A1.73,1.73,0,0,0,262,298a1.68,1.68,0,0,0,.15-.67c.1-1.3.17-2.61.2-3.92s-.05-3.12-1.16-4.07a1.05,1.05,0,0,0-.49-.28,1.6,1.6,0,0,0-.65.06,6.53,6.53,0,0,0-2.41,1c-1.36,1-1.68,3-1.74,4.57C255.85,296,255.47,298.39,256.17,299.57Z"
143
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-11)"/>
144
+ <path d="M266.75,281s.28,7.74-.92,10.22-6.27,2.49-8.2.46-4-7.73-2.95-12.62S265,270.63,266.75,281Z"
145
+ transform="translate(-33.12 -0.87)" fill="url(#linear-gradient-12)"/>
146
+ <path
147
+ d="M260.34,275.64a5.71,5.71,0,0,0-2.61,3.52,16.75,16.75,0,0,0-.49,4.47l-.05,2.28a4.77,4.77,0,0,0-1.95-1.58,4.38,4.38,0,0,0,.28,3.33,3.74,3.74,0,0,1,.47,1,.87.87,0,0,1-.37,1c-.55.26-1.08-.39-1.35-.94-1.07-2.19-2.18-4.57-1.74-7a10.08,10.08,0,0,1,.91-2.53,12.64,12.64,0,0,1,4.21-5.4,6,6,0,0,1,5.2-.7C265.82,274.22,261.29,275.13,260.34,275.64Z"
148
+ transform="translate(-33.12 -0.87)" fill="#3f3d56"/>
149
+ </g>
150
+ </svg>